Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 4,667 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 422961405 | 13 days ago | IN | 0 ETH | 0.00000094 | ||||
| Transfer | 418064154 | 28 days ago | IN | 0 ETH | 0.00000172 | ||||
| Approve | 417538045 | 29 days ago | IN | 0 ETH | 0.00000047 | ||||
| Approve | 417451890 | 29 days ago | IN | 0 ETH | 0.00000047 | ||||
| Approve | 404594420 | 67 days ago | IN | 0 ETH | 0.00000025 | ||||
| Approve | 403639141 | 69 days ago | IN | 0 ETH | 0.00000071 | ||||
| Approve | 402963484 | 71 days ago | IN | 0 ETH | 0.00000048 | ||||
| Approve | 402032131 | 74 days ago | IN | 0 ETH | 0.0000005 | ||||
| Approve | 401995327 | 74 days ago | IN | 0 ETH | 0.00000227 | ||||
| Approve | 398481248 | 84 days ago | IN | 0 ETH | 0.00000048 | ||||
| Approve | 396010900 | 91 days ago | IN | 0 ETH | 0.00000047 | ||||
| Approve | 395937158 | 92 days ago | IN | 0 ETH | 0.00000047 | ||||
| Transfer | 395901600 | 92 days ago | IN | 0 ETH | 0.00000172 | ||||
| Approve | 393535876 | 99 days ago | IN | 0 ETH | 0.00000047 | ||||
| Approve | 390919142 | 106 days ago | IN | 0 ETH | 0.00000048 | ||||
| Approve | 390320404 | 108 days ago | IN | 0 ETH | 0.00000027 | ||||
| Approve | 390319629 | 108 days ago | IN | 0 ETH | 0.00000049 | ||||
| Approve | 390141258 | 108 days ago | IN | 0 ETH | 0.0000005 | ||||
| Transfer | 388719461 | 112 days ago | IN | 0 ETH | 0.0000037 | ||||
| Approve | 388683796 | 113 days ago | IN | 0 ETH | 0.00000048 | ||||
| Approve | 387014400 | 117 days ago | IN | 0 ETH | 0.0000008 | ||||
| Approve | 387004056 | 117 days ago | IN | 0 ETH | 0.00000048 | ||||
| Approve | 386680955 | 118 days ago | IN | 0 ETH | 0.00000054 | ||||
| Approve | 386370102 | 119 days ago | IN | 0 ETH | 0.00000048 | ||||
| Approve | 385811152 | 121 days ago | IN | 0 ETH | 0.00000048 |
Latest 1 internal transaction
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 88981113 | 999 days ago | Contract Creation | 0 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
FireDoge
Compiler Version
v0.8.18+commit.87f61d96
Optimization Enabled:
Yes with 10000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity =0.8.18;
import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import { ICamelotFactory } from "./interfaces/ICamelotFactory.sol";
import { ICamelotRouter } from "./interfaces/ICamelotRouter.sol";
import { ICamelotPair } from "./interfaces/ICamelotPair.sol";
import { IRacePool } from "./interfaces/IRacePool.sol";
import { IStakingPool } from "./interfaces/IStakingPool.sol";
// Camelot does not allow swap directly to the contract address of the token
// So that's why we need this proxy
contract ProxyHolder {
address public immutable OWNER;
constructor() {
OWNER = msg.sender;
}
function withdraw(
address _token
) public {
require(msg.sender == OWNER, "Only owner can withdraw funds");
uint256 _balance = IERC20(_token).balanceOf(address(this));
IERC20(_token).transfer(OWNER, _balance);
}
}
contract FireDoge is ERC20 {
bool public isLaunched;
ICamelotPair public WETH_TO_SELF_PAIR;
ProxyHolder public PROXY_HOLDER;
IERC20 public immutable WETH;
address public immutable DEX_SWAP_ROUTER;
// address public immutable DEX_FACTORY;
address public immutable STAKING_POOL;
address public immutable RACE_POOL;
address public immutable DEV;
uint256 public constant BURN_FEE = 1000;
uint256 public constant STAKING_FEE = 200;
uint256 public constant DEV_FEE = 300;
uint256 public constant RACE_FEE = 500;
uint256 public constant FEE_DENOMINATOR = 10000;
uint256 public constant INITAL_MINT_AMOUNT = 1e18 * 1e6;
address public constant ZERO_ADDRESS = 0x0000000000000000000000000000000000000000;
address public constant DEAD_ADDRESS = 0x000000000000000000000000000000000000dEaD;
constructor(
IERC20 _weth,
address _dexSwapRouter,
// address _dexFactory,
address _stakingPool,
address _airdropPool,
address _racePool,
address _dev
) ERC20("Fire Doge Token", "FIREDOGE") {
_mint(_airdropPool, INITAL_MINT_AMOUNT);
WETH = _weth;
DEX_SWAP_ROUTER = _dexSwapRouter;
STAKING_POOL = _stakingPool;
DEV = _dev;
RACE_POOL = _racePool;
// DEX_FACTORY = _dexFactory;
}
function deployProxyHolder() public {
require(address(PROXY_HOLDER) == address(0), "Has been already deployed");
PROXY_HOLDER = new ProxyHolder();
}
// function createPair() public {
// require(address(WETH_TO_SELF_PAIR) == address(0), "Has been already created");
// address _pairAddress = ICamelotFactory(DEX_FACTORY).createPair(address(WETH), address(this));
// WETH_TO_SELF_PAIR = ICamelotPair(_pairAddress);
// }
function launch() public {
require(!isLaunched, "Token is already launched");
isLaunched = true;
}
function decimals() public view virtual override returns (uint8) {
return 6;
}
function transfer(address to, uint256 amount) public virtual override returns (bool) {
return _transferWithFeeIfNeccessary(_msgSender(), to, amount);
}
function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
address spender = _msgSender();
_spendAllowance(sender, spender, amount);
return _transferWithFeeIfNeccessary(sender, recipient, amount);
}
function transferWithoutFee(address to, uint256 amount) public virtual returns (bool) {
_transfer(_msgSender(), to, amount);
return true;
}
function transferFromWithoutFee(address sender, address recipient, uint256 amount) public virtual returns (bool) {
address spender = _msgSender();
_spendAllowance(sender, spender, amount);
_transfer(sender, recipient, amount);
return true;
}
function _transferWithFeeIfNeccessary(address _sender, address _recipient, uint256 _amount) internal returns (bool) {
// Happens when this contract perform swaps by itself
// Do not take fees in this case (otherwise causes recursion)
if (
_sender == address(this)
|| _recipient == address(this)
|| !isLaunched
|| _sender == DEV
|| _recipient == DEV
) {
_transfer(_sender, _recipient, _amount);
return true;
}
// 1) Burn this fukcing shitcoin!
uint256 _burnDogeAmount = _amount * BURN_FEE / FEE_DENOMINATOR;
_transfer(_sender, DEAD_ADDRESS, _burnDogeAmount);
// 2) Swap this fukcing shitcoin!
uint256 _stakingRewardsDogeAmount = _amount * STAKING_FEE / FEE_DENOMINATOR;
uint256 _devRewardsDogeAmount = _amount * DEV_FEE / FEE_DENOMINATOR;
uint256 _raceRewardsDogeAmount = _amount * RACE_FEE / FEE_DENOMINATOR;
uint256 _swapDogeAmount = _stakingRewardsDogeAmount + _devRewardsDogeAmount + _raceRewardsDogeAmount;
// 3) Transfer this fukcing shitcoin!
uint256 _transferAmount = _amount - _burnDogeAmount - _swapDogeAmount;
_transfer(_sender, _recipient, _transferAmount); // main
_transfer(_sender, address(this), _swapDogeAmount); // tax
// Inject racer
IRacePool(RACE_POOL).upsertRacer(_sender, _burnDogeAmount);
return true;
}
function swapSelfBalanceToWeth() public {
address[] memory _swapPath = new address[](2);
_swapPath[0] = address(this);
_swapPath[1] = address(WETH);
_approve(address(this), DEX_SWAP_ROUTER, balanceOf(address(this)));
try ICamelotRouter(DEX_SWAP_ROUTER)
.swapExactTokensForTokensSupportingFeeOnTransferTokens(
balanceOf(address(this)),
0,
_swapPath,
address(PROXY_HOLDER),
address(0),
block.timestamp
) {
PROXY_HOLDER.withdraw(address(WETH));
uint256 _totalWethAmount = WETH.balanceOf(address(this));
uint256 _totalFee = STAKING_FEE + DEV_FEE + RACE_FEE;
uint256 _stakingWethRewards = _totalWethAmount * (STAKING_FEE * 1e18 /_totalFee) / 1e18;
uint256 _devWethRewards = _totalWethAmount * (DEV_FEE * 1e18 / _totalFee) / 1e18;
uint256 _raceWethRewards = _totalWethAmount - _devWethRewards - _stakingWethRewards;
WETH.transfer(DEV, _devWethRewards);
WETH.transfer(RACE_POOL, _raceWethRewards);
WETH.approve(STAKING_POOL, _stakingWethRewards);
IStakingPool(STAKING_POOL).injectRewards(_stakingWethRewards);
} catch {}
}
receive() external payable {}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol)
pragma solidity ^0.8.0;
import "./IERC20.sol";
import "./extensions/IERC20Metadata.sol";
import "../../utils/Context.sol";
/**
* @dev Implementation of the {IERC20} interface.
*
* This implementation is agnostic to the way tokens are created. This means
* that a supply mechanism has to be added in a derived contract using {_mint}.
* For a generic mechanism see {ERC20PresetMinterPauser}.
*
* TIP: For a detailed writeup see our guide
* https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How
* to implement supply mechanisms].
*
* We have followed general OpenZeppelin Contracts guidelines: functions revert
* instead returning `false` on failure. This behavior is nonetheless
* conventional and does not conflict with the expectations of ERC20
* applications.
*
* Additionally, an {Approval} event is emitted on calls to {transferFrom}.
* This allows applications to reconstruct the allowance for all accounts just
* by listening to said events. Other implementations of the EIP may not emit
* these events, as it isn't required by the specification.
*
* Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
* functions have been added to mitigate the well-known issues around setting
* allowances. See {IERC20-approve}.
*/
contract ERC20 is Context, IERC20, IERC20Metadata {
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
/**
* @dev Sets the values for {name} and {symbol}.
*
* The default value of {decimals} is 18. To select a different value for
* {decimals} you should overload it.
*
* All two of these values are immutable: they can only be set once during
* construction.
*/
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}
/**
* @dev Returns the name of the token.
*/
function name() public view virtual override returns (string memory) {
return _name;
}
/**
* @dev Returns the symbol of the token, usually a shorter version of the
* name.
*/
function symbol() public view virtual override returns (string memory) {
return _symbol;
}
/**
* @dev Returns the number of decimals used to get its user representation.
* For example, if `decimals` equals `2`, a balance of `505` tokens should
* be displayed to a user as `5.05` (`505 / 10 ** 2`).
*
* Tokens usually opt for a value of 18, imitating the relationship between
* Ether and Wei. This is the value {ERC20} uses, unless this function is
* overridden;
*
* NOTE: This information is only used for _display_ purposes: it in
* no way affects any of the arithmetic of the contract, including
* {IERC20-balanceOf} and {IERC20-transfer}.
*/
function decimals() public view virtual override returns (uint8) {
return 18;
}
/**
* @dev See {IERC20-totalSupply}.
*/
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
/**
* @dev See {IERC20-balanceOf}.
*/
function balanceOf(address account) public view virtual override returns (uint256) {
return _balances[account];
}
/**
* @dev See {IERC20-transfer}.
*
* Requirements:
*
* - `to` cannot be the zero address.
* - the caller must have a balance of at least `amount`.
*/
function transfer(address to, uint256 amount) public virtual override returns (bool) {
address owner = _msgSender();
_transfer(owner, to, amount);
return true;
}
/**
* @dev See {IERC20-allowance}.
*/
function allowance(address owner, address spender) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
/**
* @dev See {IERC20-approve}.
*
* NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on
* `transferFrom`. This is semantically equivalent to an infinite approval.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function approve(address spender, uint256 amount) public virtual override returns (bool) {
address owner = _msgSender();
_approve(owner, spender, amount);
return true;
}
/**
* @dev See {IERC20-transferFrom}.
*
* Emits an {Approval} event indicating the updated allowance. This is not
* required by the EIP. See the note at the beginning of {ERC20}.
*
* NOTE: Does not update the allowance if the current allowance
* is the maximum `uint256`.
*
* Requirements:
*
* - `from` and `to` cannot be the zero address.
* - `from` must have a balance of at least `amount`.
* - the caller must have allowance for ``from``'s tokens of at least
* `amount`.
*/
function transferFrom(
address from,
address to,
uint256 amount
) public virtual override returns (bool) {
address spender = _msgSender();
_spendAllowance(from, spender, amount);
_transfer(from, to, amount);
return true;
}
/**
* @dev Atomically increases the allowance granted to `spender` by the caller.
*
* This is an alternative to {approve} that can be used as a mitigation for
* problems described in {IERC20-approve}.
*
* Emits an {Approval} event indicating the updated allowance.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
address owner = _msgSender();
_approve(owner, spender, allowance(owner, spender) + addedValue);
return true;
}
/**
* @dev Atomically decreases the allowance granted to `spender` by the caller.
*
* This is an alternative to {approve} that can be used as a mitigation for
* problems described in {IERC20-approve}.
*
* Emits an {Approval} event indicating the updated allowance.
*
* Requirements:
*
* - `spender` cannot be the zero address.
* - `spender` must have allowance for the caller of at least
* `subtractedValue`.
*/
function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
address owner = _msgSender();
uint256 currentAllowance = allowance(owner, spender);
require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
unchecked {
_approve(owner, spender, currentAllowance - subtractedValue);
}
return true;
}
/**
* @dev Moves `amount` of tokens from `from` to `to`.
*
* This internal function is equivalent to {transfer}, and can be used to
* e.g. implement automatic token fees, slashing mechanisms, etc.
*
* Emits a {Transfer} event.
*
* Requirements:
*
* - `from` cannot be the zero address.
* - `to` cannot be the zero address.
* - `from` must have a balance of at least `amount`.
*/
function _transfer(
address from,
address to,
uint256 amount
) internal virtual {
require(from != address(0), "ERC20: transfer from the zero address");
require(to != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(from, to, amount);
uint256 fromBalance = _balances[from];
require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
unchecked {
_balances[from] = fromBalance - amount;
// Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by
// decrementing then incrementing.
_balances[to] += amount;
}
emit Transfer(from, to, amount);
_afterTokenTransfer(from, to, amount);
}
/** @dev Creates `amount` tokens and assigns them to `account`, increasing
* the total supply.
*
* Emits a {Transfer} event with `from` set to the zero address.
*
* Requirements:
*
* - `account` cannot be the zero address.
*/
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply += amount;
unchecked {
// Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above.
_balances[account] += amount;
}
emit Transfer(address(0), account, amount);
_afterTokenTransfer(address(0), account, amount);
}
/**
* @dev Destroys `amount` tokens from `account`, reducing the
* total supply.
*
* Emits a {Transfer} event with `to` set to the zero address.
*
* Requirements:
*
* - `account` cannot be the zero address.
* - `account` must have at least `amount` tokens.
*/
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
uint256 accountBalance = _balances[account];
require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
unchecked {
_balances[account] = accountBalance - amount;
// Overflow not possible: amount <= accountBalance <= totalSupply.
_totalSupply -= amount;
}
emit Transfer(account, address(0), amount);
_afterTokenTransfer(account, address(0), amount);
}
/**
* @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
*
* This internal function is equivalent to `approve`, and can be used to
* e.g. set automatic allowances for certain subsystems, etc.
*
* Emits an {Approval} event.
*
* Requirements:
*
* - `owner` cannot be the zero address.
* - `spender` cannot be the zero address.
*/
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
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);
}
/**
* @dev Updates `owner` s allowance for `spender` based on spent `amount`.
*
* Does not update the allowance amount in case of infinite allowance.
* Revert if not enough allowance is available.
*
* Might emit an {Approval} event.
*/
function _spendAllowance(
address owner,
address spender,
uint256 amount
) internal virtual {
uint256 currentAllowance = allowance(owner, spender);
if (currentAllowance != type(uint256).max) {
require(currentAllowance >= amount, "ERC20: insufficient allowance");
unchecked {
_approve(owner, spender, currentAllowance - amount);
}
}
}
/**
* @dev Hook that is called before any transfer of tokens. This includes
* minting and burning.
*
* Calling conditions:
*
* - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
* will be transferred to `to`.
* - when `from` is zero, `amount` tokens will be minted for `to`.
* - when `to` is zero, `amount` of ``from``'s tokens will be burned.
* - `from` and `to` are never both zero.
*
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
*/
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
/**
* @dev Hook that is called after any transfer of tokens. This includes
* minting and burning.
*
* Calling conditions:
*
* - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
* has been transferred to `to`.
* - when `from` is zero, `amount` tokens have been minted for `to`.
* - when `to` is zero, `amount` of ``from``'s tokens have been burned.
* - `from` and `to` are never both zero.
*
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
*/
function _afterTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)
pragma solidity ^0.8.0;
import "../IERC20.sol";
/**
* @dev Interface for the optional metadata functions from the ERC20 standard.
*
* _Available since v4.1._
*/
interface IERC20Metadata is IERC20 {
/**
* @dev Returns the name of the token.
*/
function name() external view returns (string memory);
/**
* @dev Returns the symbol of the token.
*/
function symbol() external view returns (string memory);
/**
* @dev Returns the decimals places of the token.
*/
function decimals() external view returns (uint8);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @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);
/**
* @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 `to`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address to, 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 `from` to `to` 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 from,
address to,
uint256 amount
) external returns (bool);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
pragma solidity ^0.8.0;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity >=0.5.0;
interface ICamelotFactory {
event PairCreated(
address indexed token0,
address indexed token1,
address pair,
uint256
);
function owner() external view returns (address);
function feePercentOwner() external view returns (address);
function setStableOwner() external view returns (address);
function feeTo() external view returns (address);
function ownerFeeShare() external view returns (uint256);
function referrersFeeShare(address) external view returns (uint256);
function getPair(
address tokenA,
address tokenB
) external view returns (address pair);
function allPairs(uint256) external view returns (address pair);
function allPairsLength() external view returns (uint256);
function createPair(
address tokenA,
address tokenB
) external returns (address pair);
function setFeeTo(address) external;
function feeInfo()
external
view
returns (uint _ownerFeeShare, address _feeTo);
}pragma solidity >=0.5.0;
interface ICamelotPair {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint);
function balanceOf(address owner) external view returns (uint);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint value) external returns (bool);
function transfer(address to, uint value) external returns (bool);
function transferFrom(address from, address to, uint value) external returns (bool);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function PERMIT_TYPEHASH() external pure returns (bytes32);
function nonces(address owner) external view returns (uint);
function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
event Mint(address indexed sender, uint amount0, uint amount1);
event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
event Swap(
address indexed sender,
uint amount0In,
uint amount1In,
uint amount0Out,
uint amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function MINIMUM_LIQUIDITY() external pure returns (uint);
function factory() external view returns (address);
function token0() external view returns (address);
function token1() external view returns (address);
function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint16 token0feePercent, uint16 token1FeePercent);
function getAmountOut(uint amountIn, address tokenIn) external view returns (uint);
function kLast() external view returns (uint);
function setFeePercent(uint16 token0FeePercent, uint16 token1FeePercent) external;
function mint(address to) external returns (uint liquidity);
function burn(address to) external returns (uint amount0, uint amount1);
function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data, address referrer) external;
function skim(address to) external;
function sync() external;
function initialize(address, address) external;
}// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity >=0.6.2;
import { IUniswapV2Router01 } from "./IUniswapV2Router01.sol";
interface ICamelotRouter is IUniswapV2Router01 {
function removeLiquidityETHSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountETH);
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint amountETH);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
address referrer,
uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint amountOutMin,
address[] calldata path,
address to,
address referrer,
uint deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
address referrer,
uint deadline
) external;
function getAmountsOut(
uint amountIn,
address[] calldata path
) external view returns (uint[] memory amounts);
}// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity ^0.8.18;
import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
interface IRacePool {
function upsertRacer(
address _racer,
uint256 _burnedAmount
) external;
}// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity ^0.8.18;
import "hardhat/console.sol";
import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
interface IStakingPool {
function injectRewards(uint256 _amount) external;
}// SPDX-License-Identifier: MIT
pragma solidity >=0.6.2;
interface IUniswapV2Router01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint amountADesired,
uint amountBDesired,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
)
external
payable
returns (uint amountToken, uint amountETH, uint liquidity);
function removeLiquidity(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline
) external returns (uint amountA, uint amountB);
function removeLiquidityETH(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
) external returns (uint amountToken, uint amountETH);
function removeLiquidityWithPermit(
address tokenA,
address tokenB,
uint liquidity,
uint amountAMin,
uint amountBMin,
address to,
uint deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint amountA, uint amountB);
function removeLiquidityETHWithPermit(
address token,
uint liquidity,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint amountToken, uint amountETH);
function quote(
uint amountA,
uint reserveA,
uint reserveB
) external pure returns (uint amountB);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
}// SPDX-License-Identifier: MIT
pragma solidity >= 0.4.22 <0.9.0;
library console {
address constant CONSOLE_ADDRESS = address(0x000000000000000000636F6e736F6c652e6c6f67);
function _sendLogPayload(bytes memory payload) private view {
uint256 payloadLength = payload.length;
address consoleAddress = CONSOLE_ADDRESS;
assembly {
let payloadStart := add(payload, 32)
let r := staticcall(gas(), consoleAddress, payloadStart, payloadLength, 0, 0)
}
}
function log() internal view {
_sendLogPayload(abi.encodeWithSignature("log()"));
}
function logInt(int256 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(int256)", p0));
}
function logUint(uint256 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256)", p0));
}
function logString(string memory p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string)", p0));
}
function logBool(bool p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool)", p0));
}
function logAddress(address p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address)", p0));
}
function logBytes(bytes memory p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes)", p0));
}
function logBytes1(bytes1 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes1)", p0));
}
function logBytes2(bytes2 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes2)", p0));
}
function logBytes3(bytes3 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes3)", p0));
}
function logBytes4(bytes4 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes4)", p0));
}
function logBytes5(bytes5 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes5)", p0));
}
function logBytes6(bytes6 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes6)", p0));
}
function logBytes7(bytes7 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes7)", p0));
}
function logBytes8(bytes8 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes8)", p0));
}
function logBytes9(bytes9 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes9)", p0));
}
function logBytes10(bytes10 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes10)", p0));
}
function logBytes11(bytes11 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes11)", p0));
}
function logBytes12(bytes12 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes12)", p0));
}
function logBytes13(bytes13 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes13)", p0));
}
function logBytes14(bytes14 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes14)", p0));
}
function logBytes15(bytes15 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes15)", p0));
}
function logBytes16(bytes16 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes16)", p0));
}
function logBytes17(bytes17 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes17)", p0));
}
function logBytes18(bytes18 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes18)", p0));
}
function logBytes19(bytes19 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes19)", p0));
}
function logBytes20(bytes20 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes20)", p0));
}
function logBytes21(bytes21 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes21)", p0));
}
function logBytes22(bytes22 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes22)", p0));
}
function logBytes23(bytes23 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes23)", p0));
}
function logBytes24(bytes24 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes24)", p0));
}
function logBytes25(bytes25 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes25)", p0));
}
function logBytes26(bytes26 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes26)", p0));
}
function logBytes27(bytes27 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes27)", p0));
}
function logBytes28(bytes28 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes28)", p0));
}
function logBytes29(bytes29 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes29)", p0));
}
function logBytes30(bytes30 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes30)", p0));
}
function logBytes31(bytes31 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes31)", p0));
}
function logBytes32(bytes32 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bytes32)", p0));
}
function log(uint256 p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256)", p0));
}
function log(string memory p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string)", p0));
}
function log(bool p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool)", p0));
}
function log(address p0) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address)", p0));
}
function log(uint256 p0, uint256 p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256)", p0, p1));
}
function log(uint256 p0, string memory p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string)", p0, p1));
}
function log(uint256 p0, bool p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool)", p0, p1));
}
function log(uint256 p0, address p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address)", p0, p1));
}
function log(string memory p0, uint256 p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256)", p0, p1));
}
function log(string memory p0, string memory p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string)", p0, p1));
}
function log(string memory p0, bool p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool)", p0, p1));
}
function log(string memory p0, address p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address)", p0, p1));
}
function log(bool p0, uint256 p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256)", p0, p1));
}
function log(bool p0, string memory p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string)", p0, p1));
}
function log(bool p0, bool p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool)", p0, p1));
}
function log(bool p0, address p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address)", p0, p1));
}
function log(address p0, uint256 p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256)", p0, p1));
}
function log(address p0, string memory p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string)", p0, p1));
}
function log(address p0, bool p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool)", p0, p1));
}
function log(address p0, address p1) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address)", p0, p1));
}
function log(uint256 p0, uint256 p1, uint256 p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,uint256)", p0, p1, p2));
}
function log(uint256 p0, uint256 p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,string)", p0, p1, p2));
}
function log(uint256 p0, uint256 p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,bool)", p0, p1, p2));
}
function log(uint256 p0, uint256 p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,address)", p0, p1, p2));
}
function log(uint256 p0, string memory p1, uint256 p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,uint256)", p0, p1, p2));
}
function log(uint256 p0, string memory p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,string)", p0, p1, p2));
}
function log(uint256 p0, string memory p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,bool)", p0, p1, p2));
}
function log(uint256 p0, string memory p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,address)", p0, p1, p2));
}
function log(uint256 p0, bool p1, uint256 p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,uint256)", p0, p1, p2));
}
function log(uint256 p0, bool p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,string)", p0, p1, p2));
}
function log(uint256 p0, bool p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,bool)", p0, p1, p2));
}
function log(uint256 p0, bool p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,address)", p0, p1, p2));
}
function log(uint256 p0, address p1, uint256 p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,uint256)", p0, p1, p2));
}
function log(uint256 p0, address p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,string)", p0, p1, p2));
}
function log(uint256 p0, address p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,bool)", p0, p1, p2));
}
function log(uint256 p0, address p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,address)", p0, p1, p2));
}
function log(string memory p0, uint256 p1, uint256 p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,uint256)", p0, p1, p2));
}
function log(string memory p0, uint256 p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,string)", p0, p1, p2));
}
function log(string memory p0, uint256 p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,bool)", p0, p1, p2));
}
function log(string memory p0, uint256 p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,address)", p0, p1, p2));
}
function log(string memory p0, string memory p1, uint256 p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,uint256)", p0, p1, p2));
}
function log(string memory p0, string memory p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,string)", p0, p1, p2));
}
function log(string memory p0, string memory p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,bool)", p0, p1, p2));
}
function log(string memory p0, string memory p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,address)", p0, p1, p2));
}
function log(string memory p0, bool p1, uint256 p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint256)", p0, p1, p2));
}
function log(string memory p0, bool p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,string)", p0, p1, p2));
}
function log(string memory p0, bool p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool)", p0, p1, p2));
}
function log(string memory p0, bool p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,address)", p0, p1, p2));
}
function log(string memory p0, address p1, uint256 p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,uint256)", p0, p1, p2));
}
function log(string memory p0, address p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,string)", p0, p1, p2));
}
function log(string memory p0, address p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,bool)", p0, p1, p2));
}
function log(string memory p0, address p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,address)", p0, p1, p2));
}
function log(bool p0, uint256 p1, uint256 p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,uint256)", p0, p1, p2));
}
function log(bool p0, uint256 p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,string)", p0, p1, p2));
}
function log(bool p0, uint256 p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,bool)", p0, p1, p2));
}
function log(bool p0, uint256 p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,address)", p0, p1, p2));
}
function log(bool p0, string memory p1, uint256 p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint256)", p0, p1, p2));
}
function log(bool p0, string memory p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,string)", p0, p1, p2));
}
function log(bool p0, string memory p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool)", p0, p1, p2));
}
function log(bool p0, string memory p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,address)", p0, p1, p2));
}
function log(bool p0, bool p1, uint256 p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint256)", p0, p1, p2));
}
function log(bool p0, bool p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string)", p0, p1, p2));
}
function log(bool p0, bool p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool)", p0, p1, p2));
}
function log(bool p0, bool p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address)", p0, p1, p2));
}
function log(bool p0, address p1, uint256 p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint256)", p0, p1, p2));
}
function log(bool p0, address p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,string)", p0, p1, p2));
}
function log(bool p0, address p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool)", p0, p1, p2));
}
function log(bool p0, address p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,address)", p0, p1, p2));
}
function log(address p0, uint256 p1, uint256 p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,uint256)", p0, p1, p2));
}
function log(address p0, uint256 p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,string)", p0, p1, p2));
}
function log(address p0, uint256 p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,bool)", p0, p1, p2));
}
function log(address p0, uint256 p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,address)", p0, p1, p2));
}
function log(address p0, string memory p1, uint256 p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,uint256)", p0, p1, p2));
}
function log(address p0, string memory p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,string)", p0, p1, p2));
}
function log(address p0, string memory p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,bool)", p0, p1, p2));
}
function log(address p0, string memory p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,address)", p0, p1, p2));
}
function log(address p0, bool p1, uint256 p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint256)", p0, p1, p2));
}
function log(address p0, bool p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,string)", p0, p1, p2));
}
function log(address p0, bool p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool)", p0, p1, p2));
}
function log(address p0, bool p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,address)", p0, p1, p2));
}
function log(address p0, address p1, uint256 p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,uint256)", p0, p1, p2));
}
function log(address p0, address p1, string memory p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,string)", p0, p1, p2));
}
function log(address p0, address p1, bool p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,bool)", p0, p1, p2));
}
function log(address p0, address p1, address p2) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,address)", p0, p1, p2));
}
function log(uint256 p0, uint256 p1, uint256 p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,uint256,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, uint256 p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,uint256,string)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, uint256 p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,uint256,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, uint256 p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,uint256,address)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, string memory p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,string,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,string,string)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,string,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,string,address)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, bool p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,bool,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,bool,string)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,bool,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,bool,address)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, address p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,address,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,address,string)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,address,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, uint256 p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,uint256,address,address)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, uint256 p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,uint256,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, uint256 p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,uint256,string)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, uint256 p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,uint256,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, uint256 p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,uint256,address)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, string memory p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,string,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,string,string)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,string,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,string,address)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, bool p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,bool,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,bool,string)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,bool,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,bool,address)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, address p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,address,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,address,string)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,address,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, string memory p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,string,address,address)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, uint256 p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,uint256,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, uint256 p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,uint256,string)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, uint256 p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,uint256,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, uint256 p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,uint256,address)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, string memory p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,string,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,string,string)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,string,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,string,address)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, bool p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,bool,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,bool,string)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,bool,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,bool,address)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, address p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,address,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,address,string)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,address,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, bool p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,bool,address,address)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, uint256 p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,uint256,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, uint256 p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,uint256,string)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, uint256 p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,uint256,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, uint256 p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,uint256,address)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, string memory p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,string,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,string,string)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,string,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,string,address)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, bool p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,bool,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,bool,string)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,bool,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,bool,address)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, address p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,address,uint256)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,address,string)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,address,bool)", p0, p1, p2, p3));
}
function log(uint256 p0, address p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(uint256,address,address,address)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, uint256 p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,uint256,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, uint256 p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,uint256,string)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, uint256 p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,uint256,bool)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, uint256 p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,uint256,address)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, string memory p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,string,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,string,string)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,string,bool)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,string,address)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, bool p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,bool,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,bool,string)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,bool,bool)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,bool,address)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, address p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,address,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,address,string)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,address,bool)", p0, p1, p2, p3));
}
function log(string memory p0, uint256 p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,uint256,address,address)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, uint256 p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,uint256,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, uint256 p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,uint256,string)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, uint256 p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,uint256,bool)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, uint256 p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,uint256,address)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, string memory p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,string,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,string,string)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,string,bool)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,string,address)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, bool p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,string)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,bool)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,bool,address)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, address p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,address,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,address,string)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,address,bool)", p0, p1, p2, p3));
}
function log(string memory p0, string memory p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,string,address,address)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, uint256 p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint256,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, uint256 p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint256,string)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, uint256 p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint256,bool)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, uint256 p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,uint256,address)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, string memory p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,string)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,bool)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,string,address)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, bool p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,string)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,bool)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,address)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, address p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,string)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,bool)", p0, p1, p2, p3));
}
function log(string memory p0, bool p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,bool,address,address)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, uint256 p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,uint256,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, uint256 p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,uint256,string)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, uint256 p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,uint256,bool)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, uint256 p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,uint256,address)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, string memory p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,string,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,string,string)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,string,bool)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,string,address)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, bool p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,string)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,bool)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,bool,address)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, address p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,address,uint256)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,address,string)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,address,bool)", p0, p1, p2, p3));
}
function log(string memory p0, address p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(string,address,address,address)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, uint256 p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,uint256,uint256)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, uint256 p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,uint256,string)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, uint256 p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,uint256,bool)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, uint256 p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,uint256,address)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, string memory p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,string,uint256)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,string,string)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,string,bool)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,string,address)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, bool p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,bool,uint256)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,bool,string)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,bool,bool)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,bool,address)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, address p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,address,uint256)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,address,string)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,address,bool)", p0, p1, p2, p3));
}
function log(bool p0, uint256 p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,uint256,address,address)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, uint256 p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint256,uint256)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, uint256 p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint256,string)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, uint256 p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint256,bool)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, uint256 p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,uint256,address)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, string memory p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,uint256)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,string)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,bool)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,string,address)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, bool p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,uint256)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,string)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,bool)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,address)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, address p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,uint256)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,string)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,bool)", p0, p1, p2, p3));
}
function log(bool p0, string memory p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,string,address,address)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, uint256 p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint256,uint256)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, uint256 p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint256,string)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, uint256 p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint256,bool)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, uint256 p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint256,address)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, string memory p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,uint256)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,string)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,bool)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,address)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, bool p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,uint256)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,string)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,bool)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,address)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, address p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,uint256)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,string)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,bool)", p0, p1, p2, p3));
}
function log(bool p0, bool p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,address)", p0, p1, p2, p3));
}
function log(bool p0, address p1, uint256 p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint256,uint256)", p0, p1, p2, p3));
}
function log(bool p0, address p1, uint256 p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint256,string)", p0, p1, p2, p3));
}
function log(bool p0, address p1, uint256 p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint256,bool)", p0, p1, p2, p3));
}
function log(bool p0, address p1, uint256 p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,uint256,address)", p0, p1, p2, p3));
}
function log(bool p0, address p1, string memory p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,uint256)", p0, p1, p2, p3));
}
function log(bool p0, address p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,string)", p0, p1, p2, p3));
}
function log(bool p0, address p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,bool)", p0, p1, p2, p3));
}
function log(bool p0, address p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,string,address)", p0, p1, p2, p3));
}
function log(bool p0, address p1, bool p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,uint256)", p0, p1, p2, p3));
}
function log(bool p0, address p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,string)", p0, p1, p2, p3));
}
function log(bool p0, address p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,bool)", p0, p1, p2, p3));
}
function log(bool p0, address p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,address)", p0, p1, p2, p3));
}
function log(bool p0, address p1, address p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,uint256)", p0, p1, p2, p3));
}
function log(bool p0, address p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,string)", p0, p1, p2, p3));
}
function log(bool p0, address p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,bool)", p0, p1, p2, p3));
}
function log(bool p0, address p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(bool,address,address,address)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, uint256 p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,uint256,uint256)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, uint256 p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,uint256,string)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, uint256 p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,uint256,bool)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, uint256 p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,uint256,address)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, string memory p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,string,uint256)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,string,string)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,string,bool)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,string,address)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, bool p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,bool,uint256)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,bool,string)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,bool,bool)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,bool,address)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, address p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,address,uint256)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,address,string)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,address,bool)", p0, p1, p2, p3));
}
function log(address p0, uint256 p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,uint256,address,address)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, uint256 p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,uint256,uint256)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, uint256 p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,uint256,string)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, uint256 p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,uint256,bool)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, uint256 p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,uint256,address)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, string memory p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,string,uint256)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,string,string)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,string,bool)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,string,address)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, bool p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,uint256)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,string)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,bool)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,bool,address)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, address p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,address,uint256)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,address,string)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,address,bool)", p0, p1, p2, p3));
}
function log(address p0, string memory p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,string,address,address)", p0, p1, p2, p3));
}
function log(address p0, bool p1, uint256 p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint256,uint256)", p0, p1, p2, p3));
}
function log(address p0, bool p1, uint256 p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint256,string)", p0, p1, p2, p3));
}
function log(address p0, bool p1, uint256 p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint256,bool)", p0, p1, p2, p3));
}
function log(address p0, bool p1, uint256 p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,uint256,address)", p0, p1, p2, p3));
}
function log(address p0, bool p1, string memory p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,uint256)", p0, p1, p2, p3));
}
function log(address p0, bool p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,string)", p0, p1, p2, p3));
}
function log(address p0, bool p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,bool)", p0, p1, p2, p3));
}
function log(address p0, bool p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,string,address)", p0, p1, p2, p3));
}
function log(address p0, bool p1, bool p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,uint256)", p0, p1, p2, p3));
}
function log(address p0, bool p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,string)", p0, p1, p2, p3));
}
function log(address p0, bool p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,bool)", p0, p1, p2, p3));
}
function log(address p0, bool p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,address)", p0, p1, p2, p3));
}
function log(address p0, bool p1, address p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,uint256)", p0, p1, p2, p3));
}
function log(address p0, bool p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,string)", p0, p1, p2, p3));
}
function log(address p0, bool p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,bool)", p0, p1, p2, p3));
}
function log(address p0, bool p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,bool,address,address)", p0, p1, p2, p3));
}
function log(address p0, address p1, uint256 p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,uint256,uint256)", p0, p1, p2, p3));
}
function log(address p0, address p1, uint256 p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,uint256,string)", p0, p1, p2, p3));
}
function log(address p0, address p1, uint256 p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,uint256,bool)", p0, p1, p2, p3));
}
function log(address p0, address p1, uint256 p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,uint256,address)", p0, p1, p2, p3));
}
function log(address p0, address p1, string memory p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,string,uint256)", p0, p1, p2, p3));
}
function log(address p0, address p1, string memory p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,string,string)", p0, p1, p2, p3));
}
function log(address p0, address p1, string memory p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,string,bool)", p0, p1, p2, p3));
}
function log(address p0, address p1, string memory p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,string,address)", p0, p1, p2, p3));
}
function log(address p0, address p1, bool p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,uint256)", p0, p1, p2, p3));
}
function log(address p0, address p1, bool p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,string)", p0, p1, p2, p3));
}
function log(address p0, address p1, bool p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,bool)", p0, p1, p2, p3));
}
function log(address p0, address p1, bool p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,bool,address)", p0, p1, p2, p3));
}
function log(address p0, address p1, address p2, uint256 p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,address,uint256)", p0, p1, p2, p3));
}
function log(address p0, address p1, address p2, string memory p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,address,string)", p0, p1, p2, p3));
}
function log(address p0, address p1, address p2, bool p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,address,bool)", p0, p1, p2, p3));
}
function log(address p0, address p1, address p2, address p3) internal view {
_sendLogPayload(abi.encodeWithSignature("log(address,address,address,address)", p0, p1, p2, p3));
}
}{
"viaIR": true,
"optimizer": {
"enabled": true,
"runs": 10000,
"details": {
"yulDetails": {
"optimizerSteps": "u"
}
}
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"contract IERC20","name":"_weth","type":"address"},{"internalType":"address","name":"_dexSwapRouter","type":"address"},{"internalType":"address","name":"_stakingPool","type":"address"},{"internalType":"address","name":"_airdropPool","type":"address"},{"internalType":"address","name":"_racePool","type":"address"},{"internalType":"address","name":"_dev","type":"address"}],"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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BURN_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEAD_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEV","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEV_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEX_SWAP_ROUTER","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEE_DENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INITAL_MINT_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROXY_HOLDER","outputs":[{"internalType":"contract ProxyHolder","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RACE_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RACE_POOL","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"STAKING_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"STAKING_POOL","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH_TO_SELF_PAIR","outputs":[{"internalType":"contract ICamelotPair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ZERO_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"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":[],"name":"deployProxyHolder","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":[],"name":"isLaunched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapSelfBalanceToWeth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","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":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFromWithoutFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferWithoutFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
610120604052346200009e576200002662000019620001b1565b9493909392919262000294565b604051612329620006d382396080518181816107e201526119e1015260a05181818161068c0152611a1f015260c0518181816103c90152611cd1015260e05181818161081b015281816115e60152611c7d015261010051818181610854015281816116a1015281816116f60152611c27015261232990f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b90601f01601f191681019081106001600160401b03821117620000db57604052565b620000a3565b90620000f8620000f060405190565b9283620000b9565b565b6001600160a01b031690565b90565b6001600160a01b0381165b036200009e57565b90505190620000f88262000109565b6001600160a01b03811662000114565b90505190620000f8826200012b565b909160c0828403126200009e576200016383836200011c565b926200017381602085016200013b565b926200018382604083016200013b565b92620001066200019784606085016200013b565b93620001a781608086016200013b565b9360a0016200013b565b620001d4620029fc80380380620001c881620000e1565b9283398101906200014a565b909192939495565b6001600160401b038111620000db57602090601f01601f19160190565b906200020f6200020983620001dc565b620000e1565b918252565b62000220600f620001f9565b6e2334b932902237b3b2902a37b5b2b760891b602082015290565b6200010662000214565b620002516008620001f9565b6746495245444f474560c01b602082015290565b6200010662000245565b6200010662000106620001069290565b6200010669d3c21bcecceda10000006200026f565b909192620002cf90959495620002be620002ad6200023b565b620002b762000265565b90620004d2565b620002c86200027f565b90620005ff565b60805260a05260c0526101005260e052565b634e487b7160e01b600052602260045260246000fd5b90600160028304921680156200031a575b60208310146200031457565b620002e1565b91607f169162000308565b9160001960089290920291821b911b5b9181191691161790565b919062000354620001066200035d936200026f565b90835462000325565b9055565b620000f8916000916200033f565b8181106200037b575050565b806200038b600060019362000361565b016200036f565b9190601f8111620003a257505050565b620003b6620000f893600052602060002090565b906020601f840181900483019310620003da575b6020601f9091010401906200036f565b9091508190620003ca565b90620003ef815190565b906001600160401b038211620000db576200041782620004108554620002f7565b8562000392565b602090601f831160011462000456576200035d9291600091836200044a575b5050600019600883021c1916906002021790565b01519050388062000436565b601f198316916200046c85600052602060002090565b9260005b818110620004ad5750916002939185600196941062000493575b50505002019055565b01516000196008601f8516021c191690553880806200048a565b9193602060018192878701518155019501920162000470565b90620000f891620003e5565b90620004e4620000f8926003620004c6565b6004620004c6565b620000fa62000106620001069290565b6200010690620004ec565b156200050f57565b60405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b620001069081565b62000106905462000554565b634e487b7160e01b600052601160045260246000fd5b919082018092116200058c57565b62000568565b906000199062000335565b90620005b1620001066200035d926200026f565b825462000592565b6200010690620000fa906001600160a01b031682565b6200010690620005b9565b6200010690620005cf565b90620005f190620005da565b600052602052604060002090565b60006200067a6200065f836200061584620004fc565b93620006366001600160a01b0386166001600160a01b038416141562000507565b6200065962000651886200064b60026200055c565b6200057e565b60026200059d565b620005e5565b62000673856200066f836200055c565b0190565b906200059d565b620006cd620006b5620006ae7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef93620005da565b93620005da565b93620006c060405190565b9182918290815260200190565b0390a356fe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c806301339c211461021b57806306fdde0314610216578063095ea7b31461021157806314ae36ae1461020c57806318160ddd146102075780631a2b4fde1461020257806323b872dd146101fd578063307aebc9146101f8578063313ce567146101f357806339509351146101ee5780634308759a146101e9578063436a88c1146101e4578063480df058146101df5780634e6fd6c4146101da578063538ba4f9146101d55780635c662aa9146101d057806370a08231146101cb5780637a2bbf65146101c65780637f92366f146101c1578063836dfd5a146101bc57806395d89b41146101b7578063a457c2d7146101b2578063a9059cbb146101ad578063a911c7c8146101a8578063ad5c4648146101a3578063c18f89cc1461019e578063c1eb5ddd14610199578063ce99861314610194578063d73792a91461018f578063dd62ed3e1461018a578063ef14202d146101855763ff557c580361000e5761093a565b61091f565b6108f7565b6108b9565b61088b565b61083f565b610806565b6107cd565b6107b2565b61077b565b61075f565b610744565b610729565b6106fb565b6106df565b6106c4565b610677565b61065d565b610642565b610627565b6105f9565b6105c1565b6105a5565b610576565b61055b565b610519565b6104c2565b610410565b6103b4565b610386565b6102de565b610230565b600091031261022b57565b600080fd5b3461022b57610240366004610220565b61024861108f565b604051005b0390f35b60005b8381106102645750506000910152565b8181015183820152602001610254565b61029561029e6020936102c693610289815190565b80835293849260200190565b95869101610251565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b0190565b60208082526102db92910190610274565b90565b3461022b576102ee366004610220565b61024d6102f9610ad7565b604051918291826102ca565b73ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff81165b0361022b57565b9050359061034a8261031e565b565b80610336565b9050359061034a8261034c565b919060408382031261022b576102db90610379818561033d565b93602001610352565b9052565b3461022b5761024d6103a261039c36600461035f565b90610b5a565b60405191829182901515815260200190565b3461022b576103c4366004610220565b61024d7f00000000000000000000000000000000000000000000000000000000000000005b6040519182918273ffffffffffffffffffffffffffffffffffffffff909116815260200190565b3461022b57610420366004610220565b61024d61042b610afc565b6040515b9182918290815260200190565b6102db916008021c73ffffffffffffffffffffffffffffffffffffffff1690565b906102db915461043c565b6102db6001600561045d565b6103056102db6102db9273ffffffffffffffffffffffffffffffffffffffff1690565b6102db90610474565b6102db90610497565b610382906104a0565b60208101929161034a91906104a9565b3461022b576104d2366004610220565b61024d6104dd610468565b604051918291826104b2565b909160608284031261022b576102db610502848461033d565b93610510816020860161033d565b93604001610352565b3461022b5761024d6103a261052f3660046104e9565b916110db565b6102db916008021c5b60ff1690565b906102db9154610535565b6102db60006005610544565b3461022b5761056b366004610220565b61024d6103a261054f565b3461022b57610586366004610220565b61024d6105916110c1565b6040519182918260ff909116815260200190565b3461022b5761024d6103a26105bb36600461035f565b90610bab565b3461022b576105d1366004610220565b610248610f6b565b6102db6102db6102db9290565b6102db61012c6105d9565b6102db6105e6565b3461022b57610609366004610220565b61024d61042b6105f1565b6102db6103e86105d9565b6102db610614565b3461022b57610637366004610220565b61024d61042b61061f565b3461022b57610652366004610220565b61024d61dead6103e9565b3461022b5761066d366004610220565b61024d60006103e9565b3461022b57610687366004610220565b61024d7f00000000000000000000000000000000000000000000000000000000000000006103e9565b9060208282031261022b576102db9161033d565b3461022b5761024d61042b6106da3660046106b0565b610b1e565b3461022b5761024d6103a26106f536600461035f565b906111a9565b3461022b5761024d6103a26107113660046104e9565b91611438565b6102db60c86105d9565b6102db610717565b3461022b57610739366004610220565b61024d61042b610721565b3461022b57610754366004610220565b61024d6102f9610ae1565b3461022b5761024d6103a261077536600461035f565b90610c56565b3461022b5761024d6103a261079136600461035f565b906110cb565b6102db69d3c21bcecceda10000006105d9565b6102db610797565b3461022b576107c2366004610220565b61024d61042b6107aa565b3461022b576107dd366004610220565b61024d7f00000000000000000000000000000000000000000000000000000000000000006104dd565b3461022b57610816366004610220565b61024d7f00000000000000000000000000000000000000000000000000000000000000006103e9565b3461022b5761084f366004610220565b61024d7f00000000000000000000000000000000000000000000000000000000000000006103e9565b6102db6101f46105d9565b6102db610878565b3461022b5761089b366004610220565b61024d61042b610883565b6102db6127106105d9565b6102db6108a6565b3461022b576108c9366004610220565b61024d61042b6108b1565b919060408382031261022b576102db906108ee818561033d565b9360200161033d565b3461022b5761024d61042b61090d3660046108d4565b90610b3a565b6102db6000600661045d565b3461022b5761092f366004610220565b61024d6104dd610913565b3461022b5761094a366004610220565b61024861198d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b90600160028304921680156109a1575b602083101461099c57565b610952565b91607f1691610991565b805460009392916109c86109be83610981565b8085529360200190565b9160018116908115610a1a57506001146109e157505050565b6109f49192939450600052602060002090565b916000925b818410610a065750500190565b8054848401526020909301926001016109f9565b92949550505060ff1916825215156020020190565b906102db916109ab565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810190811067ffffffffffffffff821117610aa857604052565b610a39565b9061034a610ac792610abe60405190565b93848092610a2f565b0383610a68565b6102db90610aad565b6102db6003610ace565b6102db6004610ace565b6102db9081565b6102db9054610aeb565b6102db6002610af2565b90610b10906104a0565b600052602052604060002090565b610b356102db91610b2d600090565b506000610b06565b610af2565b6102db91610b55610b3592610b4d600090565b506001610b06565b610b06565b610b65919033610df0565b600190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b91908201809211610ba657565b610b6a565b610b659190610bc43392610bbf8385610b3a565b610b99565b91610df0565b15610bd157565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608490fd5b610b659190610bc43392610c6a8385610b3a565b610c7682821015610bca565b0390565b6103056102db6102db9290565b6102db90610c7a565b15610c9757565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608490fd5b15610d2257565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608490fd5b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905b9181191691161790565b90610de56102db610dec926105d9565b8254610da7565b9055565b610e56610e38610e006000610c87565b61030573ffffffffffffffffffffffffffffffffffffffff821673ffffffffffffffffffffffffffffffffffffffff86161415610c90565b73ffffffffffffffffffffffffffffffffffffffff84161415610d1b565b610e6e83610e6984610b55856001610b06565b610dd5565b610eae610ea4610e9e7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925936104a0565b936104a0565b9361042f60405190565b0390a3565b6102db90610305565b6102db9054610eb3565b15610ecd57565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f486173206265656e20616c7265616479206465706c6f796564000000000000006044820152606490fd5b6040513d6000823e3d90fd5b9073ffffffffffffffffffffffffffffffffffffffff90610dcb565b90610f646102db610dec926104a0565b8254610f38565b610f7d610f786006610ebc565b6104a0565b610fb2600091610fac610f9261030585610c87565b9173ffffffffffffffffffffffffffffffffffffffff1690565b14610ec6565b604051610490810181811067ffffffffffffffff821117610aa857610fdd8291610490611e64843990565b0391f08015610ff15761034a906006610f54565b610f2c565b6102db9061053e565b6102db9054610ff6565b1561101057565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f546f6b656e20697320616c7265616479206c61756e63686564000000000000006044820152606490fd5b9060ff90610dcb565b906110886102db610dec92151590565b825461106f565b6110a86110a361109f6005610fff565b1590565b611009565b61034a60016005611078565b61053e6102db6102db9290565b6102db60066110b4565b6102db9190336114d4565b6114d4565b6102db9291906110d683335b83611153565b156110f457565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606490fd5b9061115e8183610b3a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810361118c575b50505050565b6111a093610bc491610c76828210156110ed565b38808080611186565b610b6591903361135d565b61135d565b156111c057565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608490fd5b1561124c57565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608490fd5b156112d857565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608490fd5b6114086113f58360006113cb6113ad61137583610c87565b61030573ffffffffffffffffffffffffffffffffffffffff821673ffffffffffffffffffffffffffffffffffffffff8a1614156111b9565b73ffffffffffffffffffffffffffffffffffffffff84161415611245565b610b556113eb886113df610b358986610b06565b610c76828210156112d1565b610e698784610b06565b611402856102c683610af2565b90610dd5565b610eae610ea4610e9e7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef936104a0565b610b659291906111b483336110e7565b81810292918115918404141715610ba657565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b8115611494570490565b61145b565b91908203918211610ba657565b73ffffffffffffffffffffffffffffffffffffffff909116815260408101929161034a9160200152565b0152565b91906114df306104a0565b9073ffffffffffffffffffffffffffffffffffffffff821673ffffffffffffffffffffffffffffffffffffffff8516148015611746575b8015611733575b80156116de575b8015611689575b61167e57916115de916115d86115c495946115d161155061154a610614565b86611448565b946115cc61156661155f6108a6565b809861148a565b998a976115768961dead8d61135d565b610bbf6115938261158e611588610717565b88611448565b61148a565b916115be6115ac8261158e6115a66105e6565b8a611448565b9161158e6115b8610878565b89611448565b92610b99565b968792611499565b611499565b908661135d565b8361135d565b61160a610f787f00000000000000000000000000000000000000000000000000000000000000006104a0565b9063da90539c91803b1561022b576116386000809461164361162b60405190565b9788968795869460e01b90565b8452600484016114a6565b03925af18015610ff157611658575b50600190565b6116719060005b6116698183610a68565b810190610220565b38611652565b503d61165f565b9050610b659261135d565b5073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff82161461152b565b5073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff851614611524565b5061174161109f6005610fff565b61151d565b5073ffffffffffffffffffffffffffffffffffffffff821673ffffffffffffffffffffffffffffffffffffffff821614611516565b9061034a61178860405190565b9283610a68565b67ffffffffffffffff8111610aa85760208091020190565b906117b96117b48361178f565b61177b565b918252565b369037565b9061034a6117d96117d3846117a7565b9361178f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001602084016117be565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9061183c825190565b81101561184d576020809102010190565b611804565b610382906105d9565b9061187b61187461186a845190565b8084529260200190565b9260200190565b9060005b81811061188c5750505090565b9091926118bf6118b8600192865173ffffffffffffffffffffffffffffffffffffffff16815260200190565b9460200190565b92910161187f565b91946119266119076114d09360a0966118fa61034a9a9c9b999c6118f060c08a019460008b0152565b6020890190611852565b868203604088015261185b565b73ffffffffffffffffffffffffffffffffffffffff9099166060850152565b73ffffffffffffffffffffffffffffffffffffffff166080830152565b9050519061034a8261034c565b9060208282031261022b576102db91611943565b801515610336565b9050519061034a82611964565b9060208282031261022b576102db9161196c565b61199f61199a60026105d9565b6117c3565b6119a8306104a0565b6000916119dc826119c16119bb866105d9565b84611833565b9073ffffffffffffffffffffffffffffffffffffffff169052565b611a057f00000000000000000000000000000000000000000000000000000000000000006104a0565b90611a17826119c16119bb60016105d9565b611a51610f787f0000000000000000000000000000000000000000000000000000000000000000610f78611a4a87610b1e565b8288610df0565b63ac3893ba90611a6085610b1e565b90611a6e610f786006610ebc565b611a7788610c87565b904294833b1561022b57611ab18a9796611aa6948998948995611a9960405190565b9b8c9a8b998a9860e01b90565b8852600488016118c7565b03925af19081611e47575b50158314611ac957505050565b611ad6610f786006610ebc565b6351cff8d990803b1561022b57611afb918591611af260405190565b93849260e01b90565b825273ffffffffffffffffffffffffffffffffffffffff85166004830152602490829084905af18015610ff157611e2b575b506020611b4f6370a08231611b73611b4460405190565b958693849360e01b90565b835273ffffffffffffffffffffffffffffffffffffffff1660048301526024820190565b0381845afa908115610ff15761158e92600092611dfb575b50611c5e611c1c611b9a610717565b6115cc611c15611ba86105e6565b92611bfd611c0f6115a6611bcd611bbf8886610b99565b611bc7610878565b90610b99565b611c03611bf48d611bee8461158e670de0b6b3a76400009a611bee8c6105d9565b90611448565b611bfd876105d9565b9061148a565b9c8d98611bee876105d9565b916105d9565b8096611499565b92602063a9059cbb917f0000000000000000000000000000000000000000000000000000000000000000611c4f60405190565b94859283926116388760e01b90565b038189875af1908115610ff15760209261163892611de0575b50611cb17f000000000000000000000000000000000000000000000000000000000000000095611ca660405190565b968794859460e01b90565b038187855af1918215610ff157611d0392611dc4575b50602063095ea7b37f000000000000000000000000000000000000000000000000000000000000000092611cfa60405190565b94859260e01b90565b8252818781611d168988600484016114a6565b03925af1908115610ff157611d3492610f7892611d98575b506104a0565b90633bdc8a1f90823b1561022b57611d7092611d62858094611d5560405190565b9687958694859360e01b90565b835260048301526024820190565b03925af18015610ff157611d82575050565b8161034a92903d10611677576116698183610a68565b611db89060203d8111611dbd575b611db08183610a68565b810190611979565b611d2e565b503d611da6565b611ddb9060203d8111611dbd57611db08183610a68565b611cc7565b611df690843d8111611dbd57611db08183610a68565b611c77565b611e1d91925060203d8111611e24575b611e158183610a68565b810190611950565b9038611b8b565b503d611e0b565b611e4190843d8611611677576116698183610a68565b38611b2d565b611e5d90853d8711611677576116698183610a68565b38611abc56fe60a0604052346100325761001233608052565b6040516104586100388239608051818181607a01526102b5015261045890f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8063117803e314610032576351cff8d903610042576100f6565b610065565b600091031261004257565b600080fd5b73ffffffffffffffffffffffffffffffffffffffff1690565b90565b565b3461004257610075366004610037565b6040517f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168152602090f35b73ffffffffffffffffffffffffffffffffffffffff81165b0361004257565b90503590610063826100b6565b9060208282031261004257610060916100d5565b346100425761010e6101093660046100e2565b6102a8565b604051005b1561011a57565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4f6e6c79206f776e65722063616e2077697468647261772066756e64730000006044820152606490fd5b6100476100606100609273ffffffffffffffffffffffffffffffffffffffff1690565b61006090610179565b6100609061019c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810190811067ffffffffffffffff82111761021d57604052565b6101ae565b806100ce565b9050519061006382610222565b906020828203126100425761006091610228565b6040513d6000823e3d90fd5b8015156100ce565b9050519061006382610255565b90602082820312610042576100609161025d565b73ffffffffffffffffffffffffffffffffffffffff90911681526040810192916100639160200152565b61031a61031533926103157f00000000000000000000000000000000000000000000000000000000000000009461030f6102f58773ffffffffffffffffffffffffffffffffffffffff1690565b9173ffffffffffffffffffffffffffffffffffffffff1690565b14610113565b6101a5565b906370a0823190602061034761032f306101a5565b9361036b61033c60405190565b958693849360e01b90565b835273ffffffffffffffffffffffffffffffffffffffff1660048301526024820190565b0381865afa9182156103ed576000926103f2575b50602091926103a7600063a9059cbb6103b261039a60405190565b9788968795869460e01b90565b84526004840161027e565b03925af180156103ed576103c35750565b6103e39060203d81116103e6575b6103db81836101dd565b81019061026a565b50565b503d6103d1565b610249565b6020925061041590833d811161041b575b61040d81836101dd565b810190610235565b9161037f565b503d61040356fea264697066735822122057479fc24495856bd05abf8fd0e2829de76bf76eaeca2208b6a0d48a3b6f3e9c64736f6c63430008120033a2646970667358221220063757ddfd6f2264f47cc4dbb57cb88969c2a0dd018ab1c644045358bbcab67964736f6c6343000812003300000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab1000000000000000000000000c873fecbd354f5a56e00e710b90ef4201db2448d0000000000000000000000000ff64211335a436c9c3c73321d015eac707577610000000000000000000000008e0fec293f5d1e8922da0f62ab936b4a18f052d30000000000000000000000001f3a7bb85397bdf0753dc576e6de09ab76c4e73000000000000000000000000068467834722c31b5c07615ebd8c44cdf93b9ea13
Deployed Bytecode
0x6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c806301339c211461021b57806306fdde0314610216578063095ea7b31461021157806314ae36ae1461020c57806318160ddd146102075780631a2b4fde1461020257806323b872dd146101fd578063307aebc9146101f8578063313ce567146101f357806339509351146101ee5780634308759a146101e9578063436a88c1146101e4578063480df058146101df5780634e6fd6c4146101da578063538ba4f9146101d55780635c662aa9146101d057806370a08231146101cb5780637a2bbf65146101c65780637f92366f146101c1578063836dfd5a146101bc57806395d89b41146101b7578063a457c2d7146101b2578063a9059cbb146101ad578063a911c7c8146101a8578063ad5c4648146101a3578063c18f89cc1461019e578063c1eb5ddd14610199578063ce99861314610194578063d73792a91461018f578063dd62ed3e1461018a578063ef14202d146101855763ff557c580361000e5761093a565b61091f565b6108f7565b6108b9565b61088b565b61083f565b610806565b6107cd565b6107b2565b61077b565b61075f565b610744565b610729565b6106fb565b6106df565b6106c4565b610677565b61065d565b610642565b610627565b6105f9565b6105c1565b6105a5565b610576565b61055b565b610519565b6104c2565b610410565b6103b4565b610386565b6102de565b610230565b600091031261022b57565b600080fd5b3461022b57610240366004610220565b61024861108f565b604051005b0390f35b60005b8381106102645750506000910152565b8181015183820152602001610254565b61029561029e6020936102c693610289815190565b80835293849260200190565b95869101610251565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b0190565b60208082526102db92910190610274565b90565b3461022b576102ee366004610220565b61024d6102f9610ad7565b604051918291826102ca565b73ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff81165b0361022b57565b9050359061034a8261031e565b565b80610336565b9050359061034a8261034c565b919060408382031261022b576102db90610379818561033d565b93602001610352565b9052565b3461022b5761024d6103a261039c36600461035f565b90610b5a565b60405191829182901515815260200190565b3461022b576103c4366004610220565b61024d7f0000000000000000000000000ff64211335a436c9c3c73321d015eac707577615b6040519182918273ffffffffffffffffffffffffffffffffffffffff909116815260200190565b3461022b57610420366004610220565b61024d61042b610afc565b6040515b9182918290815260200190565b6102db916008021c73ffffffffffffffffffffffffffffffffffffffff1690565b906102db915461043c565b6102db6001600561045d565b6103056102db6102db9273ffffffffffffffffffffffffffffffffffffffff1690565b6102db90610474565b6102db90610497565b610382906104a0565b60208101929161034a91906104a9565b3461022b576104d2366004610220565b61024d6104dd610468565b604051918291826104b2565b909160608284031261022b576102db610502848461033d565b93610510816020860161033d565b93604001610352565b3461022b5761024d6103a261052f3660046104e9565b916110db565b6102db916008021c5b60ff1690565b906102db9154610535565b6102db60006005610544565b3461022b5761056b366004610220565b61024d6103a261054f565b3461022b57610586366004610220565b61024d6105916110c1565b6040519182918260ff909116815260200190565b3461022b5761024d6103a26105bb36600461035f565b90610bab565b3461022b576105d1366004610220565b610248610f6b565b6102db6102db6102db9290565b6102db61012c6105d9565b6102db6105e6565b3461022b57610609366004610220565b61024d61042b6105f1565b6102db6103e86105d9565b6102db610614565b3461022b57610637366004610220565b61024d61042b61061f565b3461022b57610652366004610220565b61024d61dead6103e9565b3461022b5761066d366004610220565b61024d60006103e9565b3461022b57610687366004610220565b61024d7f000000000000000000000000c873fecbd354f5a56e00e710b90ef4201db2448d6103e9565b9060208282031261022b576102db9161033d565b3461022b5761024d61042b6106da3660046106b0565b610b1e565b3461022b5761024d6103a26106f536600461035f565b906111a9565b3461022b5761024d6103a26107113660046104e9565b91611438565b6102db60c86105d9565b6102db610717565b3461022b57610739366004610220565b61024d61042b610721565b3461022b57610754366004610220565b61024d6102f9610ae1565b3461022b5761024d6103a261077536600461035f565b90610c56565b3461022b5761024d6103a261079136600461035f565b906110cb565b6102db69d3c21bcecceda10000006105d9565b6102db610797565b3461022b576107c2366004610220565b61024d61042b6107aa565b3461022b576107dd366004610220565b61024d7f00000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab16104dd565b3461022b57610816366004610220565b61024d7f0000000000000000000000001f3a7bb85397bdf0753dc576e6de09ab76c4e7306103e9565b3461022b5761084f366004610220565b61024d7f00000000000000000000000068467834722c31b5c07615ebd8c44cdf93b9ea136103e9565b6102db6101f46105d9565b6102db610878565b3461022b5761089b366004610220565b61024d61042b610883565b6102db6127106105d9565b6102db6108a6565b3461022b576108c9366004610220565b61024d61042b6108b1565b919060408382031261022b576102db906108ee818561033d565b9360200161033d565b3461022b5761024d61042b61090d3660046108d4565b90610b3a565b6102db6000600661045d565b3461022b5761092f366004610220565b61024d6104dd610913565b3461022b5761094a366004610220565b61024861198d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b90600160028304921680156109a1575b602083101461099c57565b610952565b91607f1691610991565b805460009392916109c86109be83610981565b8085529360200190565b9160018116908115610a1a57506001146109e157505050565b6109f49192939450600052602060002090565b916000925b818410610a065750500190565b8054848401526020909301926001016109f9565b92949550505060ff1916825215156020020190565b906102db916109ab565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810190811067ffffffffffffffff821117610aa857604052565b610a39565b9061034a610ac792610abe60405190565b93848092610a2f565b0383610a68565b6102db90610aad565b6102db6003610ace565b6102db6004610ace565b6102db9081565b6102db9054610aeb565b6102db6002610af2565b90610b10906104a0565b600052602052604060002090565b610b356102db91610b2d600090565b506000610b06565b610af2565b6102db91610b55610b3592610b4d600090565b506001610b06565b610b06565b610b65919033610df0565b600190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b91908201809211610ba657565b610b6a565b610b659190610bc43392610bbf8385610b3a565b610b99565b91610df0565b15610bd157565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608490fd5b610b659190610bc43392610c6a8385610b3a565b610c7682821015610bca565b0390565b6103056102db6102db9290565b6102db90610c7a565b15610c9757565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608490fd5b15610d2257565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608490fd5b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905b9181191691161790565b90610de56102db610dec926105d9565b8254610da7565b9055565b610e56610e38610e006000610c87565b61030573ffffffffffffffffffffffffffffffffffffffff821673ffffffffffffffffffffffffffffffffffffffff86161415610c90565b73ffffffffffffffffffffffffffffffffffffffff84161415610d1b565b610e6e83610e6984610b55856001610b06565b610dd5565b610eae610ea4610e9e7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925936104a0565b936104a0565b9361042f60405190565b0390a3565b6102db90610305565b6102db9054610eb3565b15610ecd57565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f486173206265656e20616c7265616479206465706c6f796564000000000000006044820152606490fd5b6040513d6000823e3d90fd5b9073ffffffffffffffffffffffffffffffffffffffff90610dcb565b90610f646102db610dec926104a0565b8254610f38565b610f7d610f786006610ebc565b6104a0565b610fb2600091610fac610f9261030585610c87565b9173ffffffffffffffffffffffffffffffffffffffff1690565b14610ec6565b604051610490810181811067ffffffffffffffff821117610aa857610fdd8291610490611e64843990565b0391f08015610ff15761034a906006610f54565b610f2c565b6102db9061053e565b6102db9054610ff6565b1561101057565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f546f6b656e20697320616c7265616479206c61756e63686564000000000000006044820152606490fd5b9060ff90610dcb565b906110886102db610dec92151590565b825461106f565b6110a86110a361109f6005610fff565b1590565b611009565b61034a60016005611078565b61053e6102db6102db9290565b6102db60066110b4565b6102db9190336114d4565b6114d4565b6102db9291906110d683335b83611153565b156110f457565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606490fd5b9061115e8183610b3a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810361118c575b50505050565b6111a093610bc491610c76828210156110ed565b38808080611186565b610b6591903361135d565b61135d565b156111c057565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608490fd5b1561124c57565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608490fd5b156112d857565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152608490fd5b6114086113f58360006113cb6113ad61137583610c87565b61030573ffffffffffffffffffffffffffffffffffffffff821673ffffffffffffffffffffffffffffffffffffffff8a1614156111b9565b73ffffffffffffffffffffffffffffffffffffffff84161415611245565b610b556113eb886113df610b358986610b06565b610c76828210156112d1565b610e698784610b06565b611402856102c683610af2565b90610dd5565b610eae610ea4610e9e7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef936104a0565b610b659291906111b483336110e7565b81810292918115918404141715610ba657565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b8115611494570490565b61145b565b91908203918211610ba657565b73ffffffffffffffffffffffffffffffffffffffff909116815260408101929161034a9160200152565b0152565b91906114df306104a0565b9073ffffffffffffffffffffffffffffffffffffffff821673ffffffffffffffffffffffffffffffffffffffff8516148015611746575b8015611733575b80156116de575b8015611689575b61167e57916115de916115d86115c495946115d161155061154a610614565b86611448565b946115cc61156661155f6108a6565b809861148a565b998a976115768961dead8d61135d565b610bbf6115938261158e611588610717565b88611448565b61148a565b916115be6115ac8261158e6115a66105e6565b8a611448565b9161158e6115b8610878565b89611448565b92610b99565b968792611499565b611499565b908661135d565b8361135d565b61160a610f787f0000000000000000000000001f3a7bb85397bdf0753dc576e6de09ab76c4e7306104a0565b9063da90539c91803b1561022b576116386000809461164361162b60405190565b9788968795869460e01b90565b8452600484016114a6565b03925af18015610ff157611658575b50600190565b6116719060005b6116698183610a68565b810190610220565b38611652565b503d61165f565b9050610b659261135d565b5073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000068467834722c31b5c07615ebd8c44cdf93b9ea131673ffffffffffffffffffffffffffffffffffffffff82161461152b565b5073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000068467834722c31b5c07615ebd8c44cdf93b9ea131673ffffffffffffffffffffffffffffffffffffffff851614611524565b5061174161109f6005610fff565b61151d565b5073ffffffffffffffffffffffffffffffffffffffff821673ffffffffffffffffffffffffffffffffffffffff821614611516565b9061034a61178860405190565b9283610a68565b67ffffffffffffffff8111610aa85760208091020190565b906117b96117b48361178f565b61177b565b918252565b369037565b9061034a6117d96117d3846117a7565b9361178f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001602084016117be565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9061183c825190565b81101561184d576020809102010190565b611804565b610382906105d9565b9061187b61187461186a845190565b8084529260200190565b9260200190565b9060005b81811061188c5750505090565b9091926118bf6118b8600192865173ffffffffffffffffffffffffffffffffffffffff16815260200190565b9460200190565b92910161187f565b91946119266119076114d09360a0966118fa61034a9a9c9b999c6118f060c08a019460008b0152565b6020890190611852565b868203604088015261185b565b73ffffffffffffffffffffffffffffffffffffffff9099166060850152565b73ffffffffffffffffffffffffffffffffffffffff166080830152565b9050519061034a8261034c565b9060208282031261022b576102db91611943565b801515610336565b9050519061034a82611964565b9060208282031261022b576102db9161196c565b61199f61199a60026105d9565b6117c3565b6119a8306104a0565b6000916119dc826119c16119bb866105d9565b84611833565b9073ffffffffffffffffffffffffffffffffffffffff169052565b611a057f00000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab16104a0565b90611a17826119c16119bb60016105d9565b611a51610f787f000000000000000000000000c873fecbd354f5a56e00e710b90ef4201db2448d610f78611a4a87610b1e565b8288610df0565b63ac3893ba90611a6085610b1e565b90611a6e610f786006610ebc565b611a7788610c87565b904294833b1561022b57611ab18a9796611aa6948998948995611a9960405190565b9b8c9a8b998a9860e01b90565b8852600488016118c7565b03925af19081611e47575b50158314611ac957505050565b611ad6610f786006610ebc565b6351cff8d990803b1561022b57611afb918591611af260405190565b93849260e01b90565b825273ffffffffffffffffffffffffffffffffffffffff85166004830152602490829084905af18015610ff157611e2b575b506020611b4f6370a08231611b73611b4460405190565b958693849360e01b90565b835273ffffffffffffffffffffffffffffffffffffffff1660048301526024820190565b0381845afa908115610ff15761158e92600092611dfb575b50611c5e611c1c611b9a610717565b6115cc611c15611ba86105e6565b92611bfd611c0f6115a6611bcd611bbf8886610b99565b611bc7610878565b90610b99565b611c03611bf48d611bee8461158e670de0b6b3a76400009a611bee8c6105d9565b90611448565b611bfd876105d9565b9061148a565b9c8d98611bee876105d9565b916105d9565b8096611499565b92602063a9059cbb917f00000000000000000000000068467834722c31b5c07615ebd8c44cdf93b9ea13611c4f60405190565b94859283926116388760e01b90565b038189875af1908115610ff15760209261163892611de0575b50611cb17f0000000000000000000000001f3a7bb85397bdf0753dc576e6de09ab76c4e73095611ca660405190565b968794859460e01b90565b038187855af1918215610ff157611d0392611dc4575b50602063095ea7b37f0000000000000000000000000ff64211335a436c9c3c73321d015eac7075776192611cfa60405190565b94859260e01b90565b8252818781611d168988600484016114a6565b03925af1908115610ff157611d3492610f7892611d98575b506104a0565b90633bdc8a1f90823b1561022b57611d7092611d62858094611d5560405190565b9687958694859360e01b90565b835260048301526024820190565b03925af18015610ff157611d82575050565b8161034a92903d10611677576116698183610a68565b611db89060203d8111611dbd575b611db08183610a68565b810190611979565b611d2e565b503d611da6565b611ddb9060203d8111611dbd57611db08183610a68565b611cc7565b611df690843d8111611dbd57611db08183610a68565b611c77565b611e1d91925060203d8111611e24575b611e158183610a68565b810190611950565b9038611b8b565b503d611e0b565b611e4190843d8611611677576116698183610a68565b38611b2d565b611e5d90853d8711611677576116698183610a68565b38611abc56fe60a0604052346100325761001233608052565b6040516104586100388239608051818181607a01526102b5015261045890f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8063117803e314610032576351cff8d903610042576100f6565b610065565b600091031261004257565b600080fd5b73ffffffffffffffffffffffffffffffffffffffff1690565b90565b565b3461004257610075366004610037565b6040517f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168152602090f35b73ffffffffffffffffffffffffffffffffffffffff81165b0361004257565b90503590610063826100b6565b9060208282031261004257610060916100d5565b346100425761010e6101093660046100e2565b6102a8565b604051005b1561011a57565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4f6e6c79206f776e65722063616e2077697468647261772066756e64730000006044820152606490fd5b6100476100606100609273ffffffffffffffffffffffffffffffffffffffff1690565b61006090610179565b6100609061019c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810190811067ffffffffffffffff82111761021d57604052565b6101ae565b806100ce565b9050519061006382610222565b906020828203126100425761006091610228565b6040513d6000823e3d90fd5b8015156100ce565b9050519061006382610255565b90602082820312610042576100609161025d565b73ffffffffffffffffffffffffffffffffffffffff90911681526040810192916100639160200152565b61031a61031533926103157f00000000000000000000000000000000000000000000000000000000000000009461030f6102f58773ffffffffffffffffffffffffffffffffffffffff1690565b9173ffffffffffffffffffffffffffffffffffffffff1690565b14610113565b6101a5565b906370a0823190602061034761032f306101a5565b9361036b61033c60405190565b958693849360e01b90565b835273ffffffffffffffffffffffffffffffffffffffff1660048301526024820190565b0381865afa9182156103ed576000926103f2575b50602091926103a7600063a9059cbb6103b261039a60405190565b9788968795869460e01b90565b84526004840161027e565b03925af180156103ed576103c35750565b6103e39060203d81116103e6575b6103db81836101dd565b81019061026a565b50565b503d6103d1565b610249565b6020925061041590833d811161041b575b61040d81836101dd565b810190610235565b9161037f565b503d61040356fea264697066735822122057479fc24495856bd05abf8fd0e2829de76bf76eaeca2208b6a0d48a3b6f3e9c64736f6c63430008120033a2646970667358221220063757ddfd6f2264f47cc4dbb57cb88969c2a0dd018ab1c644045358bbcab67964736f6c63430008120033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab1000000000000000000000000c873fecbd354f5a56e00e710b90ef4201db2448d0000000000000000000000000ff64211335a436c9c3c73321d015eac707577610000000000000000000000008e0fec293f5d1e8922da0f62ab936b4a18f052d30000000000000000000000001f3a7bb85397bdf0753dc576e6de09ab76c4e73000000000000000000000000068467834722c31b5c07615ebd8c44cdf93b9ea13
-----Decoded View---------------
Arg [0] : _weth (address): 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1
Arg [1] : _dexSwapRouter (address): 0xc873fEcbd354f5A56E00E710B90EF4201db2448d
Arg [2] : _stakingPool (address): 0x0Ff64211335A436C9C3c73321d015Eac70757761
Arg [3] : _airdropPool (address): 0x8e0feC293f5d1e8922Da0F62Ab936B4A18F052d3
Arg [4] : _racePool (address): 0x1F3a7bb85397BdF0753dC576E6De09Ab76c4E730
Arg [5] : _dev (address): 0x68467834722c31b5C07615ebd8c44CDF93B9Ea13
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 00000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab1
Arg [1] : 000000000000000000000000c873fecbd354f5a56e00e710b90ef4201db2448d
Arg [2] : 0000000000000000000000000ff64211335a436c9c3c73321d015eac70757761
Arg [3] : 0000000000000000000000008e0fec293f5d1e8922da0f62ab936b4a18f052d3
Arg [4] : 0000000000000000000000001f3a7bb85397bdf0753dc576e6de09ab76c4e730
Arg [5] : 00000000000000000000000068467834722c31b5c07615ebd8c44cdf93b9ea13
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.