Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 10 from a total of 10 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer Operato... | 12533372 | 1204 days ago | IN | 0 ETH | 0.00061128 | ||||
Set Fund Address | 12442593 | 1218 days ago | IN | 0 ETH | 0.00158774 | ||||
Add To Fee Adder... | 12258180 | 1247 days ago | IN | 0 ETH | 0.00639803 | ||||
Update Stake Loc... | 12172263 | 1260 days ago | IN | 0 ETH | 0.00475987 | ||||
Add To Fee Adder... | 12172253 | 1260 days ago | IN | 0 ETH | 0.00456004 | ||||
Set Second Trans... | 12172247 | 1260 days ago | IN | 0 ETH | 0.00456288 | ||||
Set Fund Address | 12172245 | 1260 days ago | IN | 0 ETH | 0.00464037 | ||||
Set Boardroom Ad... | 12172240 | 1260 days ago | IN | 0 ETH | 0.00482128 | ||||
Add To Fee Adder... | 12172233 | 1260 days ago | IN | 0 ETH | 0.00486404 | ||||
0x60806040 | 12172196 | 1260 days ago | IN | 0 ETH | 0.15991353 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
FeeDistributor
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-04-04 */ // File: @openzeppelin/contracts/token/ERC20/IERC20.sol pragma solidity ^0.6.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @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); } // File: @openzeppelin/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) { 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: @openzeppelin/contracts/utils/Address.sol pragma solidity ^0.6.2; /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // This method relies in extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(account) } return size > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } // File: @openzeppelin/contracts/token/ERC20/SafeERC20.sol pragma solidity ^0.6.0; /** * @title SafeERC20 * @dev Wrappers around ERC20 operations that throw on failure (when the token * contract returns false). Tokens that return no value (and instead revert or * throw on failure) are also supported, non-reverting calls are assumed to be * successful. * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. */ library SafeERC20 { using SafeMath for uint256; using Address for address; function safeTransfer(IERC20 token, address to, uint256 value) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } /** * @dev Deprecated. This function has issues similar to the ones found in * {IERC20-approve}, and its usage is discouraged. * * Whenever possible, use {safeIncreaseAllowance} and * {safeDecreaseAllowance} instead. */ function safeApprove(IERC20 token, address spender, uint256 value) internal { // safeApprove should only be called when setting an initial allowance, // or when resetting it to zero. To increase and decrease it, use // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' // solhint-disable-next-line max-line-length require((value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).add(value); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero"); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } /** * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement * on the return value: the return value is optional (but if data is returned, it must not be false). * @param token The token targeted by the call. * @param data The call data (encoded using abi.encode or one of its variants). */ function _callOptionalReturn(IERC20 token, bytes memory data) private { // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that // the target address contains contract code and also asserts for success in the low-level call. bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } // File: @openzeppelin/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. */ abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } // File: @openzeppelin/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 Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { 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; } } // File: contracts/owner/Operator.sol pragma solidity ^0.6.0; contract Operator is Context, Ownable { address private _operator; event OperatorTransferred( address indexed previousOperator, address indexed newOperator ); constructor() internal { _operator = _msgSender(); emit OperatorTransferred(address(0), _operator); } function operator() public view returns (address) { return _operator; } modifier onlyOperator() { require( _operator == msg.sender, 'operator: caller is not the operator' ); _; } function isOperator() public view returns (bool) { return _msgSender() == _operator; } function transferOperator(address newOperator_) public onlyOwner { _transferOperator(newOperator_); } function _transferOperator(address newOperator_) internal { require( newOperator_ != address(0), 'operator: zero address given for new operator' ); emit OperatorTransferred(address(0), newOperator_); _operator = newOperator_; } } // File: contracts/interfaces/IFeeDistributor.sol pragma solidity ^0.6.0; interface IFeeDistributor { // The _transfer function in the token contract calls this to let the distributor contract know that it received the specified amount of tokens to be distributed function addFee(uint256 amount) external; } // File: contracts/interfaces/IBoardroomv2.sol pragma solidity ^0.6.0; interface IBoardroomv2 { function allocateSeigniorage(uint256 amount) external; function allocateTaxes(uint256 amount) external; } // File: contracts/FeeDistributor.sol pragma solidity ^0.6.0; contract FeeDistributor is IFeeDistributor, Operator { using SafeMath for uint256; using SafeERC20 for IERC20; IERC20 public token; uint256 public lastStakeContractBalance; address constant stakeLockContract = 0xE144303f7FC3E99A9dE5474fD6c7B40add83a1dA; //first address tokens get transferred to address public boardroomAddress; //% of tokens that get transferred to first address (1 = 0.1%) uint256 public boardroomAddressPercent = 500; //% of tokens sent to first address that get transferred to the fund reserve (1 = 0.1%) uint256 public fundAllocationRate = 10; //The fund reserve address public fundAddress; //setting this to an address no one has the private keys to like 0x0000000000000000000000000000000000000001 basically burns the tokens address public secondTransferAddress; //Addresses that are allowed to add fees mapping(address => bool) public feeAdderList; event FeeAdded(uint256 amount); constructor(address _tokenAddress) public { token = IERC20(_tokenAddress); } function updateStakeLockBalance() external onlyOperator { lastStakeContractBalance = token.balanceOf(stakeLockContract); } // The _transfer function in the token contract calls this to let the fee contract know that it received the specified amount of tokens to be distributed function addFee(uint256 amount) external override { require(feeAdderList[msg.sender], "Sender not allowed to add fees"); uint256 currentStakeLockContractBalance = token.balanceOf(stakeLockContract); if (currentStakeLockContractBalance < lastStakeContractBalance) { _safeTransfer(stakeLockContract, amount); lastStakeContractBalance = currentStakeLockContractBalance + amount; return; } uint256 boardroomAddressAmount = amount.mul(boardroomAddressPercent).div(1000); uint256 secondTransferAddressAmount = amount.sub(boardroomAddressAmount); uint256 fundReserveAmount = boardroomAddressAmount.mul(fundAllocationRate).div(1000); if (fundReserveAmount > 0) { //using ISimpleERCFund(fund).deposit() would consume more gas, not sure if that is needed _safeTransfer(fundAddress, fundReserveAmount); boardroomAddressAmount = boardroomAddressAmount.sub(fundReserveAmount); } if(boardroomAddressAmount > 0) { token.safeApprove(boardroomAddress, 0); token.safeApprove(boardroomAddress, boardroomAddressAmount); IBoardroomv2(boardroomAddress).allocateTaxes(boardroomAddressAmount); } if(secondTransferAddressAmount > 0) { _safeTransfer(secondTransferAddress, secondTransferAddressAmount); } emit FeeAdded(amount); } // Internal function to safely transfer tokens in case there is a rounding error function _safeTransfer(address _to, uint256 _amount) internal { uint256 tokenBalance = token.balanceOf(address(this)); if (_amount > tokenBalance) { token.transfer(_to, tokenBalance); } else { token.transfer(_to, _amount); } } /* ========== GOVERNANCE ========== */ function setBoardroomAddress(address _address) public onlyOperator { boardroomAddress = _address; } function setBoardroomAddressPercent(uint256 _amount) public onlyOperator { require(_amount < 1000); boardroomAddressPercent = _amount; } function setFundAddress(address _address) public onlyOperator { fundAddress = _address; } function setFundAllocationRate(uint256 _rate) public onlyOperator { require(_rate < 1000); fundAllocationRate = _rate; } function setSecondTransferAddress(address _address) public onlyOperator { secondTransferAddress = _address; } function addToFeeAdderList(address _address) public onlyOperator { feeAdderList[_address] = true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FeeAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOperator","type":"address"},{"indexed":true,"internalType":"address","name":"newOperator","type":"address"}],"name":"OperatorTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"addToFeeAdderList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"boardroomAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"boardroomAddressPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"feeAdderList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fundAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fundAllocationRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOperator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastStakeContractBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"secondTransferAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setBoardroomAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setBoardroomAddressPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setFundAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"setFundAllocationRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setSecondTransferAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator_","type":"address"}],"name":"transferOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updateStakeLockBalance","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526101f4600555600a60065534801561001b57600080fd5b506040516115ae3803806115ae8339818101604052602081101561003e57600080fd5b5051600061004a61010d565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061009c61010d565b600180546001600160a01b0319166001600160a01b0392831617908190556040519116906000907f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed908290a3600280546001600160a01b0319166001600160a01b0392909216919091179055610111565b3390565b61148e806101206000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806385dc3004116100b8578063a79a163f1161007c578063a79a163f146102e9578063c1aa3900146102f1578063e82bef29146102f9578063f2fde38b14610301578063fc0c546a14610327578063fca209121461032f57610142565b806385dc3004146102705780638da5cb5b1461029657806395b1828a1461029e57806398168994146102bb578063a4a2f24c146102c357610142565b8063570ca7351161010a578063570ca735146101f457806358cf9628146102185780636460970d1461023e578063715018a614610246578063821963271461024e5780638382d1b21461025657610142565b806321307bac1461014757806326c291541461016657806329605e77146101a0578063297cc3c5146101c65780634456eda2146101ec575b600080fd5b6101646004803603602081101561015d57600080fd5b503561034c565b005b61018c6004803603602081101561017c57600080fd5b50356001600160a01b03166105e7565b604080519115158252519081900360200190f35b610164600480360360208110156101b657600080fd5b50356001600160a01b03166105fc565b610164600480360360208110156101dc57600080fd5b50356001600160a01b031661066f565b61018c6106da565b6101fc610700565b604080516001600160a01b039092168252519081900360200190f35b6101646004803603602081101561022e57600080fd5b50356001600160a01b031661070f565b6101fc61077c565b61016461078b565b6101fc61083f565b61025e61084e565b60408051918252519081900360200190f35b6101646004803603602081101561028657600080fd5b50356001600160a01b0316610854565b6101fc6108bf565b610164600480360360208110156102b457600080fd5b50356108ce565b61016461092a565b610164600480360360208110156102d957600080fd5b50356001600160a01b0316610a03565b61025e610a6e565b61025e610a74565b6101fc610a7a565b6101646004803603602081101561031757600080fd5b50356001600160a01b0316610a89565b6101fc610b93565b6101646004803603602081101561034557600080fd5b5035610ba2565b3360009081526009602052604090205460ff166103b0576040805162461bcd60e51b815260206004820152601e60248201527f53656e646572206e6f7420616c6c6f77656420746f2061646420666565730000604482015290519081900360640190fd5b600254604080516370a0823160e01b815273e144303f7fc3e99a9de5474fd6c7b40add83a1da600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561040f57600080fd5b505afa158015610423573d6000803e3d6000fd5b505050506040513d602081101561043957600080fd5b50516003549091508110156104705761046673e144303f7fc3e99a9de5474fd6c7b40add83a1da83610bfe565b81016003556105e4565b60006104936103e861048d60055486610d8f90919063ffffffff16565b90610df1565b905060006104a18483610e33565b905060006104c06103e861048d60065486610d8f90919063ffffffff16565b905080156104eb576007546104de906001600160a01b031682610bfe565b6104e88382610e33565b92505b82156105905760045460025461050f916001600160a01b0391821691166000610e75565b60045460025461052c916001600160a01b03918216911685610e75565b60048054604080516342ef9f2560e11b8152928301869052516001600160a01b03909116916385df3e4a91602480830192600092919082900301818387803b15801561057757600080fd5b505af115801561058b573d6000803e3d6000fd5b505050505b81156105ac576008546105ac906001600160a01b031683610bfe565b6040805186815290517f59fdca5c5019c8bddf5b408b17992d0fce838508a49ac6a398c8e06e645cfdf89181900360200190a1505050505b50565b60096020526000908152604090205460ff1681565b610604610f88565b6000546001600160a01b03908116911614610666576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6105e481610f8c565b6001546001600160a01b031633146106b85760405162461bcd60e51b81526004018080602001828103825260248152602001806113d56024913960400191505060405180910390fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6001546000906001600160a01b03166106f1610f88565b6001600160a01b031614905090565b6001546001600160a01b031690565b6001546001600160a01b031633146107585760405162461bcd60e51b81526004018080602001828103825260248152602001806113d56024913960400191505060405180910390fd5b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b6008546001600160a01b031681565b610793610f88565b6000546001600160a01b039081169116146107f5576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6004546001600160a01b031681565b60035481565b6001546001600160a01b0316331461089d5760405162461bcd60e51b81526004018080602001828103825260248152602001806113d56024913960400191505060405180910390fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031690565b6001546001600160a01b031633146109175760405162461bcd60e51b81526004018080602001828103825260248152602001806113d56024913960400191505060405180910390fd5b6103e8811061092557600080fd5b600655565b6001546001600160a01b031633146109735760405162461bcd60e51b81526004018080602001828103825260248152602001806113d56024913960400191505060405180910390fd5b600254604080516370a0823160e01b815273e144303f7fc3e99a9de5474fd6c7b40add83a1da600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156109d257600080fd5b505afa1580156109e6573d6000803e3d6000fd5b505050506040513d60208110156109fc57600080fd5b5051600355565b6001546001600160a01b03163314610a4c5760405162461bcd60e51b81526004018080602001828103825260248152602001806113d56024913960400191505060405180910390fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b60055481565b60065481565b6007546001600160a01b031681565b610a91610f88565b6000546001600160a01b03908116911614610af3576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b038116610b385760405162461bcd60e51b81526004018080602001828103825260268152602001806113616026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b031681565b6001546001600160a01b03163314610beb5760405162461bcd60e51b81526004018080602001828103825260248152602001806113d56024913960400191505060405180910390fd5b6103e88110610bf957600080fd5b600555565b600254604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610c4957600080fd5b505afa158015610c5d573d6000803e3d6000fd5b505050506040513d6020811015610c7357600080fd5b5051905080821115610d07576002546040805163a9059cbb60e01b81526001600160a01b038681166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015610cd557600080fd5b505af1158015610ce9573d6000803e3d6000fd5b505050506040513d6020811015610cff57600080fd5b50610d8a9050565b6002546040805163a9059cbb60e01b81526001600160a01b038681166004830152602482018690529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015610d5d57600080fd5b505af1158015610d71573d6000803e3d6000fd5b505050506040513d6020811015610d8757600080fd5b50505b505050565b600082610d9e57506000610deb565b82820282848281610dab57fe5b0414610de85760405162461bcd60e51b81526004018080602001828103825260218152602001806113b46021913960400191505060405180910390fd5b90505b92915050565b6000610de883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611029565b6000610de883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110cb565b801580610efb575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b158015610ecd57600080fd5b505afa158015610ee1573d6000803e3d6000fd5b505050506040513d6020811015610ef757600080fd5b5051155b610f365760405162461bcd60e51b81526004018080602001828103825260368152602001806114236036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052610d8a908490611125565b3390565b6001600160a01b038116610fd15760405162461bcd60e51b815260040180806020018281038252602d815260200180611387602d913960400191505060405180910390fd5b6040516001600160a01b038216906000907f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed908290a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b600081836110b55760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561107a578181015183820152602001611062565b50505050905090810190601f1680156110a75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816110c157fe5b0495945050505050565b6000818484111561111d5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561107a578181015183820152602001611062565b505050900390565b606061117a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166111d69092919063ffffffff16565b805190915015610d8a5780806020019051602081101561119957600080fd5b5051610d8a5760405162461bcd60e51b815260040180806020018281038252602a8152602001806113f9602a913960400191505060405180910390fd5b60606111e584846000856111ed565b949350505050565b60606111f88561135a565b611249576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106112885780518252601f199092019160209182019101611269565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146112ea576040519150601f19603f3d011682016040523d82523d6000602084013e6112ef565b606091505b509150915081156113035791506111e59050565b8051156113135780518082602001fd5b60405162461bcd60e51b815260206004820181815286516024840152865187939192839260440191908501908083836000831561107a578181015183820152602001611062565b3b15159056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573736f70657261746f723a207a65726f206164647265737320676976656e20666f72206e6577206f70657261746f72536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776f70657261746f723a2063616c6c6572206973206e6f7420746865206f70657261746f725361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a2646970667358221220fb6ddf2fa72b376174010c5768d3d1fe4bf944035eada5acb21ff9a339ae491c64736f6c634300060c0033000000000000000000000000eed0c8d2da6d243329a6f4a8c2ac61a59ecbfa02
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101425760003560e01c806385dc3004116100b8578063a79a163f1161007c578063a79a163f146102e9578063c1aa3900146102f1578063e82bef29146102f9578063f2fde38b14610301578063fc0c546a14610327578063fca209121461032f57610142565b806385dc3004146102705780638da5cb5b1461029657806395b1828a1461029e57806398168994146102bb578063a4a2f24c146102c357610142565b8063570ca7351161010a578063570ca735146101f457806358cf9628146102185780636460970d1461023e578063715018a614610246578063821963271461024e5780638382d1b21461025657610142565b806321307bac1461014757806326c291541461016657806329605e77146101a0578063297cc3c5146101c65780634456eda2146101ec575b600080fd5b6101646004803603602081101561015d57600080fd5b503561034c565b005b61018c6004803603602081101561017c57600080fd5b50356001600160a01b03166105e7565b604080519115158252519081900360200190f35b610164600480360360208110156101b657600080fd5b50356001600160a01b03166105fc565b610164600480360360208110156101dc57600080fd5b50356001600160a01b031661066f565b61018c6106da565b6101fc610700565b604080516001600160a01b039092168252519081900360200190f35b6101646004803603602081101561022e57600080fd5b50356001600160a01b031661070f565b6101fc61077c565b61016461078b565b6101fc61083f565b61025e61084e565b60408051918252519081900360200190f35b6101646004803603602081101561028657600080fd5b50356001600160a01b0316610854565b6101fc6108bf565b610164600480360360208110156102b457600080fd5b50356108ce565b61016461092a565b610164600480360360208110156102d957600080fd5b50356001600160a01b0316610a03565b61025e610a6e565b61025e610a74565b6101fc610a7a565b6101646004803603602081101561031757600080fd5b50356001600160a01b0316610a89565b6101fc610b93565b6101646004803603602081101561034557600080fd5b5035610ba2565b3360009081526009602052604090205460ff166103b0576040805162461bcd60e51b815260206004820152601e60248201527f53656e646572206e6f7420616c6c6f77656420746f2061646420666565730000604482015290519081900360640190fd5b600254604080516370a0823160e01b815273e144303f7fc3e99a9de5474fd6c7b40add83a1da600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561040f57600080fd5b505afa158015610423573d6000803e3d6000fd5b505050506040513d602081101561043957600080fd5b50516003549091508110156104705761046673e144303f7fc3e99a9de5474fd6c7b40add83a1da83610bfe565b81016003556105e4565b60006104936103e861048d60055486610d8f90919063ffffffff16565b90610df1565b905060006104a18483610e33565b905060006104c06103e861048d60065486610d8f90919063ffffffff16565b905080156104eb576007546104de906001600160a01b031682610bfe565b6104e88382610e33565b92505b82156105905760045460025461050f916001600160a01b0391821691166000610e75565b60045460025461052c916001600160a01b03918216911685610e75565b60048054604080516342ef9f2560e11b8152928301869052516001600160a01b03909116916385df3e4a91602480830192600092919082900301818387803b15801561057757600080fd5b505af115801561058b573d6000803e3d6000fd5b505050505b81156105ac576008546105ac906001600160a01b031683610bfe565b6040805186815290517f59fdca5c5019c8bddf5b408b17992d0fce838508a49ac6a398c8e06e645cfdf89181900360200190a1505050505b50565b60096020526000908152604090205460ff1681565b610604610f88565b6000546001600160a01b03908116911614610666576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6105e481610f8c565b6001546001600160a01b031633146106b85760405162461bcd60e51b81526004018080602001828103825260248152602001806113d56024913960400191505060405180910390fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6001546000906001600160a01b03166106f1610f88565b6001600160a01b031614905090565b6001546001600160a01b031690565b6001546001600160a01b031633146107585760405162461bcd60e51b81526004018080602001828103825260248152602001806113d56024913960400191505060405180910390fd5b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b6008546001600160a01b031681565b610793610f88565b6000546001600160a01b039081169116146107f5576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6004546001600160a01b031681565b60035481565b6001546001600160a01b0316331461089d5760405162461bcd60e51b81526004018080602001828103825260248152602001806113d56024913960400191505060405180910390fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031690565b6001546001600160a01b031633146109175760405162461bcd60e51b81526004018080602001828103825260248152602001806113d56024913960400191505060405180910390fd5b6103e8811061092557600080fd5b600655565b6001546001600160a01b031633146109735760405162461bcd60e51b81526004018080602001828103825260248152602001806113d56024913960400191505060405180910390fd5b600254604080516370a0823160e01b815273e144303f7fc3e99a9de5474fd6c7b40add83a1da600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156109d257600080fd5b505afa1580156109e6573d6000803e3d6000fd5b505050506040513d60208110156109fc57600080fd5b5051600355565b6001546001600160a01b03163314610a4c5760405162461bcd60e51b81526004018080602001828103825260248152602001806113d56024913960400191505060405180910390fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b60055481565b60065481565b6007546001600160a01b031681565b610a91610f88565b6000546001600160a01b03908116911614610af3576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b038116610b385760405162461bcd60e51b81526004018080602001828103825260268152602001806113616026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b031681565b6001546001600160a01b03163314610beb5760405162461bcd60e51b81526004018080602001828103825260248152602001806113d56024913960400191505060405180910390fd5b6103e88110610bf957600080fd5b600555565b600254604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610c4957600080fd5b505afa158015610c5d573d6000803e3d6000fd5b505050506040513d6020811015610c7357600080fd5b5051905080821115610d07576002546040805163a9059cbb60e01b81526001600160a01b038681166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015610cd557600080fd5b505af1158015610ce9573d6000803e3d6000fd5b505050506040513d6020811015610cff57600080fd5b50610d8a9050565b6002546040805163a9059cbb60e01b81526001600160a01b038681166004830152602482018690529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015610d5d57600080fd5b505af1158015610d71573d6000803e3d6000fd5b505050506040513d6020811015610d8757600080fd5b50505b505050565b600082610d9e57506000610deb565b82820282848281610dab57fe5b0414610de85760405162461bcd60e51b81526004018080602001828103825260218152602001806113b46021913960400191505060405180910390fd5b90505b92915050565b6000610de883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611029565b6000610de883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110cb565b801580610efb575060408051636eb1769f60e11b81523060048201526001600160a01b03848116602483015291519185169163dd62ed3e91604480820192602092909190829003018186803b158015610ecd57600080fd5b505afa158015610ee1573d6000803e3d6000fd5b505050506040513d6020811015610ef757600080fd5b5051155b610f365760405162461bcd60e51b81526004018080602001828103825260368152602001806114236036913960400191505060405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052610d8a908490611125565b3390565b6001600160a01b038116610fd15760405162461bcd60e51b815260040180806020018281038252602d815260200180611387602d913960400191505060405180910390fd5b6040516001600160a01b038216906000907f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed908290a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b600081836110b55760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561107a578181015183820152602001611062565b50505050905090810190601f1680156110a75780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816110c157fe5b0495945050505050565b6000818484111561111d5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561107a578181015183820152602001611062565b505050900390565b606061117a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166111d69092919063ffffffff16565b805190915015610d8a5780806020019051602081101561119957600080fd5b5051610d8a5760405162461bcd60e51b815260040180806020018281038252602a8152602001806113f9602a913960400191505060405180910390fd5b60606111e584846000856111ed565b949350505050565b60606111f88561135a565b611249576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106112885780518252601f199092019160209182019101611269565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146112ea576040519150601f19603f3d011682016040523d82523d6000602084013e6112ef565b606091505b509150915081156113035791506111e59050565b8051156113135780518082602001fd5b60405162461bcd60e51b815260206004820181815286516024840152865187939192839260440191908501908083836000831561107a578181015183820152602001611062565b3b15159056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573736f70657261746f723a207a65726f206164647265737320676976656e20666f72206e6577206f70657261746f72536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f776f70657261746f723a2063616c6c6572206973206e6f7420746865206f70657261746f725361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a2646970667358221220fb6ddf2fa72b376174010c5768d3d1fe4bf944035eada5acb21ff9a339ae491c64736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000eed0c8d2da6d243329a6f4a8c2ac61a59ecbfa02
-----Decoded View---------------
Arg [0] : _tokenAddress (address): 0xEEd0c8d2DA6d243329a6F4A8C2aC61A59ecBFa02
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000eed0c8d2da6d243329a6f4a8c2ac61a59ecbfa02
Deployed Bytecode Sourcemap
23052:4192:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24462:1520;;;;;;;;;;;;;;;;-1:-1:-1;24462:1520:0;;:::i;:::-;;23969:44;;;;;;;;;;;;;;;;-1:-1:-1;23969:44:0;-1:-1:-1;;;;;23969:44:0;;:::i;:::-;;;;;;;;;;;;;;;;;;21998:115;;;;;;;;;;;;;;;;-1:-1:-1;21998:115:0;-1:-1:-1;;;;;21998:115:0;;:::i;26443:113::-;;;;;;;;;;;;;;;;-1:-1:-1;26443:113:0;-1:-1:-1;;;;;26443:113:0;;:::i;21890:100::-;;;:::i;21625:85::-;;;:::i;:::-;;;;-1:-1:-1;;;;;21625:85:0;;;;;;;;;;;;;;27128:113;;;;;;;;;;;;;;;;-1:-1:-1;27128:113:0;-1:-1:-1;;;;;27128:113:0;;:::i;23879:36::-;;;:::i;20666:148::-;;;:::i;23385:31::-;;;:::i;23206:39::-;;;:::i;:::-;;;;;;;;;;;;;;;;26735:103;;;;;;;;;;;;;;;;-1:-1:-1;26735:103:0;-1:-1:-1;;;;;26735:103:0;;:::i;20024:79::-;;;:::i;26846:143::-;;;;;;;;;;;;;;;;-1:-1:-1;26846:143:0;;:::i;24159:136::-;;;:::i;26997:123::-;;;;;;;;;;;;;;;;-1:-1:-1;26997:123:0;-1:-1:-1;;;;;26997:123:0;;:::i;23492:44::-;;;:::i;23637:38::-;;;:::i;23706:26::-;;;:::i;20969:244::-;;;;;;;;;;;;;;;;-1:-1:-1;20969:244:0;-1:-1:-1;;;;;20969:244:0;;:::i;23180:19::-;;;:::i;26568:159::-;;;;;;;;;;;;;;;;-1:-1:-1;26568:159:0;;:::i;24462:1520::-;24570:10;24557:24;;;;:12;:24;;;;;;;;24549:67;;;;;-1:-1:-1;;;24549:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;24669:5;;:34;;;-1:-1:-1;;;24669:34:0;;23289:42;24669:34;;;;;;24627:39;;-1:-1:-1;;;;;24669:5:0;;:15;;:34;;;;;;;;;;;;;;:5;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24669:34:0;24752:24;;24669:34;;-1:-1:-1;24718:58:0;;24714:234;;;24793:40;23289:42;24826:6;24793:13;:40::i;:::-;24875;;24848:24;:67;24930:7;;24714:234;24968:30;25001:45;25041:4;25001:35;25012:23;;25001:6;:10;;:35;;;;:::i;:::-;:39;;:45::i;:::-;24968:78;-1:-1:-1;25057:35:0;25095:34;:6;24968:78;25095:10;:34::i;:::-;25057:72;;25150:25;25178:56;25229:4;25178:46;25205:18;;25178:22;:26;;:46;;;;:::i;:56::-;25150:84;-1:-1:-1;25249:21:0;;25245:287;;25404:11;;25390:45;;-1:-1:-1;;;;;25404:11:0;25417:17;25390:13;:45::i;:::-;25475;:22;25502:17;25475:26;:45::i;:::-;25450:70;;25245:287;25555:26;;25552:253;;25616:16;;25598:5;;:38;;-1:-1:-1;;;;;25598:5:0;;;;25616:16;;25598:17;:38::i;:::-;25669:16;;25651:5;;:59;;-1:-1:-1;;;;;25651:5:0;;;;25669:16;25687:22;25651:17;:59::i;:::-;25738:16;;;25725:68;;;-1:-1:-1;;;25725:68:0;;;;;;;;;-1:-1:-1;;;;;25738:16:0;;;;25725:44;;:68;;;;;25738:16;;25725:68;;;;;;;25738:16;;25725:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25552:253;25818:31;;25815:128;;25880:21;;25866:65;;-1:-1:-1;;;;;25880:21:0;25903:27;25866:13;:65::i;:::-;25958:16;;;;;;;;;;;;;;;;;24462:1520;;;;;;:::o;23969:44::-;;;;;;;;;;;;;;;:::o;21998:115::-;20246:12;:10;:12::i;:::-;20236:6;;-1:-1:-1;;;;;20236:6:0;;;:22;;;20228:67;;;;;-1:-1:-1;;;20228:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22074:31:::1;22092:12;22074:17;:31::i;26443:113::-:0;21775:9;;-1:-1:-1;;;;;21775:9:0;21788:10;21775:23;21753:109;;;;-1:-1:-1;;;21753:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26521:16:::1;:27:::0;;-1:-1:-1;;;;;;26521:27:0::1;-1:-1:-1::0;;;;;26521:27:0;;;::::1;::::0;;;::::1;::::0;;26443:113::o;21890:100::-;21973:9;;21933:4;;-1:-1:-1;;;;;21973:9:0;21957:12;:10;:12::i;:::-;-1:-1:-1;;;;;21957:25:0;;21950:32;;21890:100;:::o;21625:85::-;21693:9;;-1:-1:-1;;;;;21693:9:0;21625:85;:::o;27128:113::-;21775:9;;-1:-1:-1;;;;;21775:9:0;21788:10;21775:23;21753:109;;;;-1:-1:-1;;;21753:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27204:22:0::1;;::::0;;;:12:::1;:22;::::0;;;;:29;;-1:-1:-1;;27204:29:0::1;27229:4;27204:29;::::0;;27128:113::o;23879:36::-;;;-1:-1:-1;;;;;23879:36:0;;:::o;20666:148::-;20246:12;:10;:12::i;:::-;20236:6;;-1:-1:-1;;;;;20236:6:0;;;:22;;;20228:67;;;;;-1:-1:-1;;;20228:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20773:1:::1;20757:6:::0;;20736:40:::1;::::0;-1:-1:-1;;;;;20757:6:0;;::::1;::::0;20736:40:::1;::::0;20773:1;;20736:40:::1;20804:1;20787:19:::0;;-1:-1:-1;;;;;;20787:19:0::1;::::0;;20666:148::o;23385:31::-;;;-1:-1:-1;;;;;23385:31:0;;:::o;23206:39::-;;;;:::o;26735:103::-;21775:9;;-1:-1:-1;;;;;21775:9:0;21788:10;21775:23;21753:109;;;;-1:-1:-1;;;21753:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26808:11:::1;:22:::0;;-1:-1:-1;;;;;;26808:22:0::1;-1:-1:-1::0;;;;;26808:22:0;;;::::1;::::0;;;::::1;::::0;;26735:103::o;20024:79::-;20062:7;20089:6;-1:-1:-1;;;;;20089:6:0;20024:79;:::o;26846:143::-;21775:9;;-1:-1:-1;;;;;21775:9:0;21788:10;21775:23;21753:109;;;;-1:-1:-1;;;21753:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26939:4:::1;26931:5;:12;26923:21;;;::::0;::::1;;26955:18;:26:::0;26846:143::o;24159:136::-;21775:9;;-1:-1:-1;;;;;21775:9:0;21788:10;21775:23;21753:109;;;;-1:-1:-1;;;21753:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24253:5:::1;::::0;:34:::1;::::0;;-1:-1:-1;;;24253:34:0;;23289:42:::1;24253:34;::::0;::::1;::::0;;;-1:-1:-1;;;;;24253:5:0;;::::1;::::0;:15:::1;::::0;:34;;;;;::::1;::::0;;;;;;;;;:5;:34;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;24253:34:0;24226:24:::1;:61:::0;24159:136::o;26997:123::-;21775:9;;-1:-1:-1;;;;;21775:9:0;21788:10;21775:23;21753:109;;;;-1:-1:-1;;;21753:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27080:21:::1;:32:::0;;-1:-1:-1;;;;;;27080:32:0::1;-1:-1:-1::0;;;;;27080:32:0;;;::::1;::::0;;;::::1;::::0;;26997:123::o;23492:44::-;;;;:::o;23637:38::-;;;;:::o;23706:26::-;;;-1:-1:-1;;;;;23706:26:0;;:::o;20969:244::-;20246:12;:10;:12::i;:::-;20236:6;;-1:-1:-1;;;;;20236:6:0;;;:22;;;20228:67;;;;;-1:-1:-1;;;20228:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21058:22:0;::::1;21050:73;;;;-1:-1:-1::0;;;21050:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21160:6;::::0;;21139:38:::1;::::0;-1:-1:-1;;;;;21139:38:0;;::::1;::::0;21160:6;::::1;::::0;21139:38:::1;::::0;::::1;21188:6;:17:::0;;-1:-1:-1;;;;;;21188:17:0::1;-1:-1:-1::0;;;;;21188:17:0;;;::::1;::::0;;;::::1;::::0;;20969:244::o;23180:19::-;;;-1:-1:-1;;;;;23180:19:0;;:::o;26568:159::-;21775:9;;-1:-1:-1;;;;;21775:9:0;21788:10;21775:23;21753:109;;;;-1:-1:-1;;;21753:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26670:4:::1;26660:7;:14;26652:23;;;::::0;::::1;;26686;:33:::0;26568:159::o;26076:309::-;26188:5;;:30;;;-1:-1:-1;;;26188:30:0;;26212:4;26188:30;;;;;;26165:20;;-1:-1:-1;;;;;26188:5:0;;:15;;:30;;;;;;;;;;;;;;:5;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26188:30:0;;-1:-1:-1;26233:22:0;;;26229:149;;;26272:5;;:33;;;-1:-1:-1;;;26272:33:0;;-1:-1:-1;;;;;26272:33:0;;;;;;;;;;;;;;;:5;;;;;:14;;:33;;;;;;;;;;;;;;:5;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26229:149:0;;-1:-1:-1;26229:149:0;;26338:5;;:28;;;-1:-1:-1;;;26338:28:0;;-1:-1:-1;;;;;26338:28:0;;;;;;;;;;;;;;;:5;;;;;:14;;:28;;;;;;;;;;;;;;:5;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;26229:149:0;26076:309;;;:::o;5076:471::-;5134:7;5379:6;5375:47;;-1:-1:-1;5409:1:0;5402:8;;5375:47;5446:5;;;5450:1;5446;:5;:1;5470:5;;;;;:10;5462:56;;;;-1:-1:-1;;;5462:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5538:1;-1:-1:-1;5076:471:0;;;;;:::o;6023:132::-;6081:7;6108:39;6112:1;6115;6108:39;;;;;;;;;;;;;;;;;:3;:39::i;4186:136::-;4244:7;4271:43;4275:1;4278;4271:43;;;;;;;;;;;;;;;;;:3;:43::i;15542:622::-;15912:10;;;15911:62;;-1:-1:-1;15928:39:0;;;-1:-1:-1;;;15928:39:0;;15952:4;15928:39;;;;-1:-1:-1;;;;;15928:39:0;;;;;;;;;:15;;;;;;:39;;;;;;;;;;;;;;;:15;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15928:39:0;:44;15911:62;15903:152;;;;-1:-1:-1;;;15903:152:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16093:62;;;-1:-1:-1;;;;;16093:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16093:62:0;-1:-1:-1;;;16093:62:0;;;16066:90;;16086:5;;16066:19;:90::i;18578:106::-;18666:10;18578:106;:::o;22121:294::-;-1:-1:-1;;;;;22212:26:0;;22190:121;;;;-1:-1:-1;;;22190:121:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22327:45;;-1:-1:-1;;;;;22327:45:0;;;22355:1;;22327:45;;22355:1;;22327:45;22383:9;:24;;-1:-1:-1;;;;;;22383:24:0;-1:-1:-1;;;;;22383:24:0;;;;;;;;;;22121:294::o;6651:278::-;6737:7;6772:12;6765:5;6757:28;;;;-1:-1:-1;;;6757:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6796:9;6812:1;6808;:5;;;;;;;6651:278;-1:-1:-1;;;;;6651:278:0:o;4625:192::-;4711:7;4747:12;4739:6;;;;4731:29;;;;-1:-1:-1;;;4731:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4783:5:0;;;4625:192::o;17188:761::-;17612:23;17638:69;17666:4;17638:69;;;;;;;;;;;;;;;;;17646:5;-1:-1:-1;;;;;17638:27:0;;;:69;;;;;:::i;:::-;17722:17;;17612:95;;-1:-1:-1;17722:21:0;17718:224;;17864:10;17853:30;;;;;;;;;;;;;;;-1:-1:-1;17853:30:0;17845:85;;;;-1:-1:-1;;;17845:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11864:196;11967:12;11999:53;12022:6;12030:4;12036:1;12039:12;11999:22;:53::i;:::-;11992:60;11864:196;-1:-1:-1;;;;11864:196:0:o;13241:979::-;13371:12;13404:18;13415:6;13404:10;:18::i;:::-;13396:60;;;;;-1:-1:-1;;;13396:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13530:12;13544:23;13571:6;-1:-1:-1;;;;;13571:11:0;13591:8;13602:4;13571:36;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13571:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13529:78;;;;13622:7;13618:595;;;13653:10;-1:-1:-1;13646:17:0;;-1:-1:-1;13646:17:0;13618:595;13767:17;;:21;13763:439;;14030:10;14024:17;14091:15;14078:10;14074:2;14070:19;14063:44;13978:148;14166:20;;-1:-1:-1;;;14166:20:0;;;;;;;;;;;;;;;;;14173:12;;14166:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8946:422;9313:20;9352:8;;;8946:422::o
Swarm Source
ipfs://fb6ddf2fa72b376174010c5768d3d1fe4bf944035eada5acb21ff9a339ae491c
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 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.