Latest 25 from a total of 10,145 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 14914856 | 2 days ago | IN | 0 MOVR | 0.00037537 | ||||
| Approve | 14914853 | 2 days ago | IN | 0 MOVR | 0.00037537 | ||||
| Approve | 14546689 | 30 days ago | IN | 0 MOVR | 0.00037537 | ||||
| Approve | 14308481 | 48 days ago | IN | 0 MOVR | 0.00037537 | ||||
| Approve | 13865561 | 82 days ago | IN | 0 MOVR | 0.00037537 | ||||
| Approve | 13852341 | 83 days ago | IN | 0 MOVR | 0.00037537 | ||||
| Approve | 13815076 | 86 days ago | IN | 0 MOVR | 0.00037537 | ||||
| Approve | 13749165 | 91 days ago | IN | 0 MOVR | 0.00037537 | ||||
| Approve | 13315850 | 124 days ago | IN | 0 MOVR | 0.00038591 | ||||
| Approve | 13280750 | 127 days ago | IN | 0 MOVR | 0.00038591 | ||||
| Approve | 13190768 | 134 days ago | IN | 0 MOVR | 0.00011376 | ||||
| Approve | 13164549 | 136 days ago | IN | 0 MOVR | 0.00038591 | ||||
| Approve | 13163597 | 136 days ago | IN | 0 MOVR | 0.00005675 | ||||
| Approve | 13151678 | 137 days ago | IN | 0 MOVR | 0.00012485 | ||||
| Approve | 13151669 | 137 days ago | IN | 0 MOVR | 0.0001135 | ||||
| Approve | 13135285 | 138 days ago | IN | 0 MOVR | 0.00040861 | ||||
| Approve | 13135284 | 138 days ago | IN | 0 MOVR | 0.00040861 | ||||
| Approve | 12896152 | 157 days ago | IN | 0 MOVR | 0.00008887 | ||||
| Approve | 12858641 | 160 days ago | IN | 0 MOVR | 0.00012485 | ||||
| Approve | 12811160 | 164 days ago | IN | 0 MOVR | 0.00017064 | ||||
| Approve | 12800117 | 165 days ago | IN | 0 MOVR | 0.00011376 | ||||
| Approve | 12791148 | 166 days ago | IN | 0 MOVR | 0.00038591 | ||||
| Approve | 12791142 | 166 days ago | IN | 0 MOVR | 0.00038591 | ||||
| Approve | 12761927 | 168 days ago | IN | 0 MOVR | 0.00017064 | ||||
| Approve | 12742432 | 170 days ago | IN | 0 MOVR | 0.00011376 |
View more zero value Internal Transactions in Advanced View mode
Cross-Chain Transactions
Loading...
Loading
Contract Name:
FINN
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/**
*Submitted for verification at moonriver.moonscan.io on 2021-11-04
*/
/**
* Submitted for verification at blockscout.com on 2021-09-28 09:17:23.308035Z
*/
// File: @openzeppelin/contracts/utils/Context.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.6.0 <0.8.0;
/*
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with 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/GSN/Context.sol
pragma solidity >=0.6.0 <0.8.0;
// File: @openzeppelin/contracts/token/ERC20/IERC20.sol
pragma solidity >=0.6.0 <0.8.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 <0.8.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, with an overflow flag.
*
* _Available since v3.4._
*/
function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
uint256 c = a + b;
if (c < a) return (false, 0);
return (true, c);
}
/**
* @dev Returns the substraction of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
if (b > a) return (false, 0);
return (true, a - b);
}
/**
* @dev Returns the multiplication of two unsigned integers, with an overflow flag.
*
* _Available since v3.4._
*/
function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) return (true, 0);
uint256 c = a * b;
if (c / a != b) return (false, 0);
return (true, c);
}
/**
* @dev Returns the division of two unsigned integers, with a division by zero flag.
*
* _Available since v3.4._
*/
function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
if (b == 0) return (false, 0);
return (true, a / b);
}
/**
* @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
*
* _Available since v3.4._
*/
function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
if (b == 0) return (false, 0);
return (true, a % b);
}
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
*
* - Addition cannot overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
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) {
require(b <= a, "SafeMath: subtraction overflow");
return a - b;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
*
* - Multiplication cannot overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
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, reverting 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) {
require(b > 0, "SafeMath: division by zero");
return a / b;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* reverting when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
require(b > 0, "SafeMath: modulo by zero");
return a % b;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {trySub}.
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b <= a, errorMessage);
return a - b;
}
/**
* @dev Returns the integer division of two unsigned integers, reverting with custom message on
* division by zero. The result is rounded towards zero.
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {tryDiv}.
*
* 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);
return a / b;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* reverting with custom message when dividing by zero.
*
* CAUTION: This function is deprecated because it requires allocating memory for the error
* message unnecessarily. For custom revert reasons use {tryMod}.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
require(b > 0, errorMessage);
return a % b;
}
}
// File: @openzeppelin/contracts/utils/Address.sol
pragma solidity >=0.6.2 <0.8.0;
/**
* @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 on 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");
require(isContract(target), "Address: call to non-contract");
// solhint-disable-next-line avoid-low-level-calls
(bool success, bytes memory returndata) = target.call{ value: value }(data);
return _verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
return functionStaticCall(target, data, "Address: low-level static call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
require(isContract(target), "Address: static call to non-contract");
// solhint-disable-next-line avoid-low-level-calls
(bool success, bytes memory returndata) = target.staticcall(data);
return _verifyCallResult(success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
return functionDelegateCall(target, data, "Address: low-level delegate call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
require(isContract(target), "Address: delegate call to non-contract");
// solhint-disable-next-line avoid-low-level-calls
(bool success, bytes memory returndata) = target.delegatecall(data);
return _verifyCallResult(success, returndata, errorMessage);
}
function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
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/access/Ownable.sol
pragma solidity >=0.6.0 <0.8.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.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor () internal {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
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/RERC20.sol
pragma solidity ^0.6.2;
/*
* HuckleberryFinance
* Reflect Token implementation
* App: https://huckleberry.finance
* GitHub: https://github.com/huckleberryDex
*/
contract RERC20 is Context, IERC20, Ownable {
using SafeMath for uint256;
using Address for address;
mapping (address => uint256) private _rOwned;
mapping (address => uint256) private _tOwned;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) private _isExcluded;
address[] private _excluded;
string private _name;
string private _symbol;
uint8 private _decimals;
uint256 _taxFee = 100; // 1%
uint256 _maxTaxFee = 1000; // 10%
uint256 private constant _GRANULARITY = 100;
uint256 private constant MAX = ~uint256(0);
uint256 private _tTotal;
uint256 private _rTotal;
uint256 private _tFeeTotal;
event UpdateTaxFee(uint256 previousTaxFee, uint256 newTaxFee);
constructor (
uint256 initialSupply,
string memory name,
string memory symbol,
uint8 decimals,
uint256 taxFee
) public {
_name = name;
_symbol = symbol;
_decimals = decimals;
_taxFee = taxFee;
_tTotal = initialSupply;
_rTotal = (MAX - (MAX % _tTotal));
_rOwned[_msgSender()] = _rTotal;
emit Transfer(address(0), _msgSender(), _tTotal);
}
function name() public view returns (string memory) {
return _name;
}
function symbol() public view returns (string memory) {
return _symbol;
}
function decimals() public view returns (uint8) {
return _decimals;
}
function totalSupply() public view override returns (uint256) {
return _tTotal;
}
function taxFee() external view returns (uint256) {
return _taxFee;
}
function maxTaxFee() external view returns (uint256) {
return _maxTaxFee;
}
function balanceOf(address account) public view override returns (uint256) {
if (_isExcluded[account]) return _tOwned[account];
return tokenFromReflection(_rOwned[account]);
}
function transfer(address recipient, uint256 amount) public override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender) public view override returns (uint256) {
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) public override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
return true;
}
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
_approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
return true;
}
function isExcluded(address account) public view returns (bool) {
return _isExcluded[account];
}
function totalFees() public view returns (uint256) {
return _tFeeTotal;
}
function reflect(uint256 tAmount) external {
address sender = _msgSender();
require(!_isExcluded[sender], "Excluded addresses cannot call this function");
(uint256 rAmount,,,,) = _getValues(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_rTotal = _rTotal.sub(rAmount);
_tFeeTotal = _tFeeTotal.add(tAmount);
}
function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) {
require(tAmount <= _tTotal, "Amount must be less than supply");
(uint256 rAmount, uint256 rTransferAmount,,,) = _getValues(tAmount);
return deductTransferFee ? rTransferAmount : rAmount;
}
function tokenFromReflection(uint256 rAmount) public view returns(uint256) {
require(rAmount <= _rTotal, "Amount must be less than total reflections");
uint256 currentRate = _getRate();
return rAmount.div(currentRate);
}
function excludeAccount(address account) external onlyOwner() {
require(!_isExcluded[account], "Account is already excluded");
if(_rOwned[account] > 0) {
_tOwned[account] = tokenFromReflection(_rOwned[account]);
}
_isExcluded[account] = true;
_excluded.push(account);
}
function includeAccount(address account) external onlyOwner() {
require(_isExcluded[account], "Account is already excluded");
for (uint256 i = 0; i < _excluded.length; i++) {
if (_excluded[i] == account) {
_excluded[i] = _excluded[_excluded.length - 1];
_tOwned[account] = 0;
_isExcluded[account] = false;
_excluded.pop();
break;
}
}
}
function updateTaxFee(uint256 _fee) public onlyOwner {
require(_fee <= _maxTaxFee, 'fee must be mess than maxTaxFee');
uint256 previousTaxFee = _taxFee;
_taxFee = _fee;
emit UpdateTaxFee(previousTaxFee, _taxFee);
}
function _approve(address owner, address spender, uint256 amount) private {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _transfer(address sender, address recipient, uint256 amount) private {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
require(amount > 0, "Transfer amount must be greater than zero");
if (_isExcluded[sender] && !_isExcluded[recipient]) {
_transferFromExcluded(sender, recipient, amount);
} else if (!_isExcluded[sender] && _isExcluded[recipient]) {
_transferToExcluded(sender, recipient, amount);
} else if (_isExcluded[sender] && _isExcluded[recipient]) {
_transferBothExcluded(sender, recipient, amount);
} else {
/// @dev neither are excluded
_transferStandard(sender, recipient, amount);
}
}
function _transferStandard(address sender, address recipient, uint256 tAmount) private {
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _transferToExcluded(address sender, address recipient, uint256 tAmount) private {
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private {
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
_tOwned[sender] = _tOwned[sender].sub(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount);
_tOwned[sender] = _tOwned[sender].sub(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _reflectFee(uint256 rFee, uint256 tFee) private {
_rTotal = _rTotal.sub(rFee);
_tFeeTotal = _tFeeTotal.add(tFee);
}
function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256) {
(uint256 tTransferAmount, uint256 tFee) = _getTValues(tAmount);
uint256 currentRate = _getRate();
(uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, currentRate);
return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee);
}
function _getTValues(uint256 tAmount) private view returns (uint256, uint256) {
uint256 tFee = ((tAmount.mul(_taxFee)).div(_GRANULARITY)).div(100);
uint256 tTransferAmount = tAmount.sub(tFee);
return (tTransferAmount, tFee);
}
function _getRValues(uint256 tAmount, uint256 tFee, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
uint256 rAmount = tAmount.mul(currentRate);
uint256 rFee = tFee.mul(currentRate);
uint256 rTransferAmount = rAmount.sub(rFee);
return (rAmount, rTransferAmount, rFee);
}
function _getRate() private view returns(uint256) {
(uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
return rSupply.div(tSupply);
}
function _getCurrentSupply() private view returns(uint256, uint256) {
uint256 rSupply = _rTotal;
uint256 tSupply = _tTotal;
for (uint256 i = 0; i < _excluded.length; i++) {
if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
rSupply = rSupply.sub(_rOwned[_excluded[i]]);
tSupply = tSupply.sub(_tOwned[_excluded[i]]);
}
if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
return (rSupply, tSupply);
}
}
// File: contracts/FINN.sol
pragma solidity 0.6.12;
/*
* HuckleberryFinance
* App: https://huckleberry.finance
* GitHub: https://github.com/huckleberryfinance
*/
contract FINN is RERC20 {
// 1% fee to all holders
constructor (uint256 initialSupply) public RERC20(initialSupply, "FINN Token", "FINN", 18, 100) {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"uint256","name":"initialSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"previousTaxFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTaxFee","type":"uint256"}],"name":"UpdateTaxFee","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"reflect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"updateTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405260646009556103e8600a553480156200001c57600080fd5b506040516200376138038062003761833981810160405260208110156200004257600080fd5b8101908080519060200190929190505050806040518060400160405280600a81526020017f46494e4e20546f6b656e000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f46494e4e00000000000000000000000000000000000000000000000000000000815250601260646000620000d6620002c060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35083600690805190602001906200018c929190620002c8565b508260079080519060200190620001a5929190620002c8565b5081600860006101000a81548160ff021916908360ff1602179055508060098190555084600b81905550600b5460001981620001dd57fe5b0660001903600c81905550600c5460016000620001ff620002c060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200024d620002c060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b546040518082815260200191505060405180910390a35050505050506200036e565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200030b57805160ff19168380011785556200033c565b828001600101855582156200033c579182015b828111156200033b5782518255916020019190600101906200031e565b5b5090506200034b91906200034f565b5090565b5b808211156200036a57600081600090555060010162000350565b5090565b6133e3806200037e6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80638da5cb5b116100c3578063c7992f9a1161007c578063c7992f9a14610674578063cba0e99614610692578063dd62ed3e146106ec578063f2cc0c1814610764578063f2fde38b146107a8578063f84354f1146107ec57610158565b80638da5cb5b146104a957806395d89b41146104dd578063a071dcf414610560578063a457c2d71461057e578063a9059cbb146105e2578063b55053351461064657610158565b80632d838119116101155780632d83811914610332578063313ce5671461037457806339509351146103955780634549b039146103f957806370a0823114610447578063715018a61461049f57610158565b8063053ab1821461015d57806306fdde031461018b578063095ea7b31461020e57806313114a9d1461027257806318160ddd1461029057806323b872dd146102ae575b600080fd5b6101896004803603602081101561017357600080fd5b8101908080359060200190929190505050610830565b005b6101936109c0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101d35780820151818401526020810190506101b8565b50505050905090810190601f1680156102005780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61025a6004803603604081101561022457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a62565b60405180821515815260200191505060405180910390f35b61027a610a80565b6040518082815260200191505060405180910390f35b610298610a8a565b6040518082815260200191505060405180910390f35b61031a600480360360608110156102c457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a94565b60405180821515815260200191505060405180910390f35b61035e6004803603602081101561034857600080fd5b8101908080359060200190929190505050610b6d565b6040518082815260200191505060405180910390f35b61037c610bf1565b604051808260ff16815260200191505060405180910390f35b6103e1600480360360408110156103ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c08565b60405180821515815260200191505060405180910390f35b6104316004803603604081101561040f57600080fd5b8101908080359060200190929190803515159060200190929190505050610cbb565b6040518082815260200191505060405180910390f35b6104896004803603602081101561045d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d5f565b6040518082815260200191505060405180910390f35b6104a7610e4a565b005b6104b1610fb7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104e5610fe0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561052557808201518184015260208101905061050a565b50505050905090810190601f1680156105525780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610568611082565b6040518082815260200191505060405180910390f35b6105ca6004803603604081101561059457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061108c565b60405180821515815260200191505060405180910390f35b61062e600480360360408110156105f857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611159565b60405180821515815260200191505060405180910390f35b6106726004803603602081101561065c57600080fd5b8101908080359060200190929190505050611177565b005b61067c6112f1565b6040518082815260200191505060405180910390f35b6106d4600480360360208110156106a857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112fb565b60405180821515815260200191505060405180910390f35b61074e6004803603604081101561070257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611351565b6040518082815260200191505060405180910390f35b6107a66004803603602081101561077a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113d8565b005b6107ea600480360360208110156107be57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116d9565b005b61082e6004803603602081101561080257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118cb565b005b600061083a611c3c565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156108df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061335d602c913960400191505060405180910390fd5b60006108ea83611c44565b50505050905061094281600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061099a81600c54611c9c90919063ffffffff16565b600c819055506109b583600d54611d1f90919063ffffffff16565b600d81905550505050565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a585780601f10610a2d57610100808354040283529160200191610a58565b820191906000526020600020905b815481529060010190602001808311610a3b57829003601f168201915b5050505050905090565b6000610a76610a6f611c3c565b8484611da7565b6001905092915050565b6000600d54905090565b6000600b54905090565b6000610aa1848484611f9e565b610b6284610aad611c3c565b610b5d856040518060600160405280602881526020016132c360289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b13611c3c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461233d9092919063ffffffff16565b611da7565b600190509392505050565b6000600c54821115610bca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613230602a913960400191505060405180910390fd5b6000610bd46123f7565b9050610be9818461242290919063ffffffff16565b915050919050565b6000600860009054906101000a900460ff16905090565b6000610cb1610c15611c3c565b84610cac8560036000610c26611c3c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1f90919063ffffffff16565b611da7565b6001905092915050565b6000600b54831115610d35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b600080610d4185611c44565b5050509150915083610d535781610d55565b805b9250505092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610dfa57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610e45565b610e42600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b6d565b90505b919050565b610e52611c3c565b73ffffffffffffffffffffffffffffffffffffffff16610e70610fb7565b73ffffffffffffffffffffffffffffffffffffffff1614610ef9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110785780601f1061104d57610100808354040283529160200191611078565b820191906000526020600020905b81548152906001019060200180831161105b57829003601f168201915b5050505050905090565b6000600954905090565b600061114f611099611c3c565b8461114a8560405180606001604052806025815260200161338960259139600360006110c3611c3c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461233d9092919063ffffffff16565b611da7565b6001905092915050565b600061116d611166611c3c565b8484611f9e565b6001905092915050565b61117f611c3c565b73ffffffffffffffffffffffffffffffffffffffff1661119d610fb7565b73ffffffffffffffffffffffffffffffffffffffff1614611226576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600a5481111561129e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f666565206d757374206265206d657373207468616e206d61785461784665650081525060200191505060405180910390fd5b60006009549050816009819055507f3bd44ad33925c1a81e6dea38583782e35a5124cee2473f5fe16d366f0ad0d6b681600954604051808381526020018281526020019250505060405180910390a15050565b6000600a54905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113e0611c3c565b73ffffffffffffffffffffffffffffffffffffffff166113fe610fb7565b73ffffffffffffffffffffffffffffffffffffffff1614611487576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561161b576115d7600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b6d565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6116e1611c3c565b73ffffffffffffffffffffffffffffffffffffffff166116ff610fb7565b73ffffffffffffffffffffffffffffffffffffffff1614611788576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561180e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061325a6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118d3611c3c565b73ffffffffffffffffffffffffffffffffffffffff166118f1610fb7565b73ffffffffffffffffffffffffffffffffffffffff161461197a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b600580549050811015611c38578173ffffffffffffffffffffffffffffffffffffffff1660058281548110611a6d57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c2b57600560016005805490500381548110611ac957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110611b0157fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005805480611bf157fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611c38565b8080600101915050611a3c565b5050565b600033905090565b6000806000806000806000611c58886124ab565b915091506000611c666123f7565b90506000806000611c788c8686612511565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b600082821115611d14576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b600080828401905083811015611d9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e2d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806133396024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611eb3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806132806022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612024576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806133146025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061320d6023913960400191505060405180910390fd5b60008111612103576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806132eb6029913960400191505060405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121a65750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121bb576121b683838361256f565b612338565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561225e5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156122735761226e8383836127c2565b612337565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123155750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561232a57612325838383612a15565b612336565b612335838383612cfd565b5b5b5b505050565b60008383111582906123ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156123af578082015181840152602081019050612394565b50505050905090810190601f1680156123dc5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b6000806000612404612ebb565b9150915061241b818361242290919063ffffffff16565b9250505090565b6000808211612499576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b8183816124a257fe5b04905092915050565b60008060006124eb60646124dd60646124cf6009548961314c90919063ffffffff16565b61242290919063ffffffff16565b61242290919063ffffffff16565b905060006125028286611c9c90919063ffffffff16565b90508082935093505050915091565b60008060008061252a858861314c90919063ffffffff16565b90506000612541868861314c90919063ffffffff16565b905060006125588284611c9c90919063ffffffff16565b905082818395509550955050505093509350939050565b600080600080600061258086611c44565b945094509450945094506125dc86600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061267185600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061270684600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1f90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061275383826131d2565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b60008060008060006127d386611c44565b9450945094509450945061282f85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128c482600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1f90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061295984600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1f90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129a683826131d2565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612a2686611c44565b94509450945094509450612a8286600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b1785600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bac82600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1f90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c4184600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1f90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c8e83826131d2565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612d0e86611c44565b94509450945094509450612d6a85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612dff84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1f90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e4c83826131d2565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000600c5490506000600b54905060005b60058054905081101561310f57826001600060058481548110612eee57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180612fd55750816002600060058481548110612f6d57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15612fec57600c54600b5494509450505050613148565b613075600160006005848154811061300057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611c9c90919063ffffffff16565b9250613100600260006005848154811061308b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611c9c90919063ffffffff16565b91508080600101915050612ecf565b50613127600b54600c5461242290919063ffffffff16565b82101561313f57600c54600b54935093505050613148565b81819350935050505b9091565b60008083141561315f57600090506131cc565b600082840290508284828161317057fe5b04146131c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806132a26021913960400191505060405180910390fd5b809150505b92915050565b6131e782600c54611c9c90919063ffffffff16565b600c8190555061320281600d54611d1f90919063ffffffff16565b600d81905550505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205c6262399c11c0d85eb10b324e174096efa37c9f0ab1761cf2af5a70088f7e7c64736f6c634300060c003300000000000000000000000000000000000000000052b7d2dcc80cd2e4000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101585760003560e01c80638da5cb5b116100c3578063c7992f9a1161007c578063c7992f9a14610674578063cba0e99614610692578063dd62ed3e146106ec578063f2cc0c1814610764578063f2fde38b146107a8578063f84354f1146107ec57610158565b80638da5cb5b146104a957806395d89b41146104dd578063a071dcf414610560578063a457c2d71461057e578063a9059cbb146105e2578063b55053351461064657610158565b80632d838119116101155780632d83811914610332578063313ce5671461037457806339509351146103955780634549b039146103f957806370a0823114610447578063715018a61461049f57610158565b8063053ab1821461015d57806306fdde031461018b578063095ea7b31461020e57806313114a9d1461027257806318160ddd1461029057806323b872dd146102ae575b600080fd5b6101896004803603602081101561017357600080fd5b8101908080359060200190929190505050610830565b005b6101936109c0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101d35780820151818401526020810190506101b8565b50505050905090810190601f1680156102005780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61025a6004803603604081101561022457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a62565b60405180821515815260200191505060405180910390f35b61027a610a80565b6040518082815260200191505060405180910390f35b610298610a8a565b6040518082815260200191505060405180910390f35b61031a600480360360608110156102c457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a94565b60405180821515815260200191505060405180910390f35b61035e6004803603602081101561034857600080fd5b8101908080359060200190929190505050610b6d565b6040518082815260200191505060405180910390f35b61037c610bf1565b604051808260ff16815260200191505060405180910390f35b6103e1600480360360408110156103ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c08565b60405180821515815260200191505060405180910390f35b6104316004803603604081101561040f57600080fd5b8101908080359060200190929190803515159060200190929190505050610cbb565b6040518082815260200191505060405180910390f35b6104896004803603602081101561045d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d5f565b6040518082815260200191505060405180910390f35b6104a7610e4a565b005b6104b1610fb7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104e5610fe0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561052557808201518184015260208101905061050a565b50505050905090810190601f1680156105525780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610568611082565b6040518082815260200191505060405180910390f35b6105ca6004803603604081101561059457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061108c565b60405180821515815260200191505060405180910390f35b61062e600480360360408110156105f857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611159565b60405180821515815260200191505060405180910390f35b6106726004803603602081101561065c57600080fd5b8101908080359060200190929190505050611177565b005b61067c6112f1565b6040518082815260200191505060405180910390f35b6106d4600480360360208110156106a857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112fb565b60405180821515815260200191505060405180910390f35b61074e6004803603604081101561070257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611351565b6040518082815260200191505060405180910390f35b6107a66004803603602081101561077a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113d8565b005b6107ea600480360360208110156107be57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116d9565b005b61082e6004803603602081101561080257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118cb565b005b600061083a611c3c565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156108df576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061335d602c913960400191505060405180910390fd5b60006108ea83611c44565b50505050905061094281600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061099a81600c54611c9c90919063ffffffff16565b600c819055506109b583600d54611d1f90919063ffffffff16565b600d81905550505050565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a585780601f10610a2d57610100808354040283529160200191610a58565b820191906000526020600020905b815481529060010190602001808311610a3b57829003601f168201915b5050505050905090565b6000610a76610a6f611c3c565b8484611da7565b6001905092915050565b6000600d54905090565b6000600b54905090565b6000610aa1848484611f9e565b610b6284610aad611c3c565b610b5d856040518060600160405280602881526020016132c360289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b13611c3c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461233d9092919063ffffffff16565b611da7565b600190509392505050565b6000600c54821115610bca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613230602a913960400191505060405180910390fd5b6000610bd46123f7565b9050610be9818461242290919063ffffffff16565b915050919050565b6000600860009054906101000a900460ff16905090565b6000610cb1610c15611c3c565b84610cac8560036000610c26611c3c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1f90919063ffffffff16565b611da7565b6001905092915050565b6000600b54831115610d35576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b600080610d4185611c44565b5050509150915083610d535781610d55565b805b9250505092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610dfa57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610e45565b610e42600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b6d565b90505b919050565b610e52611c3c565b73ffffffffffffffffffffffffffffffffffffffff16610e70610fb7565b73ffffffffffffffffffffffffffffffffffffffff1614610ef9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110785780601f1061104d57610100808354040283529160200191611078565b820191906000526020600020905b81548152906001019060200180831161105b57829003601f168201915b5050505050905090565b6000600954905090565b600061114f611099611c3c565b8461114a8560405180606001604052806025815260200161338960259139600360006110c3611c3c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461233d9092919063ffffffff16565b611da7565b6001905092915050565b600061116d611166611c3c565b8484611f9e565b6001905092915050565b61117f611c3c565b73ffffffffffffffffffffffffffffffffffffffff1661119d610fb7565b73ffffffffffffffffffffffffffffffffffffffff1614611226576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600a5481111561129e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f666565206d757374206265206d657373207468616e206d61785461784665650081525060200191505060405180910390fd5b60006009549050816009819055507f3bd44ad33925c1a81e6dea38583782e35a5124cee2473f5fe16d366f0ad0d6b681600954604051808381526020018281526020019250505060405180910390a15050565b6000600a54905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113e0611c3c565b73ffffffffffffffffffffffffffffffffffffffff166113fe610fb7565b73ffffffffffffffffffffffffffffffffffffffff1614611487576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561161b576115d7600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b6d565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6116e1611c3c565b73ffffffffffffffffffffffffffffffffffffffff166116ff610fb7565b73ffffffffffffffffffffffffffffffffffffffff1614611788576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561180e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061325a6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118d3611c3c565b73ffffffffffffffffffffffffffffffffffffffff166118f1610fb7565b73ffffffffffffffffffffffffffffffffffffffff161461197a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b600580549050811015611c38578173ffffffffffffffffffffffffffffffffffffffff1660058281548110611a6d57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c2b57600560016005805490500381548110611ac957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110611b0157fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005805480611bf157fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611c38565b8080600101915050611a3c565b5050565b600033905090565b6000806000806000806000611c58886124ab565b915091506000611c666123f7565b90506000806000611c788c8686612511565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b600082821115611d14576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b600080828401905083811015611d9d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e2d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806133396024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611eb3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806132806022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612024576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806133146025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061320d6023913960400191505060405180910390fd5b60008111612103576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806132eb6029913960400191505060405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121a65750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121bb576121b683838361256f565b612338565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561225e5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156122735761226e8383836127c2565b612337565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123155750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561232a57612325838383612a15565b612336565b612335838383612cfd565b5b5b5b505050565b60008383111582906123ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156123af578082015181840152602081019050612394565b50505050905090810190601f1680156123dc5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b6000806000612404612ebb565b9150915061241b818361242290919063ffffffff16565b9250505090565b6000808211612499576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b8183816124a257fe5b04905092915050565b60008060006124eb60646124dd60646124cf6009548961314c90919063ffffffff16565b61242290919063ffffffff16565b61242290919063ffffffff16565b905060006125028286611c9c90919063ffffffff16565b90508082935093505050915091565b60008060008061252a858861314c90919063ffffffff16565b90506000612541868861314c90919063ffffffff16565b905060006125588284611c9c90919063ffffffff16565b905082818395509550955050505093509350939050565b600080600080600061258086611c44565b945094509450945094506125dc86600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061267185600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061270684600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1f90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061275383826131d2565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b60008060008060006127d386611c44565b9450945094509450945061282f85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128c482600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1f90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061295984600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1f90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129a683826131d2565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612a2686611c44565b94509450945094509450612a8286600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b1785600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bac82600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1f90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c4184600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1f90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c8e83826131d2565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612d0e86611c44565b94509450945094509450612d6a85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c9c90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612dff84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1f90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e4c83826131d2565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000600c5490506000600b54905060005b60058054905081101561310f57826001600060058481548110612eee57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180612fd55750816002600060058481548110612f6d57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15612fec57600c54600b5494509450505050613148565b613075600160006005848154811061300057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611c9c90919063ffffffff16565b9250613100600260006005848154811061308b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611c9c90919063ffffffff16565b91508080600101915050612ecf565b50613127600b54600c5461242290919063ffffffff16565b82101561313f57600c54600b54935093505050613148565b81819350935050505b9091565b60008083141561315f57600090506131cc565b600082840290508284828161317057fe5b04146131c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806132a26021913960400191505060405180910390fd5b809150505b92915050565b6131e782600c54611c9c90919063ffffffff16565b600c8190555061320281600d54611d1f90919063ffffffff16565b600d81905550505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205c6262399c11c0d85eb10b324e174096efa37c9f0ab1761cf2af5a70088f7e7c64736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000052b7d2dcc80cd2e4000000
-----Decoded View---------------
Arg [0] : initialSupply (uint256): 100000000000000000000000000
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000052b7d2dcc80cd2e4000000
Deployed Bytecode Sourcemap
33128:164:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25669:378;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23363:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24463:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;25574:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23640:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;24632:313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;26384:252;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23549:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;24953:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;26055:321;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23931:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21270:148;;;:::i;:::-;;20619:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;23454;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23743:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25179:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;24137:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;27470:255;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;23834:89;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25456:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;24312:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;26644:332;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21573:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;26984:478;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;25669:378;25723:14;25740:12;:10;:12::i;:::-;25723:29;;25772:11;:19;25784:6;25772:19;;;;;;;;;;;;;;;;;;;;;;;;;25771:20;25763:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25852:15;25875:19;25886:7;25875:10;:19::i;:::-;25851:43;;;;;;25923:28;25943:7;25923;:15;25931:6;25923:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;25905:7;:15;25913:6;25905:15;;;;;;;;;;;;;;;:46;;;;25972:20;25984:7;25972;;:11;;:20;;;;:::i;:::-;25962:7;:30;;;;26016:23;26031:7;26016:10;;:14;;:23;;;;:::i;:::-;26003:10;:36;;;;25669:378;;;:::o;23363:83::-;23400:13;23433:5;23426:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23363:83;:::o;24463:161::-;24538:4;24555:39;24564:12;:10;:12::i;:::-;24578:7;24587:6;24555:8;:39::i;:::-;24612:4;24605:11;;24463:161;;;;:::o;25574:87::-;25616:7;25643:10;;25636:17;;25574:87;:::o;23640:95::-;23693:7;23720;;23713:14;;23640:95;:::o;24632:313::-;24730:4;24747:36;24757:6;24765:9;24776:6;24747:9;:36::i;:::-;24794:121;24803:6;24811:12;:10;:12::i;:::-;24825:89;24863:6;24825:89;;;;;;;;;;;;;;;;;:11;:19;24837:6;24825:19;;;;;;;;;;;;;;;:33;24845:12;:10;:12::i;:::-;24825:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;24794:8;:121::i;:::-;24933:4;24926:11;;24632:313;;;;;:::o;26384:252::-;26450:7;26489;;26478;:18;;26470:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26554:19;26576:10;:8;:10::i;:::-;26554:32;;26604:24;26616:11;26604:7;:11;;:24;;;;:::i;:::-;26597:31;;;26384:252;;;:::o;23549:83::-;23590:5;23615:9;;;;;;;;;;;23608:16;;23549:83;:::o;24953:218::-;25041:4;25058:83;25067:12;:10;:12::i;:::-;25081:7;25090:50;25129:10;25090:11;:25;25102:12;:10;:12::i;:::-;25090:25;;;;;;;;;;;;;;;:34;25116:7;25090:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;25058:8;:83::i;:::-;25159:4;25152:11;;24953:218;;;;:::o;26055:321::-;26145:7;26184;;26173;:18;;26165:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26239:15;26256:23;26286:19;26297:7;26286:10;:19::i;:::-;26238:67;;;;;;;26323:17;:45;;26361:7;26323:45;;;26343:15;26323:45;26316:52;;;;26055:321;;;;:::o;23931:198::-;23997:7;24021:11;:20;24033:7;24021:20;;;;;;;;;;;;;;;;;;;;;;;;;24017:49;;;24050:7;:16;24058:7;24050:16;;;;;;;;;;;;;;;;24043:23;;;;24017:49;24084:37;24104:7;:16;24112:7;24104:16;;;;;;;;;;;;;;;;24084:19;:37::i;:::-;24077:44;;23931:198;;;;:::o;21270:148::-;20850:12;:10;:12::i;:::-;20839:23;;:7;:5;:7::i;:::-;:23;;;20831:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21377:1:::1;21340:40;;21361:6;::::0;::::1;;;;;;;;21340:40;;;;;;;;;;;;21408:1;21391:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;21270:148::o:0;20619:87::-;20665:7;20692:6;;;;;;;;;;;20685:13;;20619:87;:::o;23454:::-;23493:13;23526:7;23519:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23454:87;:::o;23743:83::-;23784:7;23811;;23804:14;;23743:83;:::o;25179:269::-;25272:4;25289:129;25298:12;:10;:12::i;:::-;25312:7;25321:96;25360:15;25321:96;;;;;;;;;;;;;;;;;:11;:25;25333:12;:10;:12::i;:::-;25321:25;;;;;;;;;;;;;;;:34;25347:7;25321:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;25289:8;:129::i;:::-;25436:4;25429:11;;25179:269;;;;:::o;24137:167::-;24215:4;24232:42;24242:12;:10;:12::i;:::-;24256:9;24267:6;24232:9;:42::i;:::-;24292:4;24285:11;;24137:167;;;;:::o;27470:255::-;20850:12;:10;:12::i;:::-;20839:23;;:7;:5;:7::i;:::-;:23;;;20831:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27550:10:::1;;27542:4;:18;;27534:62;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;27607:22;27632:7;;27607:32;;27660:4;27650:7;:14;;;;27680:37;27693:14;27709:7;;27680:37;;;;;;;;;;;;;;;;;;;;;;;;20910:1;27470:255:::0;:::o;23834:89::-;23878:7;23905:10;;23898:17;;23834:89;:::o;25456:110::-;25514:4;25538:11;:20;25550:7;25538:20;;;;;;;;;;;;;;;;;;;;;;;;;25531:27;;25456:110;;;:::o;24312:143::-;24393:7;24420:11;:18;24432:5;24420:18;;;;;;;;;;;;;;;:27;24439:7;24420:27;;;;;;;;;;;;;;;;24413:34;;24312:143;;;;:::o;26644:332::-;20850:12;:10;:12::i;:::-;20839:23;;:7;:5;:7::i;:::-;:23;;;20831:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26726:11:::1;:20;26738:7;26726:20;;;;;;;;;;;;;;;;;;;;;;;;;26725:21;26717:61;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;26811:1;26792:7;:16;26800:7;26792:16;;;;;;;;;;;;;;;;:20;26789:108;;;26848:37;26868:7;:16;26876:7;26868:16;;;;;;;;;;;;;;;;26848:19;:37::i;:::-;26829:7;:16;26837:7;26829:16;;;;;;;;;;;;;;;:56;;;;26789:108;26930:4;26907:11;:20;26919:7;26907:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;26945:9;26960:7;26945:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26644:332:::0;:::o;21573:244::-;20850:12;:10;:12::i;:::-;20839:23;;:7;:5;:7::i;:::-;:23;;;20831:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21682:1:::1;21662:22;;:8;:22;;;;21654:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21772:8;21743:38;;21764:6;::::0;::::1;;;;;;;;21743:38;;;;;;;;;;;;21801:8;21792:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;21573:244:::0;:::o;26984:478::-;20850:12;:10;:12::i;:::-;20839:23;;:7;:5;:7::i;:::-;:23;;;20831:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27065:11:::1;:20;27077:7;27065:20;;;;;;;;;;;;;;;;;;;;;;;;;27057:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;27133:9;27128:327;27152:9;:16;;;;27148:1;:20;27128:327;;;27210:7;27194:23;;:9;27204:1;27194:12;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;27190:254;;;27253:9;27282:1;27263:9;:16;;;;:20;27253:31;;;;;;;;;;;;;;;;;;;;;;;;;27238:9;27248:1;27238:12;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;27322:1;27303:7;:16;27311:7;27303:16;;;;;;;;;;;;;;;:20;;;;27365:5;27342:11;:20;27354:7;27342:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;27389:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27423:5;;27190:254;27170:3;;;;;;;27128:327;;;;26984:478:::0;:::o;755:106::-;808:15;843:10;836:17;;755:106;:::o;31163:410::-;31222:7;31231;31240;31249;31258;31279:23;31304:12;31320:20;31332:7;31320:11;:20::i;:::-;31278:62;;;;31351:19;31373:10;:8;:10::i;:::-;31351:32;;31395:15;31412:23;31437:12;31453:39;31465:7;31474:4;31480:11;31453;:39::i;:::-;31394:98;;;;;;31511:7;31520:15;31537:4;31543:15;31560:4;31503:62;;;;;;;;;;;;;;;;31163:410;;;;;;;:::o;7270:158::-;7328:7;7361:1;7356;:6;;7348:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7419:1;7415;:5;7408:12;;7270:158;;;;:::o;6808:179::-;6866:7;6886:9;6902:1;6898;:5;6886:17;;6927:1;6922;:6;;6914:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6978:1;6971:8;;;6808:179;;;;:::o;27733:337::-;27843:1;27826:19;;:5;:19;;;;27818:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27924:1;27905:21;;:7;:21;;;;27897:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28008:6;27978:11;:18;27990:5;27978:18;;;;;;;;;;;;;;;:27;27997:7;27978:27;;;;;;;;;;;;;;;:36;;;;28046:7;28030:32;;28039:5;28030:32;;;28055:6;28030:32;;;;;;;;;;;;;;;;;;27733:337;;;:::o;28078:844::-;28193:1;28175:20;;:6;:20;;;;28167:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28277:1;28256:23;;:9;:23;;;;28248:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28347:1;28338:6;:10;28330:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28409:11;:19;28421:6;28409:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;28433:11;:22;28445:9;28433:22;;;;;;;;;;;;;;;;;;;;;;;;;28432:23;28409:46;28405:510;;;28472:48;28494:6;28502:9;28513:6;28472:21;:48::i;:::-;28405:510;;;28543:11;:19;28555:6;28543:19;;;;;;;;;;;;;;;;;;;;;;;;;28542:20;:46;;;;;28566:11;:22;28578:9;28566:22;;;;;;;;;;;;;;;;;;;;;;;;;28542:46;28538:377;;;28605:46;28625:6;28633:9;28644:6;28605:19;:46::i;:::-;28538:377;;;28673:11;:19;28685:6;28673:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;28696:11;:22;28708:9;28696:22;;;;;;;;;;;;;;;;;;;;;;;;;28673:45;28669:246;;;28735:48;28757:6;28765:9;28776:6;28735:21;:48::i;:::-;28669:246;;;28859:44;28877:6;28885:9;28896:6;28859:17;:44::i;:::-;28669:246;28538:377;28405:510;28078:844;;;:::o;9635:166::-;9721:7;9754:1;9749;:6;;9757:12;9741:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9792:1;9788;:5;9781:12;;9635:166;;;;;:::o;32189:163::-;32230:7;32251:15;32268;32287:19;:17;:19::i;:::-;32250:56;;;;32324:20;32336:7;32324;:11;;:20;;;;:::i;:::-;32317:27;;;;32189:163;:::o;8385:153::-;8443:7;8475:1;8471;:5;8463:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8529:1;8525;:5;;;;;;8518:12;;8385:153;;;;:::o;31581:258::-;31641:7;31650;31670:12;31685:51;31732:3;31686:40;22657:3;31687:20;31699:7;;31687;:11;;:20;;;;:::i;:::-;31686:26;;:40;;;;:::i;:::-;31685:46;;:51;;;;:::i;:::-;31670:66;;31747:23;31773:17;31785:4;31773:7;:11;;:17;;;;:::i;:::-;31747:43;;31809:15;31826:4;31801:30;;;;;;31581:258;;;:::o;31847:334::-;31942:7;31951;31960;31980:15;31998:24;32010:11;31998:7;:11;;:24;;;;:::i;:::-;31980:42;;32033:12;32048:21;32057:11;32048:4;:8;;:21;;;;:::i;:::-;32033:36;;32080:23;32106:17;32118:4;32106:7;:11;;:17;;;;:::i;:::-;32080:43;;32142:7;32151:15;32168:4;32134:39;;;;;;;;;31847:334;;;;;;;:::o;29909:506::-;30012:15;30029:23;30054:12;30068:23;30093:12;30109:19;30120:7;30109:10;:19::i;:::-;30011:117;;;;;;;;;;30157:28;30177:7;30157;:15;30165:6;30157:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;30139:7;:15;30147:6;30139:15;;;;;;;;;;;;;;;:46;;;;30214:28;30234:7;30214;:15;30222:6;30214:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;30196:7;:15;30204:6;30196:15;;;;;;;;;;;;;;;:46;;;;30274:39;30297:15;30274:7;:18;30282:9;30274:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;30253:7;:18;30261:9;30253:18;;;;;;;;;;;;;;;:60;;;;30324:23;30336:4;30342;30324:11;:23::i;:::-;30380:9;30363:44;;30372:6;30363:44;;;30391:15;30363:44;;;;;;;;;;;;;;;;;;29909:506;;;;;;;;:::o;29383:518::-;29484:15;29501:23;29526:12;29540:23;29565:12;29581:19;29592:7;29581:10;:19::i;:::-;29483:117;;;;;;;;;;29629:28;29649:7;29629;:15;29637:6;29629:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;29611:7;:15;29619:6;29611:15;;;;;;;;;;;;;;;:46;;;;29689:39;29712:15;29689:7;:18;29697:9;29689:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;29668:7;:18;29676:9;29668:18;;;;;;;;;;;;;;;:60;;;;29760:39;29783:15;29760:7;:18;29768:9;29760:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;29739:7;:18;29747:9;29739:18;;;;;;;;;;;;;;;:60;;;;29810:23;29822:4;29828;29810:11;:23::i;:::-;29866:9;29849:44;;29858:6;29849:44;;;29877:15;29849:44;;;;;;;;;;;;;;;;;;29383:518;;;;;;;;:::o;30423:577::-;30526:15;30543:23;30568:12;30582:23;30607:12;30623:19;30634:7;30623:10;:19::i;:::-;30525:117;;;;;;;;;;30671:28;30691:7;30671;:15;30679:6;30671:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;30653:7;:15;30661:6;30653:15;;;;;;;;;;;;;;;:46;;;;30728:28;30748:7;30728;:15;30736:6;30728:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;30710:7;:15;30718:6;30710:15;;;;;;;;;;;;;;;:46;;;;30788:39;30811:15;30788:7;:18;30796:9;30788:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;30767:7;:18;30775:9;30767:18;;;;;;;;;;;;;;;:60;;;;30859:39;30882:15;30859:7;:18;30867:9;30859:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;30838:7;:18;30846:9;30838:18;;;;;;;;;;;;;;;:60;;;;30909:23;30921:4;30927;30909:11;:23::i;:::-;30965:9;30948:44;;30957:6;30948:44;;;30976:15;30948:44;;;;;;;;;;;;;;;;;;30423:577;;;;;;;;:::o;28930:445::-;29029:15;29046:23;29071:12;29085:23;29110:12;29126:19;29137:7;29126:10;:19::i;:::-;29028:117;;;;;;;;;;29174:28;29194:7;29174;:15;29182:6;29174:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;29156:7;:15;29164:6;29156:15;;;;;;;;;;;;;;;:46;;;;29234:39;29257:15;29234:7;:18;29242:9;29234:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;29213:7;:18;29221:9;29213:18;;;;;;;;;;;;;;;:60;;;;29284:23;29296:4;29302;29284:11;:23::i;:::-;29340:9;29323:44;;29332:6;29323:44;;;29351:15;29323:44;;;;;;;;;;;;;;;;;;28930:445;;;;;;;;:::o;32360:555::-;32410:7;32419;32439:15;32457:7;;32439:25;;32475:15;32493:7;;32475:25;;32516:9;32511:289;32535:9;:16;;;;32531:1;:20;32511:289;;;32601:7;32577;:21;32585:9;32595:1;32585:12;;;;;;;;;;;;;;;;;;;;;;;;;32577:21;;;;;;;;;;;;;;;;:31;:66;;;;32636:7;32612;:21;32620:9;32630:1;32620:12;;;;;;;;;;;;;;;;;;;;;;;;;32612:21;;;;;;;;;;;;;;;;:31;32577:66;32573:97;;;32653:7;;32662;;32645:25;;;;;;;;;32573:97;32695:34;32707:7;:21;32715:9;32725:1;32715:12;;;;;;;;;;;;;;;;;;;;;;;;;32707:21;;;;;;;;;;;;;;;;32695:7;:11;;:34;;;;:::i;:::-;32685:44;;32754:34;32766:7;:21;32774:9;32784:1;32774:12;;;;;;;;;;;;;;;;;;;;;;;;;32766:21;;;;;;;;;;;;;;;;32754:7;:11;;:34;;;;:::i;:::-;32744:44;;32553:3;;;;;;;32511:289;;;;32824:20;32836:7;;32824;;:11;;:20;;;;:::i;:::-;32814:7;:30;32810:61;;;32854:7;;32863;;32846:25;;;;;;;;32810:61;32890:7;32899;32882:25;;;;;;32360:555;;;:::o;7687:220::-;7745:7;7774:1;7769;:6;7765:20;;;7784:1;7777:8;;;;7765:20;7796:9;7812:1;7808;:5;7796:17;;7841:1;7836;7832;:5;;;;;;:10;7824:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7898:1;7891:8;;;7687:220;;;;;:::o;31008:147::-;31086:17;31098:4;31086:7;;:11;;:17;;;;:::i;:::-;31076:7;:27;;;;31127:20;31142:4;31127:10;;:14;;:20;;;;:::i;:::-;31114:10;:33;;;;31008:147;;:::o
Swarm Source
ipfs://5c6262399c11c0d85eb10b324e174096efa37c9f0ab1761cf2af5a70088f7e7c
Loading...
Loading
Loading...
Loading
OVERVIEW
A community driven AMM crosschain DEX built on Moonriver.Loading...
Loading
Net Worth in USD
$167.36
Net Worth in MOVR
Token Allocations
ETH
100.00%
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $2,686.64 | 0.0623 | $167.36 |
Loading...
Loading
Loading...
Loading
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.