More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 3,404 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
STAKE | 20453008 | 182 days ago | IN | 0 ETH | 0.00237015 | ||||
CLAIMREWARD | 20074492 | 235 days ago | IN | 0 ETH | 0.0020255 | ||||
CLAIMREWARD | 16879394 | 684 days ago | IN | 0 ETH | 0.00141213 | ||||
CLAIMREWARD | 16868962 | 685 days ago | IN | 0 ETH | 0.00271011 | ||||
CLAIMREWARD | 16691425 | 710 days ago | IN | 0 ETH | 0.00376445 | ||||
CLAIMREWARD | 16686191 | 711 days ago | IN | 0 ETH | 0.00098003 | ||||
CLAIMREWARD | 16686172 | 711 days ago | IN | 0 ETH | 0.00097323 | ||||
Changeregreward ... | 16683596 | 711 days ago | IN | 0 ETH | 0.00076267 | ||||
Change Perform | 16683595 | 711 days ago | IN | 0 ETH | 0.00065474 | ||||
CLAIMREWARD | 16629644 | 719 days ago | IN | 0 ETH | 0.00901687 | ||||
WITHDRAW | 16504704 | 736 days ago | IN | 0 ETH | 0.00224002 | ||||
CLAIMREWARD | 16504692 | 736 days ago | IN | 0 ETH | 0.00166797 | ||||
WITHDRAW | 16476521 | 740 days ago | IN | 0 ETH | 0.00188336 | ||||
CLAIMREWARD | 16458328 | 743 days ago | IN | 0 ETH | 0.00175483 | ||||
CLAIMREWARD | 16294256 | 765 days ago | IN | 0 ETH | 0.00160399 | ||||
CLAIMREWARD | 16168113 | 783 days ago | IN | 0 ETH | 0.00198766 | ||||
WITHDRAW | 15917986 | 818 days ago | IN | 0 ETH | 0.00173331 | ||||
CLAIMREWARD | 15917982 | 818 days ago | IN | 0 ETH | 0.00172818 | ||||
WITHDRAW | 15867980 | 825 days ago | IN | 0 ETH | 0.00275194 | ||||
CLAIMREWARD | 15867962 | 825 days ago | IN | 0 ETH | 0.00258187 | ||||
CLAIMREWARD | 15854862 | 827 days ago | IN | 0 ETH | 0.0006643 | ||||
CLAIMREWARD | 15854847 | 827 days ago | IN | 0 ETH | 0.00072813 | ||||
CLAIMREWARD | 15854831 | 827 days ago | IN | 0 ETH | 0.00066979 | ||||
CLAIMREWARD | 15854820 | 827 days ago | IN | 0 ETH | 0.00068003 | ||||
WITHDRAW | 15854820 | 827 days ago | IN | 0 ETH | 0.0038773 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
FEGstake
Compiler Version
v0.7.5+commit.eb77ed08
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-04-08 */ // SPDX-License-Identifier: UNLICENSED pragma solidity 0.7.5; abstract contract ReentrancyGuard { uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor () { _status = _NOT_ENTERED; } modifier nonReentrant() { require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); _status = _ENTERED; _; _status = _NOT_ENTERED; } } // ---------------------------------------------------------------------------- // SafeMath library // ---------------------------------------------------------------------------- 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) { 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; } function ceil(uint a, uint m) internal pure returns (uint r) { return (a + m - 1) / m * m; } } // ---------------------------------------------------------------------------- // Owned contract // ---------------------------------------------------------------------------- contract Owned { address payable public owner; event OwnershipTransferred(address indexed _from, address indexed _to); constructor() { owner = msg.sender; } modifier onlyOwner { require(msg.sender == owner); _; } function transferOwnership(address payable _newOwner) public onlyOwner { require(_newOwner != address(0), "ERC20: sending to the zero address"); owner = _newOwner; emit OwnershipTransferred(msg.sender, _newOwner); } } // ---------------------------------------------------------------------------- // ERC Token Standard #20 Interface // ---------------------------------------------------------------------------- interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address tokenOwner) external view returns (uint256 balance); function allowance(address tokenOwner, address spender) external view returns (uint256 remaining); function transfer(address to, uint256 tokens) external returns (bool success); function approve(address spender, uint256 tokens) external returns (bool success); function transferFrom(address from, address to, uint256 tokens) external returns (bool success); function burnTokens(uint256 _amount) external; function calculateFeesBeforeSend( address sender, address recipient, uint256 amount ) external view returns (uint256, uint256); event Transfer(address indexed from, address indexed to, uint256 tokens); event Approval(address indexed tokenOwner, address indexed spender, uint256 tokens); } interface regreward { function distributeAll() external; } // ---------------------------------------------------------------------------- // ERC20 Token, with the addition of symbol, name and decimals and assisted // token transfers // ---------------------------------------------------------------------------- library Roles { struct Role { mapping (address => bool) bearer; } function add(Role storage role, address account) internal { require(!has(role, account), "Roles: account already has role"); role.bearer[account] = true; } function remove(Role storage role, address account) internal { require(has(role, account), "Roles: account does not have role"); role.bearer[account] = false; } function has(Role storage role, address account) internal view returns (bool) { require(account != address(0), "Roles: account is the zero address"); return role.bearer[account]; } } contract WhitelistAdminRole is Owned { using Roles for Roles.Role; event WhitelistAdminAdded(address indexed account); event WhitelistAdminRemoved(address indexed account); Roles.Role private _whitelistAdmins; constructor () { _addWhitelistAdmin(msg.sender); } modifier onlyWhitelistAdmin() { require(isWhitelistAdmin(msg.sender), "WhitelistAdminRole: caller does not have the WhitelistAdmin role"); _; } function isWhitelistAdmin(address account) public view returns (bool) { return _whitelistAdmins.has(account); } function addWhitelistAdmin(address account) public onlyWhitelistAdmin { _addWhitelistAdmin(account); } function renounceWhitelistAdmin() public { _removeWhitelistAdmin(msg.sender); } function _addWhitelistAdmin(address account) internal { _whitelistAdmins.add(account); emit WhitelistAdminAdded(account); } function _removeWhitelistAdmin(address account) internal { _whitelistAdmins.remove(account); emit WhitelistAdminRemoved(account); } } contract FEGstake is Owned, ReentrancyGuard, WhitelistAdminRole { using SafeMath for uint256; address public FEG = 0x389999216860AB8E0175387A0c90E5c52522C945; address public fETH = 0xf786c34106762Ab4Eeb45a51B42a62470E9D5332; address public regrewardContract; uint256 public totalStakes = 0; bool public perform = true; //if true then distribution of rewards from the pool to stakers via the withdraw function is enabled uint256 public txFee = 20; // FEG has 2% TX fee, deduct this fee from total stake to not break math uint256 public txFee1 = 11; // fETH has 1% TX fee, 0.1% was also added this fee from total stake to not break math uint256 public totalDividends = 0; uint256 private scaledRemainder = 0; uint256 private scaling = uint256(10) ** 12; uint public round = 1; mapping(address => uint) public farmTime; // period that your sake it locked to keep it for farming uint public lock = 0; // no locktime struct USER{ uint256 stakedTokens; uint256 lastDividends; uint256 fromTotalDividend; uint round; uint256 remainder; } address[] internal stakeholders; mapping(address => USER) stakers; mapping (uint => uint256) public payouts; // keeps record of each payout event STAKED(address staker, uint256 tokens); event EARNED(address staker, uint256 tokens); event UNSTAKED(address staker, uint256 tokens); event PAYOUT(uint256 round, uint256 tokens, address sender); event CLAIMEDREWARD(address staker, uint256 reward); function isStakeholder(address _address) public view returns(bool) { for (uint256 s = 0; s < stakeholders.length; s += 1){ if (_address == stakeholders[s]) return (true); } return (false); } function addStakeholder(address _stakeholder) public { (bool _isStakeholder) = isStakeholder(_stakeholder); if(!_isStakeholder) { stakeholders.push(_stakeholder); farmTime[msg.sender] = block.timestamp; } } // ------------------------------------------------------------------------ // Token holders can stake their tokens using this function // @param tokens number of tokens to stake // ------------------------------------------------------------------------ function STAKE(uint256 tokens) external nonReentrant { require(IERC20(FEG).transferFrom(msg.sender, address(this), tokens), "Tokens cannot be transferred from user for locking"); uint256 transferTxFee = (onePercent(tokens).mul(txFee)).div(10); uint256 tokensToStake = (tokens.sub(transferTxFee)); // add pending rewards to remainder to be claimed by user later, if there is any existing stake uint256 owing = pendingReward(msg.sender); stakers[msg.sender].remainder += owing; stakers[msg.sender].stakedTokens = tokensToStake.add(stakers[msg.sender].stakedTokens); stakers[msg.sender].lastDividends = owing; stakers[msg.sender].fromTotalDividend= totalDividends; stakers[msg.sender].round = round; totalStakes = totalStakes.add(tokensToStake); addStakeholder(msg.sender); emit STAKED(msg.sender, tokens); } // ------------------------------------------------------------------------ // Owners can send the funds to be distributed to stakers using this function // @param tokens number of tokens to distribute // ------------------------------------------------------------------------ function ADDFUNDS(uint256 tokens) external onlyWhitelistAdmin{ //can only be called by regrewardContract uint256 transferTxFee = (onePercent(tokens).mul(txFee1)).div(10); uint256 tokens_ = (tokens.sub(transferTxFee)); _addPayout(tokens_); } function ADDFUNDS1(uint256 tokens) external{ require(IERC20(fETH).transferFrom(msg.sender, address(this), tokens), "Tokens cannot be transferred from funder account"); uint256 transferTxFee = (onePercent(tokens).mul(txFee1)).div(10); uint256 tokens_ = (tokens.sub(transferTxFee)); _addPayout(tokens_); } function DisributeTxFunds() external { // Distribute tx fees collected for conversion into rewards uint256 transferToAmount = (IERC20(FEG).balanceOf(address(this))).sub(totalStakes); require(IERC20(FEG).transfer(address(owner), transferToAmount), "Error in un-staking tokens"); } // ------------------------------------------------------------------------ // Private function to register payouts // ------------------------------------------------------------------------ function _addPayout(uint256 tokens_) private{ // divide the funds among the currently staked tokens // scale the deposit and add the previous remainder uint256 available = (tokens_.mul(scaling)).add(scaledRemainder); uint256 dividendPerToken = available.div(totalStakes); scaledRemainder = available.mod(totalStakes); totalDividends = totalDividends.add(dividendPerToken); payouts[round] = payouts[round - 1].add(dividendPerToken); emit PAYOUT(round, tokens_, msg.sender); round++; } // ------------------------------------------------------------------------ // Stakers can claim their pending rewards using this function // ------------------------------------------------------------------------ function CLAIMREWARD() public nonReentrant{ if(totalDividends > stakers[msg.sender].fromTotalDividend){ uint256 owing = pendingReward(msg.sender); owing = owing.add(stakers[msg.sender].remainder); stakers[msg.sender].remainder = 0; require(IERC20(fETH).transfer(msg.sender,owing), "ERROR: error in sending reward from contract"); emit CLAIMEDREWARD(msg.sender, owing); stakers[msg.sender].lastDividends = owing; // unscaled stakers[msg.sender].round = round; // update the round stakers[msg.sender].fromTotalDividend = totalDividends; // scaled } } // ------------------------------------------------------------------------ // Get the pending rewards of the staker // @param _staker the address of the staker // ------------------------------------------------------------------------ function pendingReward(address staker) private returns (uint256) { require(staker != address(0), "ERC20: sending to the zero address"); uint stakersRound = stakers[staker].round; uint256 amount = ((totalDividends.sub(payouts[stakersRound - 1])).mul(stakers[staker].stakedTokens)).div(scaling); stakers[staker].remainder += ((totalDividends.sub(payouts[stakersRound - 1])).mul(stakers[staker].stakedTokens)) % scaling ; return amount; } function getPendingReward(address staker) public view returns(uint256 _pendingReward) { require(staker != address(0), "ERC20: sending to the zero address"); uint stakersRound = stakers[staker].round; uint256 amount = ((totalDividends.sub(payouts[stakersRound - 1])).mul(stakers[staker].stakedTokens)).div(scaling); amount += ((totalDividends.sub(payouts[stakersRound - 1])).mul(stakers[staker].stakedTokens)) % scaling ; return (amount.add(stakers[staker].remainder)); } // ------------------------------------------------------------------------ // Stakers can un stake the staked tokens using this function // @param tokens the number of tokens to withdraw // ------------------------------------------------------------------------ function WITHDRAW(uint256 tokens) external nonReentrant{ require(stakers[msg.sender].stakedTokens >= tokens && tokens > 0, "Invalid token amount to withdraw"); totalStakes = totalStakes.sub(tokens); // add pending rewards to remainder to be claimed by user later, if there is any existing stake uint256 owing = pendingReward(msg.sender); stakers[msg.sender].remainder += owing; stakers[msg.sender].stakedTokens = stakers[msg.sender].stakedTokens.sub(tokens); stakers[msg.sender].lastDividends = owing; stakers[msg.sender].fromTotalDividend= totalDividends; stakers[msg.sender].round = round; require(IERC20(FEG).transfer(msg.sender, tokens), "Error in un-staking tokens"); emit UNSTAKED(msg.sender, tokens); if(perform==true) { regreward(regrewardContract).distributeAll(); } } // ------------------------------------------------------------------------ // Private function to calculate 1% percentage // ------------------------------------------------------------------------ function onePercent(uint256 _tokens) private pure returns (uint256){ uint256 roundValue = _tokens.ceil(100); uint onePercentofTokens = roundValue.mul(100).div(100 * 10**uint(2)); return onePercentofTokens; } // ------------------------------------------------------------------------ // Get the number of tokens staked by a staker // @param _staker the address of the staker // ------------------------------------------------------------------------ function yourStakedFEG(address staker) public view returns(uint256 stakedFEG){ require(staker != address(0), "ERC20: sending to the zero address"); return stakers[staker].stakedTokens; } // ------------------------------------------------------------------------ // Get the FEG balance of the token holder // @param user the address of the token holder // ------------------------------------------------------------------------ function yourFEGBalance(address user) external view returns(uint256 FEGBalance){ require(user != address(0), "ERC20: sending to the zero address"); return IERC20(FEG).balanceOf(user); } function emergencySaveLostTokens(address _token) public onlyOwner { require(IERC20(_token).transfer(owner, IERC20(_token).balanceOf(address(this))), "Error in retrieving tokens"); owner.transfer(address(this).balance); } function changeregrewardContract(address _regrewardContract) external onlyOwner{ require(address(_regrewardContract) != address(0), "setting 0 to contract"); regrewardContract = _regrewardContract; } function changePerform(bool _bool) external onlyOwner{ perform = _bool; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"CLAIMEDREWARD","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"EARNED","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"round","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"},{"indexed":false,"internalType":"address","name":"sender","type":"address"}],"name":"PAYOUT","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"STAKED","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"UNSTAKED","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"WhitelistAdminAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"WhitelistAdminRemoved","type":"event"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"ADDFUNDS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"ADDFUNDS1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"CLAIMREWARD","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DisributeTxFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"FEG","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"STAKE","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"WITHDRAW","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_stakeholder","type":"address"}],"name":"addStakeholder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addWhitelistAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_bool","type":"bool"}],"name":"changePerform","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_regrewardContract","type":"address"}],"name":"changeregrewardContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"emergencySaveLostTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"farmTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"staker","type":"address"}],"name":"getPendingReward","outputs":[{"internalType":"uint256","name":"_pendingReward","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isStakeholder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isWhitelistAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"payouts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"perform","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"regrewardContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceWhitelistAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"round","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStakes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"txFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"txFee1","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"yourFEGBalance","outputs":[{"internalType":"uint256","name":"FEGBalance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"staker","type":"address"}],"name":"yourStakedFEG","outputs":[{"internalType":"uint256","name":"stakedFEG","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6080604052600380546001600160a01b031990811673389999216860ab8e0175387a0c90e5c52522c945179091556004805490911673f786c34106762ab4eeb45a51b42a62470e9d5332179055600060068190556007805460ff191660019081179091556014600855600b6009819055600a83905582905564e8d4a51000600c55600d55600f553480156200009357600080fd5b50600080546001600160a01b0319163390811790915560018055620000b890620000be565b620001fd565b620000d98160026200011060201b6200153b1790919060201c565b6040516001600160a01b038216907f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129990600090a250565b6200011c828262000194565b156200016f576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216620001dd5760405162461bcd60e51b815260040180806020018281038252602281526020018062001fb46022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b611da7806200020d6000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80638da5cb5b1161010f578063c3f344a8116100a2578063e5c42fd111610071578063e5c42fd114610476578063ef037b901461049c578063f2fde38b146104c2578063f83d08ba146104e8576101e5565b8063c3f344a814610423578063ca84d59114610449578063cc14d68814610466578063cf8204611461046e576101e5565b8063b53d6c24116100de578063b53d6c24146103d0578063b6ee290a146103ed578063bb5f747b146103f5578063bf9befb11461041b576101e5565b80638da5cb5b1461039c578063997664d7146103a4578063b0684318146103ac578063b147f40c146103b4576101e5565b80634baf782e116101875780634f49e655116101565780634f49e655146103325780637362d9c8146103515780637a75572c146103775780638ade8d8c14610394576101e5565b80634baf782e146102d65780634bc76334146102de5780634c5a628c146103045780634df9d6ba1461030c576101e5565b806320068139116101c3578063200681391461024e57806329652e86146102765780632c75bcda1461029357806348510671146102b0576101e5565b8063063731bb146101ea578063093a9fbc14610222578063146ca53114610246575b600080fd5b6102106004803603602081101561020057600080fd5b50356001600160a01b03166104f0565b60408051918252519081900360200190f35b61022a6105b8565b604080516001600160a01b039092168252519081900360200190f35b6102106105c7565b6102746004803603602081101561026457600080fd5b50356001600160a01b03166105cd565b005b6102106004803603602081101561028c57600080fd5b503561076f565b610274600480360360208110156102a957600080fd5b5035610781565b610210600480360360208110156102c657600080fd5b50356001600160a01b0316610a44565b610274610aa7565b610274600480360360208110156102f457600080fd5b50356001600160a01b0316610c87565b610274610d13565b6102106004803603602081101561032257600080fd5b50356001600160a01b0316610d1e565b6102746004803603602081101561034857600080fd5b50351515610e41565b6102746004803603602081101561036757600080fd5b50356001600160a01b0316610e6b565b6102746004803603602081101561038d57600080fd5b5035610ebb565b61022a610fb1565b61022a610fc0565b610210610fcf565b610274610fd5565b6103bc611137565b604080519115158252519081900360200190f35b610274600480360360208110156103e657600080fd5b5035611140565b610210611184565b6103bc6004803603602081101561040b57600080fd5b50356001600160a01b031661118a565b61021061119d565b6102106004803603602081101561043957600080fd5b50356001600160a01b03166111a3565b6102746004803603602081101561045f57600080fd5b50356111b5565b61022a6113b4565b6102106113c3565b6102746004803603602081101561048c57600080fd5b50356001600160a01b03166113c9565b6103bc600480360360208110156104b257600080fd5b50356001600160a01b0316611439565b610274600480360360208110156104d857600080fd5b50356001600160a01b031661148e565b610210611535565b60006001600160a01b0382166105375760405162461bcd60e51b8152600401808060200182810382526022815260200180611c9d6022913960400191505060405180910390fd5b600354604080516370a0823160e01b81526001600160a01b038581166004830152915191909216916370a08231916024808301926020929190829003018186803b15801561058457600080fd5b505afa158015610598573d6000803e3d6000fd5b505050506040513d60208110156105ae57600080fd5b505190505b919050565b6003546001600160a01b031681565b600d5481565b6000546001600160a01b031633146105e457600080fd5b600054604080516370a0823160e01b815230600482015290516001600160a01b038085169363a9059cbb9391169184916370a08231916024808301926020929190829003018186803b15801561063957600080fd5b505afa15801561064d573d6000803e3d6000fd5b505050506040513d602081101561066357600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b1580156106b457600080fd5b505af11580156106c8573d6000803e3d6000fd5b505050506040513d60208110156106de57600080fd5b5051610731576040805162461bcd60e51b815260206004820152601a60248201527f4572726f7220696e2072657472696576696e6720746f6b656e73000000000000604482015290519081900360640190fd5b600080546040516001600160a01b03909116914780156108fc02929091818181858888f1935050505015801561076b573d6000803e3d6000fd5b5050565b60126020526000908152604090205481565b600260015414156107d9576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026001553360009081526011602052604090205481118015906107fd5750600081115b61084e576040805162461bcd60e51b815260206004820181905260248201527f496e76616c696420746f6b656e20616d6f756e7420746f207769746864726177604482015290519081900360640190fd5b60065461085b90826115bc565b600655600061086933611605565b336000908152601160205260409020600481018054830190555490915061089090836115bc565b33600081815260116020908152604080832094855560018501869055600a546002860155600d546003958601559354845163a9059cbb60e01b815260048101949094526024840187905293516001600160a01b039094169363a9059cbb93604480820194918390030190829087803b15801561090b57600080fd5b505af115801561091f573d6000803e3d6000fd5b505050506040513d602081101561093557600080fd5b5051610988576040805162461bcd60e51b815260206004820152601a60248201527f4572726f7220696e20756e2d7374616b696e6720746f6b656e73000000000000604482015290519081900360640190fd5b604080513381526020810184905281517f4c48d8823de8aa74e6ea4bed3a0c422e95a3d1e10f8f3e47dc7e2fe779be9514929181900390910190a160075460ff16151560011415610a3c57600560009054906101000a90046001600160a01b03166001600160a01b031663436596c46040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a2357600080fd5b505af1158015610a37573d6000803e3d6000fd5b505050505b505060018055565b60006001600160a01b038216610a8b5760405162461bcd60e51b8152600401808060200182810382526022815260200180611c9d6022913960400191505060405180910390fd5b506001600160a01b031660009081526011602052604090205490565b60026001541415610aff576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260018190553360009081526011602052604090200154600a541115610c81576000610b2b33611605565b33600090815260116020526040902060040154909150610b4c908290611713565b33600081815260116020908152604080832060049081018490558054825163a9059cbb60e01b8152918201959095526024810186905290519495506001600160a01b039093169363a9059cbb93604480820194918390030190829087803b158015610bb657600080fd5b505af1158015610bca573d6000803e3d6000fd5b505050506040513d6020811015610be057600080fd5b5051610c1d5760405162461bcd60e51b815260040180806020018281038252602c815260200180611c50602c913960400191505060405180910390fd5b604080513381526020810183905281517f8a0128b5f12decc7d739e546c0521c3388920368915393f80120bc5b408c7c9e929181900390910190a13360009081526011602052604090206001810191909155600d546003820155600a546002909101555b60018055565b6000546001600160a01b03163314610c9e57600080fd5b6001600160a01b038116610cf1576040805162461bcd60e51b81526020600482015260156024820152741cd95d1d1a5b99c80c081d1bc818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b610d1c3361176d565b565b60006001600160a01b038216610d655760405162461bcd60e51b8152600401808060200182810382526022815260200180611c9d6022913960400191505060405180910390fd5b6001600160a01b03821660009081526011602090815260408083206003810154600c54915460001982018652601290945291842054600a54929493610dbe93610db892610db291906115bc565b906117af565b90611808565b600c546001600160a01b03861660009081526011602090815260408083205460001988018452601290925290912054600a549394509192610e0392610db291906115bc565b81610e0a57fe5b6001600160a01b0386166000908152601160205260409020600401549190069190910190610e39908290611713565b949350505050565b6000546001600160a01b03163314610e5857600080fd5b6007805460ff1916911515919091179055565b610e743361118a565b610eaf5760405162461bcd60e51b8152600401808060200182810382526040815260200180611d026040913960400191505060405180910390fd5b610eb88161184a565b50565b60048054604080516323b872dd60e01b8152339381019390935230602484015260448301849052516001600160a01b03909116916323b872dd9160648083019260209291908290030181600087803b158015610f1657600080fd5b505af1158015610f2a573d6000803e3d6000fd5b505050506040513d6020811015610f4057600080fd5b5051610f7d5760405162461bcd60e51b8152600401808060200182810382526030815260200180611d426030913960400191505060405180910390fd5b6000610f93600a610db8600954610db28661188c565b90506000610fa183836115bc565b9050610fac816118af565b505050565b6005546001600160a01b031681565b6000546001600160a01b031681565b600a5481565b600654600354604080516370a0823160e01b8152306004820152905160009361105e9390926001600160a01b03909116916370a0823191602480820192602092909190829003018186803b15801561102c57600080fd5b505afa158015611040573d6000803e3d6000fd5b505050506040513d602081101561105657600080fd5b5051906115bc565b600354600080546040805163a9059cbb60e01b81526001600160a01b03928316600482015260248101869052905194955092169263a9059cbb926044808201936020939283900390910190829087803b1580156110ba57600080fd5b505af11580156110ce573d6000803e3d6000fd5b505050506040513d60208110156110e457600080fd5b5051610eb8576040805162461bcd60e51b815260206004820152601a60248201527f4572726f7220696e20756e2d7374616b696e6720746f6b656e73000000000000604482015290519081900360640190fd5b60075460ff1681565b6111493361118a565b610f7d5760405162461bcd60e51b8152600401808060200182810382526040815260200180611d026040913960400191505060405180910390fd5b60095481565b600061119760028361199a565b92915050565b60065481565b600e6020526000908152604090205481565b6002600154141561120d576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002600155600354604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b15801561126c57600080fd5b505af1158015611280573d6000803e3d6000fd5b505050506040513d602081101561129657600080fd5b50516112d35760405162461bcd60e51b8152600401808060200182810382526032815260200180611c1e6032913960400191505060405180910390fd5b60006112e9600a610db8600854610db28661188c565b905060006112f783836115bc565b9050600061130433611605565b336000908152601160205260409020600481018054830190555490915061132c908390611713565b33600090815260116020526040902090815560018101829055600a546002820155600d546003909101556006546113639083611713565b60065561136f336113c9565b604080513381526020810186905281517f4031c63bb53dc5dfada7ef8d75bef8c44d0283658c1585fc74107ed5b75e97c8929181900390910190a15050600180555050565b6004546001600160a01b031681565b60085481565b60006113d482611439565b90508061076b5760108054600181019091557f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6720180546001600160a01b0384166001600160a01b0319909116179055336000908152600e602052604090204290555050565b6000805b601054811015611485576010818154811061145457fe5b6000918252602090912001546001600160a01b038481169116141561147d5760019150506105b3565b60010161143d565b50600092915050565b6000546001600160a01b031633146114a557600080fd5b6001600160a01b0381166114ea5760405162461bcd60e51b8152600401808060200182810382526022815260200180611c9d6022913960400191505060405180910390fd5b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b600f5481565b611545828261199a565b15611597576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006115fe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a01565b9392505050565b60006001600160a01b03821661164c5760405162461bcd60e51b8152600401808060200182810382526022815260200180611c9d6022913960400191505060405180910390fd5b6001600160a01b03821660009081526011602090815260408083206003810154600c54915460001982018652601290945291842054600a5492949361169993610db892610db291906115bc565b600c546001600160a01b03861660009081526011602090815260408083205460001988018452601290925290912054600a5493945091926116de92610db291906115bc565b816116e557fe5b6001600160a01b03959095166000908152601160205260409020600401805491909506019093555090919050565b6000828201838110156115fe576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b611778600282611a98565b6040516001600160a01b038216907f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16590600090a250565b6000826117be57506000611197565b828202828482816117cb57fe5b04146115fe5760405162461bcd60e51b8152600401808060200182810382526021815260200180611cbf6021913960400191505060405180910390fd5b60006115fe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611aff565b61185560028261153b565b6040516001600160a01b038216907f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129990600090a250565b60008061189a836064611b64565b90506000610e39612710610db88460646117af565b60006118d2600b546118cc600c54856117af90919063ffffffff16565b90611713565b905060006118eb6006548361180890919063ffffffff16565b905061190260065483611b7e90919063ffffffff16565b600b55600a546119129082611713565b600a55600d54600019016000908152601260205260409020546119359082611713565b600d805460009081526012602090815260409182902093909355905481519081529182018590523382820152517fddf8c05dcee82ec75482e095e6c06768c848d5a7df7147686033433d141328b69181900360600190a15050600d8054600101905550565b60006001600160a01b0382166119e15760405162461bcd60e51b8152600401808060200182810382526022815260200180611ce06022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b60008184841115611a905760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a55578181015183820152602001611a3d565b50505050905090810190601f168015611a825780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b611aa2828261199a565b611add5760405162461bcd60e51b8152600401808060200182810382526021815260200180611c7c6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60008183611b4e5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611a55578181015183820152602001611a3d565b506000838581611b5a57fe5b0495945050505050565b6000818260018486010381611b7557fe5b04029392505050565b60006115fe83836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f000000000000000081525060008183611c0a5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611a55578181015183820152602001611a3d565b50828481611c1457fe5b0694935050505056fe546f6b656e732063616e6e6f74206265207472616e736665727265642066726f6d207573657220666f72206c6f636b696e674552524f523a206572726f7220696e2073656e64696e67207265776172642066726f6d20636f6e7472616374526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6545524332303a2073656e64696e6720746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f206164647265737357686974656c69737441646d696e526f6c653a2063616c6c657220646f6573206e6f742068617665207468652057686974656c69737441646d696e20726f6c65546f6b656e732063616e6e6f74206265207472616e736665727265642066726f6d2066756e646572206163636f756e74a2646970667358221220322a290e4bcd3d4b34638f759727099682ff32a2b5764a0a2e1ecdc7e70799eb64736f6c63430007050033526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101e55760003560e01c80638da5cb5b1161010f578063c3f344a8116100a2578063e5c42fd111610071578063e5c42fd114610476578063ef037b901461049c578063f2fde38b146104c2578063f83d08ba146104e8576101e5565b8063c3f344a814610423578063ca84d59114610449578063cc14d68814610466578063cf8204611461046e576101e5565b8063b53d6c24116100de578063b53d6c24146103d0578063b6ee290a146103ed578063bb5f747b146103f5578063bf9befb11461041b576101e5565b80638da5cb5b1461039c578063997664d7146103a4578063b0684318146103ac578063b147f40c146103b4576101e5565b80634baf782e116101875780634f49e655116101565780634f49e655146103325780637362d9c8146103515780637a75572c146103775780638ade8d8c14610394576101e5565b80634baf782e146102d65780634bc76334146102de5780634c5a628c146103045780634df9d6ba1461030c576101e5565b806320068139116101c3578063200681391461024e57806329652e86146102765780632c75bcda1461029357806348510671146102b0576101e5565b8063063731bb146101ea578063093a9fbc14610222578063146ca53114610246575b600080fd5b6102106004803603602081101561020057600080fd5b50356001600160a01b03166104f0565b60408051918252519081900360200190f35b61022a6105b8565b604080516001600160a01b039092168252519081900360200190f35b6102106105c7565b6102746004803603602081101561026457600080fd5b50356001600160a01b03166105cd565b005b6102106004803603602081101561028c57600080fd5b503561076f565b610274600480360360208110156102a957600080fd5b5035610781565b610210600480360360208110156102c657600080fd5b50356001600160a01b0316610a44565b610274610aa7565b610274600480360360208110156102f457600080fd5b50356001600160a01b0316610c87565b610274610d13565b6102106004803603602081101561032257600080fd5b50356001600160a01b0316610d1e565b6102746004803603602081101561034857600080fd5b50351515610e41565b6102746004803603602081101561036757600080fd5b50356001600160a01b0316610e6b565b6102746004803603602081101561038d57600080fd5b5035610ebb565b61022a610fb1565b61022a610fc0565b610210610fcf565b610274610fd5565b6103bc611137565b604080519115158252519081900360200190f35b610274600480360360208110156103e657600080fd5b5035611140565b610210611184565b6103bc6004803603602081101561040b57600080fd5b50356001600160a01b031661118a565b61021061119d565b6102106004803603602081101561043957600080fd5b50356001600160a01b03166111a3565b6102746004803603602081101561045f57600080fd5b50356111b5565b61022a6113b4565b6102106113c3565b6102746004803603602081101561048c57600080fd5b50356001600160a01b03166113c9565b6103bc600480360360208110156104b257600080fd5b50356001600160a01b0316611439565b610274600480360360208110156104d857600080fd5b50356001600160a01b031661148e565b610210611535565b60006001600160a01b0382166105375760405162461bcd60e51b8152600401808060200182810382526022815260200180611c9d6022913960400191505060405180910390fd5b600354604080516370a0823160e01b81526001600160a01b038581166004830152915191909216916370a08231916024808301926020929190829003018186803b15801561058457600080fd5b505afa158015610598573d6000803e3d6000fd5b505050506040513d60208110156105ae57600080fd5b505190505b919050565b6003546001600160a01b031681565b600d5481565b6000546001600160a01b031633146105e457600080fd5b600054604080516370a0823160e01b815230600482015290516001600160a01b038085169363a9059cbb9391169184916370a08231916024808301926020929190829003018186803b15801561063957600080fd5b505afa15801561064d573d6000803e3d6000fd5b505050506040513d602081101561066357600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b1580156106b457600080fd5b505af11580156106c8573d6000803e3d6000fd5b505050506040513d60208110156106de57600080fd5b5051610731576040805162461bcd60e51b815260206004820152601a60248201527f4572726f7220696e2072657472696576696e6720746f6b656e73000000000000604482015290519081900360640190fd5b600080546040516001600160a01b03909116914780156108fc02929091818181858888f1935050505015801561076b573d6000803e3d6000fd5b5050565b60126020526000908152604090205481565b600260015414156107d9576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026001553360009081526011602052604090205481118015906107fd5750600081115b61084e576040805162461bcd60e51b815260206004820181905260248201527f496e76616c696420746f6b656e20616d6f756e7420746f207769746864726177604482015290519081900360640190fd5b60065461085b90826115bc565b600655600061086933611605565b336000908152601160205260409020600481018054830190555490915061089090836115bc565b33600081815260116020908152604080832094855560018501869055600a546002860155600d546003958601559354845163a9059cbb60e01b815260048101949094526024840187905293516001600160a01b039094169363a9059cbb93604480820194918390030190829087803b15801561090b57600080fd5b505af115801561091f573d6000803e3d6000fd5b505050506040513d602081101561093557600080fd5b5051610988576040805162461bcd60e51b815260206004820152601a60248201527f4572726f7220696e20756e2d7374616b696e6720746f6b656e73000000000000604482015290519081900360640190fd5b604080513381526020810184905281517f4c48d8823de8aa74e6ea4bed3a0c422e95a3d1e10f8f3e47dc7e2fe779be9514929181900390910190a160075460ff16151560011415610a3c57600560009054906101000a90046001600160a01b03166001600160a01b031663436596c46040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610a2357600080fd5b505af1158015610a37573d6000803e3d6000fd5b505050505b505060018055565b60006001600160a01b038216610a8b5760405162461bcd60e51b8152600401808060200182810382526022815260200180611c9d6022913960400191505060405180910390fd5b506001600160a01b031660009081526011602052604090205490565b60026001541415610aff576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260018190553360009081526011602052604090200154600a541115610c81576000610b2b33611605565b33600090815260116020526040902060040154909150610b4c908290611713565b33600081815260116020908152604080832060049081018490558054825163a9059cbb60e01b8152918201959095526024810186905290519495506001600160a01b039093169363a9059cbb93604480820194918390030190829087803b158015610bb657600080fd5b505af1158015610bca573d6000803e3d6000fd5b505050506040513d6020811015610be057600080fd5b5051610c1d5760405162461bcd60e51b815260040180806020018281038252602c815260200180611c50602c913960400191505060405180910390fd5b604080513381526020810183905281517f8a0128b5f12decc7d739e546c0521c3388920368915393f80120bc5b408c7c9e929181900390910190a13360009081526011602052604090206001810191909155600d546003820155600a546002909101555b60018055565b6000546001600160a01b03163314610c9e57600080fd5b6001600160a01b038116610cf1576040805162461bcd60e51b81526020600482015260156024820152741cd95d1d1a5b99c80c081d1bc818dbdb9d1c9858dd605a1b604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b610d1c3361176d565b565b60006001600160a01b038216610d655760405162461bcd60e51b8152600401808060200182810382526022815260200180611c9d6022913960400191505060405180910390fd5b6001600160a01b03821660009081526011602090815260408083206003810154600c54915460001982018652601290945291842054600a54929493610dbe93610db892610db291906115bc565b906117af565b90611808565b600c546001600160a01b03861660009081526011602090815260408083205460001988018452601290925290912054600a549394509192610e0392610db291906115bc565b81610e0a57fe5b6001600160a01b0386166000908152601160205260409020600401549190069190910190610e39908290611713565b949350505050565b6000546001600160a01b03163314610e5857600080fd5b6007805460ff1916911515919091179055565b610e743361118a565b610eaf5760405162461bcd60e51b8152600401808060200182810382526040815260200180611d026040913960400191505060405180910390fd5b610eb88161184a565b50565b60048054604080516323b872dd60e01b8152339381019390935230602484015260448301849052516001600160a01b03909116916323b872dd9160648083019260209291908290030181600087803b158015610f1657600080fd5b505af1158015610f2a573d6000803e3d6000fd5b505050506040513d6020811015610f4057600080fd5b5051610f7d5760405162461bcd60e51b8152600401808060200182810382526030815260200180611d426030913960400191505060405180910390fd5b6000610f93600a610db8600954610db28661188c565b90506000610fa183836115bc565b9050610fac816118af565b505050565b6005546001600160a01b031681565b6000546001600160a01b031681565b600a5481565b600654600354604080516370a0823160e01b8152306004820152905160009361105e9390926001600160a01b03909116916370a0823191602480820192602092909190829003018186803b15801561102c57600080fd5b505afa158015611040573d6000803e3d6000fd5b505050506040513d602081101561105657600080fd5b5051906115bc565b600354600080546040805163a9059cbb60e01b81526001600160a01b03928316600482015260248101869052905194955092169263a9059cbb926044808201936020939283900390910190829087803b1580156110ba57600080fd5b505af11580156110ce573d6000803e3d6000fd5b505050506040513d60208110156110e457600080fd5b5051610eb8576040805162461bcd60e51b815260206004820152601a60248201527f4572726f7220696e20756e2d7374616b696e6720746f6b656e73000000000000604482015290519081900360640190fd5b60075460ff1681565b6111493361118a565b610f7d5760405162461bcd60e51b8152600401808060200182810382526040815260200180611d026040913960400191505060405180910390fd5b60095481565b600061119760028361199a565b92915050565b60065481565b600e6020526000908152604090205481565b6002600154141561120d576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b6002600155600354604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b15801561126c57600080fd5b505af1158015611280573d6000803e3d6000fd5b505050506040513d602081101561129657600080fd5b50516112d35760405162461bcd60e51b8152600401808060200182810382526032815260200180611c1e6032913960400191505060405180910390fd5b60006112e9600a610db8600854610db28661188c565b905060006112f783836115bc565b9050600061130433611605565b336000908152601160205260409020600481018054830190555490915061132c908390611713565b33600090815260116020526040902090815560018101829055600a546002820155600d546003909101556006546113639083611713565b60065561136f336113c9565b604080513381526020810186905281517f4031c63bb53dc5dfada7ef8d75bef8c44d0283658c1585fc74107ed5b75e97c8929181900390910190a15050600180555050565b6004546001600160a01b031681565b60085481565b60006113d482611439565b90508061076b5760108054600181019091557f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6720180546001600160a01b0384166001600160a01b0319909116179055336000908152600e602052604090204290555050565b6000805b601054811015611485576010818154811061145457fe5b6000918252602090912001546001600160a01b038481169116141561147d5760019150506105b3565b60010161143d565b50600092915050565b6000546001600160a01b031633146114a557600080fd5b6001600160a01b0381166114ea5760405162461bcd60e51b8152600401808060200182810382526022815260200180611c9d6022913960400191505060405180910390fd5b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b600f5481565b611545828261199a565b15611597576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006115fe83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a01565b9392505050565b60006001600160a01b03821661164c5760405162461bcd60e51b8152600401808060200182810382526022815260200180611c9d6022913960400191505060405180910390fd5b6001600160a01b03821660009081526011602090815260408083206003810154600c54915460001982018652601290945291842054600a5492949361169993610db892610db291906115bc565b600c546001600160a01b03861660009081526011602090815260408083205460001988018452601290925290912054600a5493945091926116de92610db291906115bc565b816116e557fe5b6001600160a01b03959095166000908152601160205260409020600401805491909506019093555090919050565b6000828201838110156115fe576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b611778600282611a98565b6040516001600160a01b038216907f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16590600090a250565b6000826117be57506000611197565b828202828482816117cb57fe5b04146115fe5760405162461bcd60e51b8152600401808060200182810382526021815260200180611cbf6021913960400191505060405180910390fd5b60006115fe83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611aff565b61185560028261153b565b6040516001600160a01b038216907f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129990600090a250565b60008061189a836064611b64565b90506000610e39612710610db88460646117af565b60006118d2600b546118cc600c54856117af90919063ffffffff16565b90611713565b905060006118eb6006548361180890919063ffffffff16565b905061190260065483611b7e90919063ffffffff16565b600b55600a546119129082611713565b600a55600d54600019016000908152601260205260409020546119359082611713565b600d805460009081526012602090815260409182902093909355905481519081529182018590523382820152517fddf8c05dcee82ec75482e095e6c06768c848d5a7df7147686033433d141328b69181900360600190a15050600d8054600101905550565b60006001600160a01b0382166119e15760405162461bcd60e51b8152600401808060200182810382526022815260200180611ce06022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b60008184841115611a905760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a55578181015183820152602001611a3d565b50505050905090810190601f168015611a825780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b611aa2828261199a565b611add5760405162461bcd60e51b8152600401808060200182810382526021815260200180611c7c6021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b60008183611b4e5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611a55578181015183820152602001611a3d565b506000838581611b5a57fe5b0495945050505050565b6000818260018486010381611b7557fe5b04029392505050565b60006115fe83836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f000000000000000081525060008183611c0a5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611a55578181015183820152602001611a3d565b50828481611c1457fe5b0694935050505056fe546f6b656e732063616e6e6f74206265207472616e736665727265642066726f6d207573657220666f72206c6f636b696e674552524f523a206572726f7220696e2073656e64696e67207265776172642066726f6d20636f6e7472616374526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6545524332303a2073656e64696e6720746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f206164647265737357686974656c69737441646d696e526f6c653a2063616c6c657220646f6573206e6f742068617665207468652057686974656c69737441646d696e20726f6c65546f6b656e732063616e6e6f74206265207472616e736665727265642066726f6d2066756e646572206163636f756e74a2646970667358221220322a290e4bcd3d4b34638f759727099682ff32a2b5764a0a2e1ecdc7e70799eb64736f6c63430007050033
Deployed Bytecode Sourcemap
9565:11281:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20049:208;;;;;;;;;;;;;;;;-1:-1:-1;20049:208:0;-1:-1:-1;;;;;20049:208:0;;:::i;:::-;;;;;;;;;;;;;;;;9675:65;;;:::i;:::-;;;;-1:-1:-1;;;;;9675:65:0;;;;;;;;;;;;;;10399:21;;;:::i;20269:243::-;;;;;;;;;;;;;;;;-1:-1:-1;20269:243:0;-1:-1:-1;;;;;20269:243:0;;:::i;:::-;;10839:40;;;;;;;;;;;;;;;;-1:-1:-1;10839:40:0;;:::i;17839:977::-;;;;;;;;;;;;;;;;-1:-1:-1;17839:977:0;;:::i;19556:219::-;;;;;;;;;;;;;;;;-1:-1:-1;19556:219:0;-1:-1:-1;;;;;19556:219:0;;:::i;15504:725::-;;;:::i;20524:222::-;;;;;;;;;;;;;;;;-1:-1:-1;20524:222:0;-1:-1:-1;;;;;20524:222:0;;:::i;9150:93::-;;;:::i;17010:533::-;;;;;;;;;;;;;;;;-1:-1:-1;17010:533:0;-1:-1:-1;;;;;17010:533:0;;:::i;20756:87::-;;;;;;;;;;;;;;;;-1:-1:-1;20756:87:0;;;;:::i;9026:116::-;;;;;;;;;;;;;;;;-1:-1:-1;9026:116:0;-1:-1:-1;;;;;9026:116:0;;:::i;13751:354::-;;;;;;;;;;;;;;;;-1:-1:-1;13751:354:0;;:::i;9820:32::-;;;:::i;5729:28::-;;;:::i;10267:33::-;;;:::i;14135:312::-;;;:::i;9902:26::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;13457:282;;;;;;;;;;;;;;;;-1:-1:-1;13457:282:0;;:::i;10141:26::-;;;:::i;8895:125::-;;;;;;;;;;;;;;;;-1:-1:-1;8895:125:0;-1:-1:-1;;;;;8895:125:0;;:::i;9865:30::-;;;:::i;10430:40::-;;;;;;;;;;;;;;;;-1:-1:-1;10430:40:0;-1:-1:-1;;;;;10430:40:0;;:::i;12056:1091::-;;;;;;;;;;;;;;;;-1:-1:-1;12056:1091:0;;:::i;9747:66::-;;;:::i;10036:25::-;;;:::i;11500:271::-;;;;;;;;;;;;;;;;-1:-1:-1;11500:271:0;-1:-1:-1;;;;;11500:271:0;;:::i;11232:258::-;;;;;;;;;;;;;;;;-1:-1:-1;11232:258:0;-1:-1:-1;;;;;11232:258:0;;:::i;5990:247::-;;;;;;;;;;;;;;;;-1:-1:-1;5990:247:0;-1:-1:-1;;;;;5990:247:0;;:::i;10535:20::-;;;:::i;20049:208::-;20109:18;-1:-1:-1;;;;;20147:18:0;;20139:65;;;;-1:-1:-1;;;20139:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20229:3;;20222:27;;;-1:-1:-1;;;20222:27:0;;-1:-1:-1;;;;;20222:27:0;;;;;;;;;20229:3;;;;;20222:21;;:27;;;;;;;;;;;;;;20229:3;20222:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20222:27:0;;-1:-1:-1;20049:208:0;;;;:::o;9675:65::-;;;-1:-1:-1;;;;;9675:65:0;;:::o;10399:21::-;;;;:::o;20269:243::-;5956:5;;-1:-1:-1;;;;;5956:5:0;5942:10;:19;5934:28;;;;;;20378:5:::1;::::0;20385:39:::1;::::0;;-1:-1:-1;;;20385:39:0;;20418:4:::1;20385:39;::::0;::::1;::::0;;;-1:-1:-1;;;;;20354:23:0;;::::1;::::0;::::1;::::0;20378:5;::::1;::::0;20354:23;;20385:24:::1;::::0;:39;;;;;::::1;::::0;;;;;;;;20354:23;20385:39;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;20385:39:0;20354:71:::1;::::0;;-1:-1:-1;;;;;;20354:71:0::1;::::0;;;;;;-1:-1:-1;;;;;20354:71:0;;::::1;;::::0;::::1;::::0;;;;;;;;;;;;;;20385:39:::1;::::0;20354:71;;;;;;;-1:-1:-1;20354:71:0;;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;20354:71:0;20346:110:::1;;;::::0;;-1:-1:-1;;;20346:110:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;20467:5;::::0;;:37:::1;::::0;-1:-1:-1;;;;;20467:5:0;;::::1;::::0;20482:21:::1;20467:37:::0;::::1;;;::::0;20482:21;;20467:37;:5;:37;20482:21;20467:5;:37;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;20269:243:::0;:::o;10839:40::-;;;;;;;;;;;;;:::o;17839:977::-;197:1;348:7;;:19;;340:63;;;;;-1:-1:-1;;;340:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;197:1;416:7;:18;17921:10:::1;17913:19;::::0;;;:7:::1;:19;::::0;;;;:32;:42;-1:-1:-1;17913:42:0;::::1;::::0;:56:::1;;;17968:1;17959:6;:10;17913:56;17905:101;;;::::0;;-1:-1:-1;;;17905:101:0;;::::1;;::::0;::::1;::::0;;;;;;;::::1;::::0;;;;;;;;;;;;;::::1;;18041:11;::::0;:23:::1;::::0;18057:6;18041:15:::1;:23::i;:::-;18027:11;:37:::0;18190:13:::1;18206:25;18220:10;18206:13;:25::i;:::-;18250:10;18242:19;::::0;;;:7:::1;:19;::::0;;;;:29:::1;::::0;::::1;:38:::0;;;::::1;::::0;;18344:32;18190:41;;-1:-1:-1;18344:44:0::1;::::0;18381:6;18344:36:::1;:44::i;:::-;18317:10;18309:19;::::0;;;:7:::1;:19;::::0;;;;;;;:79;;;18399:33:::1;::::0;::::1;:41:::0;;;18490:14:::1;::::0;18451:37:::1;::::0;::::1;:53:::0;18544:5:::1;::::0;18515:25:::1;::::0;;::::1;:34:::0;18595:3;;18588:40;;-1:-1:-1;;;18588:40:0;;::::1;::::0;::::1;::::0;;;;;;;;;;;;-1:-1:-1;;;;;18595:3:0;;::::1;::::0;18588:20:::1;::::0;:40;;;;;;;;;;;;;18595:3;18588:40;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;18588:40:0;18580:79:::1;;;::::0;;-1:-1:-1;;;18580:79:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;18675:28;::::0;;18684:10:::1;18675:28:::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;18727:7;::::0;::::1;;:13;;:7:::0;:13:::1;18724:85;;;18763:17;;;;;;;;;-1:-1:-1::0;;;;;18763:17:0::1;-1:-1:-1::0;;;;;18753:42:0::1;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18724:85;-1:-1:-1::0;;153:1:0;461:22;;17839:977::o;19556:219::-;19615:17;-1:-1:-1;;;;;19652:20:0;;19644:67;;;;-1:-1:-1;;;19644:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19739:15:0;;;;;:7;:15;;;;;:28;;19556:219::o;15504:725::-;197:1;348:7;;:19;;340:63;;;;;-1:-1:-1;;;340:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;197:1;416:7;:18;;;15595:10:::1;15587:19;::::0;;;:7:::1;:19;::::0;;;;:37:::1;::::0;15570:14:::1;::::0;:54:::1;15567:655;;;15640:13;15656:25;15670:10;15656:13;:25::i;:::-;15732:10;15724:19;::::0;;;:7:::1;:19;::::0;;;;:29:::1;;::::0;15640:41;;-1:-1:-1;15714:40:0::1;::::0;15640:41;;15714:9:::1;:40::i;:::-;15777:10;15801:1;15769:19:::0;;;:7:::1;:19;::::0;;;;;;;:29:::1;::::0;;::::1;:33:::0;;;15842:4;;15835:39;;-1:-1:-1;;;15835:39:0;;;;::::1;::::0;;;;;;;;;;;;;;-1:-1:-1;;;;;;15842:4:0;;::::1;::::0;15835:21:::1;::::0;:39;;;;;;;;;;;;;15842:4;15835:39;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;15835:39:0;15827:96:::1;;;;-1:-1:-1::0;;;15827:96:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15953:32;::::0;;15967:10:::1;15953:32:::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;16018:10;16010:19;::::0;;;:7:::1;:19;::::0;;;;:33:::1;::::0;::::1;:41:::0;;;;16106:5:::1;::::0;16078:25:::1;::::0;::::1;:33:::0;16186:14:::1;::::0;16146:37:::1;::::0;;::::1;:54:::0;15567:655:::1;153:1:::0;461:22;;15504:725::o;20524:222::-;5956:5;;-1:-1:-1;;;;;5956:5:0;5942:10;:19;5934:28;;;;;;-1:-1:-1;;;;;20622:41:0;::::1;20614:75;;;::::0;;-1:-1:-1;;;20614:75:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;20614:75:0;;;;;;;;;;;;;::::1;;20700:17;:38:::0;;-1:-1:-1;;;;;;20700:38:0::1;-1:-1:-1::0;;;;;20700:38:0;;;::::1;::::0;;;::::1;::::0;;20524:222::o;9150:93::-;9202:33;9224:10;9202:21;:33::i;:::-;9150:93::o;17010:533::-;17072:22;-1:-1:-1;;;;;17115:20:0;;17107:67;;;;-1:-1:-1;;;17107:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17206:15:0;;17186:17;17206:15;;;:7;:15;;;;;;;;:21;;;;17355:7;;17320:28;;-1:-1:-1;;17296:16:0;;17288:25;;:7;:25;;;;;;;17269:14;;17206:21;;17186:17;17267:96;;17268:81;;17269:45;;:14;:18;:45::i;:::-;17268:51;;:81::i;:::-;17267:87;;:96::i;:::-;17470:7;;-1:-1:-1;;;;;17437:15:0;;;;;;:7;:15;;;;;;;;:28;-1:-1:-1;;17413:16:0;;17405:25;;:7;:25;;;;;;;17386:14;;17249:114;;-1:-1:-1;17470:7:0;;17385:81;;17386:45;;:14;:18;:45::i;17385:81::-;17384:93;;;;;-1:-1:-1;;;;;17508:15:0;;;;;;:7;:15;;;;;:25;;;17384:93;;;17374:103;;;;;17497:37;;17374:103;;17497:10;:37::i;:::-;17489:46;17010:533;-1:-1:-1;;;;17010:533:0:o;20756:87::-;5956:5;;-1:-1:-1;;;;;5956:5:0;5942:10;:19;5934:28;;;;;;20820:7:::1;:15:::0;;-1:-1:-1;;20820:15:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20756:87::o;9026:116::-;8770:28;8787:10;8770:16;:28::i;:::-;8762:105;;;;-1:-1:-1;;;8762:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9107:27:::1;9126:7;9107:18;:27::i;:::-;9026:116:::0;:::o;13751:354::-;13820:4;;;13813:60;;;-1:-1:-1;;;13813:60:0;;13839:10;13813:60;;;;;;;13859:4;13813:60;;;;;;;;;;;-1:-1:-1;;;;;13820:4:0;;;;13813:25;;:60;;;;;;;;;;;;;;13820:4;;13813:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13813:60:0;13805:121;;;;-1:-1:-1;;;13805:121:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13937:21;13961:40;13998:2;13962:30;13985:6;;13962:18;13973:6;13962:10;:18::i;13961:40::-;13937:64;-1:-1:-1;14012:15:0;14031:25;:6;13937:64;14031:10;:25::i;:::-;14012:45;;14078:19;14089:7;14078:10;:19::i;:::-;13751:354;;;:::o;9820:32::-;;;-1:-1:-1;;;;;9820:32:0;;:::o;5729:28::-;;;-1:-1:-1;;;;;5729:28:0;;:::o;10267:33::-;;;;:::o;14135:312::-;14323:11;;14288:3;;14281:36;;;-1:-1:-1;;;14281:36:0;;14311:4;14281:36;;;;;;14253:24;;14280:55;;14323:11;;-1:-1:-1;;;;;14288:3:0;;;;14281:21;;:36;;;;;;;;;;;;;;;14288:3;14281:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14281:36:0;;14280:42;:55::i;:::-;14361:3;;;14383:5;;14354:54;;;-1:-1:-1;;;14354:54:0;;-1:-1:-1;;;;;14383:5:0;;;14354:54;;;;;;;;;;;;14253:82;;-1:-1:-1;14361:3:0;;;14354:20;;:54;;;;;;;;;;;;;;;;;14361:3;14354:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14354:54:0;14346:93;;;;;-1:-1:-1;;;14346:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;9902:26;;;;;;:::o;13457:282::-;8770:28;8787:10;8770:16;:28::i;:::-;8762:105;;;;-1:-1:-1;;;8762:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10141:26;;;;:::o;8895:125::-;8959:4;8983:29;:16;9004:7;8983:20;:29::i;:::-;8976:36;8895:125;-1:-1:-1;;8895:125:0:o;9865:30::-;;;;:::o;10430:40::-;;;;;;;;;;;;;:::o;12056:1091::-;197:1;348:7;;:19;;340:63;;;;;-1:-1:-1;;;340:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;197:1;416:7;:18;12136:3:::1;::::0;12129:59:::1;::::0;;-1:-1:-1;;;12129:59:0;;12154:10:::1;12129:59;::::0;::::1;::::0;12174:4:::1;12129:59:::0;;;;;;;;;;;;-1:-1:-1;;;;;12136:3:0;;::::1;::::0;12129:24:::1;::::0;:59;;;;;::::1;::::0;;;;;;;;;12136:3:::1;::::0;12129:59;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;12129:59:0;12121:122:::1;;;;-1:-1:-1::0;;;12121:122:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12268:21;12292:39;12328:2;12293:29;12316:5;;12293:18;12304:6;12293:10;:18::i;12292:39::-;12268:63:::0;-1:-1:-1;12346:21:0::1;12371:25;:6:::0;12268:63;12371:10:::1;:25::i;:::-;12346:51;;12545:13;12561:25;12575:10;12561:13;:25::i;:::-;12609:10;12601:19;::::0;;;:7:::1;:19;::::0;;;;:29:::1;::::0;::::1;:38:::0;;;::::1;::::0;;12721:32;12545:41;;-1:-1:-1;12703:51:0::1;::::0;:13;;:17:::1;:51::i;:::-;12676:10;12668:19;::::0;;;:7:::1;:19;::::0;;;;:86;;;12769:33:::1;::::0;::::1;:41:::0;;;12864:14:::1;::::0;12825:37:::1;::::0;::::1;:53:::0;12922:5:::1;::::0;12893:25:::1;::::0;;::::1;:34:::0;12984:11:::1;::::0;:30:::1;::::0;13000:13;12984:15:::1;:30::i;:::-;12970:11;:44:::0;13043:26:::1;13058:10;13043:14;:26::i;:::-;13103;::::0;;13110:10:::1;13103:26:::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;-1:-1:-1::0;;153:1:0;461:22;;-1:-1:-1;;12056:1091:0:o;9747:66::-;;;-1:-1:-1;;;;;9747:66:0;;:::o;10036:25::-;;;;:::o;11500:271::-;11576:19;11599:27;11613:12;11599:13;:27::i;:::-;11575:51;;11640:14;11636:129;;11670:12;:31;;;;;;;;;;;;-1:-1:-1;;;;;11670:31:0;;-1:-1:-1;;;;;;11670:31:0;;;;;;11724:10;-1:-1:-1;11715:20:0;;;:8;11670:31;11715:20;;;;11739:15;11715:39;;11500:271;;:::o;11232:258::-;11317:4;;11337:123;11361:12;:19;11357:23;;11337:123;;;11419:12;11432:1;11419:15;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11407:27:0;;;11419:15;;11407:27;11403:46;;;11444:4;11436:13;;;;;11403:46;11387:1;11382:6;11337:123;;;-1:-1:-1;11477:5:0;;11232:258;-1:-1:-1;;11232:258:0:o;5990:247::-;5956:5;;-1:-1:-1;;;;;5956:5:0;5942:10;:19;5934:28;;;;;;-1:-1:-1;;;;;6080:23:0;::::1;6072:70;;;;-1:-1:-1::0;;;6072:70:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6153:5;:17:::0;;-1:-1:-1;;;;;;6153:17:0::1;-1:-1:-1::0;;;;;6153:17:0;::::1;::::0;;::::1;::::0;;6186:43:::1;::::0;6153:17;;6207:10:::1;::::0;6186:43:::1;::::0;6153:5;6186:43:::1;5990:247:::0;:::o;10535:20::-;;;;:::o;7817:178::-;7895:18;7899:4;7905:7;7895:3;:18::i;:::-;7894:19;7886:63;;;;;-1:-1:-1;;;7886:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7960:20:0;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;7960:27:0;7983:4;7960:27;;;7817:178::o;1412:136::-;1470:7;1497:43;1501:1;1504;1497:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1490:50;1412:136;-1:-1:-1;;;1412:136:0:o;16502:496::-;16558:7;-1:-1:-1;;;;;16586:20:0;;16578:67;;;;-1:-1:-1;;;16578:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16686:15:0;;16666:17;16686:15;;;:7;:15;;;;;;;;:21;;;;16824:7;;16789:28;;-1:-1:-1;;16765:16:0;;16757:25;;:7;:25;;;;;;;16738:14;;16686:21;;16666:17;16736:96;;16737:81;;16738:45;;:14;:18;:45::i;16736:96::-;16958:7;;-1:-1:-1;;;;;16925:15:0;;;;;;:7;:15;;;;;;;;:28;-1:-1:-1;;16901:16:0;;16893:25;;:7;:25;;;;;;;16874:14;;16718:114;;-1:-1:-1;16958:7:0;;16873:81;;16874:45;;:14;:18;:45::i;16873:81::-;16872:93;;;;;-1:-1:-1;;;;;16843:15:0;;;;;;;;:7;:15;;;;;:25;;:122;;16872:93;;;;16843:122;;;;-1:-1:-1;16984:6:0;;16502:496;-1:-1:-1;16502:496:0:o;948:181::-;1006:7;1038:5;;;1062:6;;;;1054:46;;;;;-1:-1:-1;;;1054:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;9406:154;9474:32;:16;9498:7;9474:23;:32::i;:::-;9522:30;;-1:-1:-1;;;;;9522:30:0;;;;;;;;9406:154;:::o;2302:471::-;2360:7;2605:6;2601:47;;-1:-1:-1;2635:1:0;2628:8;;2601:47;2672:5;;;2676:1;2672;:5;:1;2696:5;;;;;:10;2688:56;;;;-1:-1:-1;;;2688:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3249:132;3307:7;3334:39;3338:1;3341;3334:39;;;;;;;;;;;;;;;;;:3;:39::i;9251:146::-;9316:29;:16;9337:7;9316:20;:29::i;:::-;9361:28;;-1:-1:-1;;;;;9361:28:0;;;;;;;;9251:146;:::o;19042:239::-;19101:7;;19141:17;:7;19154:3;19141:12;:17::i;:::-;19120:38;-1:-1:-1;19169:23:0;19195:42;19219:17;19195:19;19120:38;19225:11;19195:14;:19::i;14672:590::-;14851:17;14871:43;14898:15;;14872:20;14884:7;;14872;:11;;:20;;;;:::i;:::-;14871:26;;:43::i;:::-;14851:63;;14926:24;14953:26;14967:11;;14953:9;:13;;:26;;;;:::i;:::-;14926:53;;15008:26;15022:11;;15008:9;:13;;:26;;;;:::i;:::-;14990:15;:44;15072:14;;:36;;15091:16;15072:18;:36::i;:::-;15055:14;:53;15144:5;;-1:-1:-1;;15144:9:0;15136:18;;;;:7;:18;;;;;;:40;;15159:16;15136:22;:40::i;:::-;15127:5;;;15119:14;;;;:7;:14;;;;;;;;;:57;;;;15209:5;;15202:34;;;;;;;;;;;15225:10;15202:34;;;;;;;;;;;;;;-1:-1:-1;;15247:5:0;:7;;;;;;-1:-1:-1;14672:590:0:o;8194:203::-;8266:4;-1:-1:-1;;;;;8291:21:0;;8283:68;;;;-1:-1:-1;;;8283:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8369:20:0;:11;:20;;;;;;;;;;;;;;;8194:203::o;1851:192::-;1937:7;1973:12;1965:6;;;;1957:29;;;;-1:-1:-1;;;1957:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2009:5:0;;;1851:192::o;8003:183::-;8083:18;8087:4;8093:7;8083:3;:18::i;:::-;8075:64;;;;-1:-1:-1;;;8075:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8150:20:0;8173:5;8150:20;;;;;;;;;;;:28;;-1:-1:-1;;8150:28:0;;;8003:183::o;3877:278::-;3963:7;3998:12;3991:5;3983:28;;;;-1:-1:-1;;;3983:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4022:9;4038:1;4034;:5;;;;;;;3877:278;-1:-1:-1;;;;;3877:278:0:o;5413:106::-;5466:6;5510:1;5506;5501;5497;5493;:5;:9;5492:15;;;;;;:19;;5413:106;-1:-1:-1;;;5413:106:0:o;4620:130::-;4678:7;4705:37;4709:1;4712;4705:37;;;;;;;;;;;;;;;;;5321:7;5357:12;5349:6;5341:29;;;;-1:-1:-1;;;5341:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5392:1;5388;:5;;;;;;;5235:166;-1:-1:-1;;;;5235:166:0:o
Swarm Source
ipfs://322a290e4bcd3d4b34638f759727099682ff32a2b5764a0a2e1ecdc7e70799eb
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
BSC | 100.00% | $0.004386 | 100.9847 | $0.4429 |
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.