Source Code
Latest 25 from a total of 26 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 17386509 | 1017 days ago | IN | 0 ETH | 0.01509311 | ||||
| Transfer | 17386500 | 1017 days ago | IN | 0 ETH | 0.01566972 | ||||
| Transfer | 17386490 | 1017 days ago | IN | 0 ETH | 0.01350642 | ||||
| Transfer | 17386485 | 1017 days ago | IN | 0 ETH | 0.01359568 | ||||
| Transfer | 17386465 | 1017 days ago | IN | 0 ETH | 0.01314867 | ||||
| Transfer | 17386463 | 1017 days ago | IN | 0 ETH | 0.01298949 | ||||
| Transfer | 17386459 | 1017 days ago | IN | 0 ETH | 0.01392507 | ||||
| Transfer | 17386456 | 1017 days ago | IN | 0 ETH | 0.01405122 | ||||
| Claim | 17386455 | 1017 days ago | IN | 0 ETH | 0.01436617 | ||||
| Transfer | 17386453 | 1017 days ago | IN | 0 ETH | 0.01410766 | ||||
| Transfer | 17386447 | 1017 days ago | IN | 0 ETH | 0.01499612 | ||||
| Transfer | 17386447 | 1017 days ago | IN | 0 ETH | 0.01499612 | ||||
| Transfer | 17386442 | 1017 days ago | IN | 0 ETH | 0.01470923 | ||||
| Transfer | 17386440 | 1017 days ago | IN | 0 ETH | 0.01463779 | ||||
| Transfer | 17386438 | 1017 days ago | IN | 0 ETH | 0.01499286 | ||||
| Transfer | 17386436 | 1017 days ago | IN | 0 ETH | 0.01512225 | ||||
| Transfer | 17386434 | 1017 days ago | IN | 0 ETH | 0.01524365 | ||||
| Transfer | 17386421 | 1017 days ago | IN | 0 ETH | 0.01566035 | ||||
| Transfer | 17386419 | 1017 days ago | IN | 0 ETH | 0.01601084 | ||||
| Transfer | 17386041 | 1017 days ago | IN | 0 ETH | 0.00080814 | ||||
| Transfer | 17383535 | 1018 days ago | IN | 0.0000001 ETH | 0.0005509 | ||||
| Set Start Time | 17382634 | 1018 days ago | IN | 0 ETH | 0.00122268 | ||||
| Transfer | 17379516 | 1018 days ago | IN | 0 ETH | 0.00101133 | ||||
| Transfer | 17379461 | 1018 days ago | IN | 0 ETH | 0.0011486 | ||||
| Transfer | 17379325 | 1018 days ago | IN | 0 ETH | 0.00124244 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
GetLollipop
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity Standard Json-Input format)
/**
* Airdrop Contract of LollipopCoin($LOLLI)
*
* Total supply of LOLLI: 420.69 trillion
* Allocation:
* [5%] for initial LP on Uniswap
* [7%] for CEX listing
* [88%] for airdrop
*
* How to claim?
* [1] On first come, first served basis.
* [2] Send any amount of ethers (including ZERO) to this contract to claim free LOLLIs.
* [3] Airdrop amount per address will be reduced by 0.00069% after each claim.
*
* Website: https://lollipopcoin.org
* Twitter: https://twitter.com/lollipopcoineth
*
*/
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
contract GetLollipop is Ownable {
using SafeERC20 for IERC20;
using Address for address;
// LollipopCoin
IERC20 public immutable LollipopCoin;
// How long the airdrop will last
uint256 public constant AIRDROP_DURATION = 1 weeks;
// Start time of the airdrop
uint256 public startTime;
// Initial airdrop amount per address is 2.69 billion LOLLIs
uint256 public constant INITIAL_AIRDROP_AMOUNT = 2_690_000_000 ether;
// Minimum airdrop amount per address is 100 million LOLLIs
uint256 public constant MIN_AIRDROP_AMOUNT = 100_000_000 ether;
// Airdrop amount will be reduced by 0.00069% after each claim
uint256 public constant REDUCTION_RATE = 9_999_931;
uint256 public constant REDUCTION_BASE = 10_000_000;
// Current airdrop amount per address
uint256 public airdropAmount = INITIAL_AIRDROP_AMOUNT;
// Claimed count
uint256 public claimedCount;
// Claimed addresses
mapping(address => uint256) public claimed;
// Count of random recipients per claim
uint256 public randomRecipientCount = 9;
// Dead address
address private constant DEAD_ADDRESS = 0x000000000000000000000000000000000000dEaD;
// Modifier to check if the msg.sender can claim LOLLIs
modifier canClaim() {
require(active(), "GetLollipop: Airdrop is not active");
require(airdropAmount >= MIN_AIRDROP_AMOUNT, "GetLollipop: Airdrop is over");
require(LollipopCoin.balanceOf(address(this)) >= airdropAmount, "GetLollipop: Claimed out");
require(msg.sender == tx.origin && !msg.sender.isContract(), "GetLollipop: No contract allowed");
require(claimed[msg.sender] == 0, "GetLollipop: Already claimed");
_;
}
constructor(IERC20 _LollipopCoin) {
LollipopCoin = _LollipopCoin;
}
// Send any amount of ethers to this contract to claim LOLLIs
receive() external payable {
claim();
}
// Claim LOLLIs
function claim() public canClaim {
LollipopCoin.safeTransfer(msg.sender, airdropAmount);
claimed[msg.sender] = airdropAmount;
randomAirdrop(airdropAmount / 10000, claimedCount++);
airdropAmount = airdropAmount * REDUCTION_RATE / REDUCTION_BASE;
}
// Airdrop LOLLIs to random addresses after each claim
function randomAirdrop(uint256 amount, uint256 nonce) private {
address recipient;
for (uint256 i = 0; i < randomRecipientCount; i++) {
recipient = address(uint160(uint256(keccak256(abi.encodePacked(block.timestamp, msg.sender, nonce + i)))));
LollipopCoin.safeTransfer(recipient, amount);
}
}
// Returns true if currently in the airdrop period
function active() public view returns (bool) {
return startTime != 0 && block.timestamp >= startTime && block.timestamp < startTime + AIRDROP_DURATION;
}
// Set the start time
function setStartTime(uint256 _startTime) external onlyOwner {
require(startTime == 0 || startTime > block.timestamp, "GetLollipop: Start time cannot be changed");
require(_startTime > block.timestamp, "GetLollipop: Start time must be in the future");
startTime = _startTime;
}
// Pause the airdrop in case of emergency
function emergencyPause() external onlyOwner {
require(active(), "GetLollipop: Airdrop is not active");
startTime = 0;
}
// Update the count of random recipients per claim
function updateRandomRecipientCount(uint256 _randomRecipientCount) external onlyOwner {
randomRecipientCount = _randomRecipientCount;
}
// Burn all remaining LOLLIs in this contract after the end of the airdrop
function burnRemaining() external onlyOwner {
require(startTime != 0 && block.timestamp > startTime + AIRDROP_DURATION, "GetLollipop: Airdrop is not ended");
LollipopCoin.safeTransfer(DEAD_ADDRESS, LollipopCoin.balanceOf(address(this)));
}
// Recover any ERC20 token sent to this contract by mistake except LollipopCoin
function recoverERC20(IERC20 token) external onlyOwner {
require(token != LollipopCoin, "GetLollipop: Cannot recover LollipopCoin");
require(token.balanceOf(address(this)) > 0, "GetLollipop: No tokens to recover");
token.safeTransfer(owner(), token.balanceOf(address(this)));
}
// Withdraw all ethers from this contract
function withdrawEther() external onlyOwner {
require(address(this).balance > 0, "GetLollipop: No ethers to withdraw");
payable(owner()).transfer(address(this).balance);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/utils/SafeERC20.sol)
pragma solidity ^0.8.0;
import "../IERC20.sol";
import "../extensions/draft-IERC20Permit.sol";
import "../../../utils/Address.sol";
/**
* @title SafeERC20
* @dev Wrappers around ERC20 operations that throw on failure (when the token
* contract returns false). Tokens that return no value (and instead revert or
* throw on failure) are also supported, non-reverting calls are assumed to be
* successful.
* To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,
* which allows you to call the safe operations as `token.safeTransfer(...)`, etc.
*/
library SafeERC20 {
using Address for address;
function safeTransfer(
IERC20 token,
address to,
uint256 value
) internal {
_callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
}
function safeTransferFrom(
IERC20 token,
address from,
address to,
uint256 value
) internal {
_callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
}
/**
* @dev Deprecated. This function has issues similar to the ones found in
* {IERC20-approve}, and its usage is discouraged.
*
* Whenever possible, use {safeIncreaseAllowance} and
* {safeDecreaseAllowance} instead.
*/
function safeApprove(
IERC20 token,
address spender,
uint256 value
) internal {
// safeApprove should only be called when setting an initial allowance,
// or when resetting it to zero. To increase and decrease it, use
// 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
require(
(value == 0) || (token.allowance(address(this), spender) == 0),
"SafeERC20: approve from non-zero to non-zero allowance"
);
_callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
}
function safeIncreaseAllowance(
IERC20 token,
address spender,
uint256 value
) internal {
uint256 newAllowance = token.allowance(address(this), spender) + value;
_callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
}
function safeDecreaseAllowance(
IERC20 token,
address spender,
uint256 value
) internal {
unchecked {
uint256 oldAllowance = token.allowance(address(this), spender);
require(oldAllowance >= value, "SafeERC20: decreased allowance below zero");
uint256 newAllowance = oldAllowance - value;
_callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
}
}
function safePermit(
IERC20Permit token,
address owner,
address spender,
uint256 value,
uint256 deadline,
uint8 v,
bytes32 r,
bytes32 s
) internal {
uint256 nonceBefore = token.nonces(owner);
token.permit(owner, spender, value, deadline, v, r, s);
uint256 nonceAfter = token.nonces(owner);
require(nonceAfter == nonceBefore + 1, "SafeERC20: permit did not succeed");
}
/**
* @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement
* on the return value: the return value is optional (but if data is returned, it must not be false).
* @param token The token targeted by the call.
* @param data The call data (encoded using abi.encode or one of its variants).
*/
function _callOptionalReturn(IERC20 token, bytes memory data) private {
// We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since
// we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that
// the target address contains contract code and also asserts for success in the low-level call.
bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
if (returndata.length > 0) {
// Return data is optional
require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
}
}
}// 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 (last updated v4.7.0) (access/Ownable.sol)
pragma solidity ^0.8.0;
import "../utils/Context.sol";
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* By default, the owner account will be the one that deploys the contract. This
* can later be changed with {transferOwnership}.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor() {
_transferOwnership(_msgSender());
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
_checkOwner();
_;
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if the sender is not the owner.
*/
function _checkOwner() internal view virtual {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)
pragma solidity ^0.8.1;
/**
* @dev Collection of functions related to the address type
*/
library Address {
/**
* @dev Returns true if `account` is a contract.
*
* [IMPORTANT]
* ====
* It is unsafe to assume that an address for which this function returns
* false is an externally-owned account (EOA) and not a contract.
*
* Among others, `isContract` will return false for the following
* types of addresses:
*
* - an externally-owned account
* - a contract in construction
* - an address where a contract will be created
* - an address where a contract lived, but was destroyed
* ====
*
* [IMPORTANT]
* ====
* You shouldn't rely on `isContract` to protect against flash loan attacks!
*
* Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets
* like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract
* constructor.
* ====
*/
function isContract(address account) internal view returns (bool) {
// This method relies on extcodesize/address.code.length, which returns 0
// for contracts in construction, since the code is only stored at the end
// of the constructor execution.
return account.code.length > 0;
}
/**
* @dev Replacement for Solidity's `transfer`: sends `amount` wei to
* `recipient`, forwarding all available gas and reverting on errors.
*
* https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
* of certain opcodes, possibly making contracts go over the 2300 gas limit
* imposed by `transfer`, making them unable to receive funds via
* `transfer`. {sendValue} removes this limitation.
*
* https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
*
* IMPORTANT: because control is transferred to `recipient`, care must be
* taken to not create reentrancy vulnerabilities. Consider using
* {ReentrancyGuard} or the
* https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
*/
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, "Address: insufficient balance");
(bool success, ) = recipient.call{value: amount}("");
require(success, "Address: unable to send value, recipient may have reverted");
}
/**
* @dev Performs a Solidity function call using a low level `call`. A
* plain `call` is an unsafe replacement for a function call: use this
* function instead.
*
* If `target` reverts with a revert reason, it is bubbled up by this
* function (like regular Solidity function calls).
*
* Returns the raw returned data. To convert to the expected return value,
* use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
*
* Requirements:
*
* - `target` must be a contract.
* - calling `target` with `data` must not revert.
*
* _Available since v3.1._
*/
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, "Address: low-level call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
* `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but also transferring `value` wei to `target`.
*
* Requirements:
*
* - the calling contract must have an ETH balance of at least `value`.
* - the called Solidity function must be `payable`.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value
) internal returns (bytes memory) {
return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
/**
* @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
* with `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(address(this).balance >= value, "Address: insufficient balance for call");
(bool success, bytes memory returndata) = target.call{value: value}(data);
return verifyCallResultFromTarget(target, success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
return functionStaticCall(target, data, "Address: low-level static call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a static call.
*
* _Available since v3.3._
*/
function functionStaticCall(
address target,
bytes memory data,
string memory errorMessage
) internal view returns (bytes memory) {
(bool success, bytes memory returndata) = target.staticcall(data);
return verifyCallResultFromTarget(target, success, returndata, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
return functionDelegateCall(target, data, "Address: low-level delegate call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.4._
*/
function functionDelegateCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
(bool success, bytes memory returndata) = target.delegatecall(data);
return verifyCallResultFromTarget(target, success, returndata, errorMessage);
}
/**
* @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling
* the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract.
*
* _Available since v4.8._
*/
function verifyCallResultFromTarget(
address target,
bool success,
bytes memory returndata,
string memory errorMessage
) internal view returns (bytes memory) {
if (success) {
if (returndata.length == 0) {
// only check isContract if the call was successful and the return data is empty
// otherwise we already know that it was a contract
require(isContract(target), "Address: call to non-contract");
}
return returndata;
} else {
_revert(returndata, errorMessage);
}
}
/**
* @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the
* revert reason or using the provided one.
*
* _Available since v4.3._
*/
function verifyCallResult(
bool success,
bytes memory returndata,
string memory errorMessage
) internal pure returns (bytes memory) {
if (success) {
return returndata;
} else {
_revert(returndata, errorMessage);
}
}
function _revert(bytes memory returndata, string memory errorMessage) private pure {
// Look for revert reason and bubble it up if present
if (returndata.length > 0) {
// The easiest way to bubble the revert reason is using memory via assembly
/// @solidity memory-safe-assembly
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/draft-IERC20Permit.sol)
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in
* https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].
*
* Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by
* presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't
* need to send a transaction, and thus is not required to hold Ether at all.
*/
interface IERC20Permit {
/**
* @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,
* given ``owner``'s signed approval.
*
* IMPORTANT: The same issues {IERC20-approve} has related to transaction
* ordering also apply here.
*
* Emits an {Approval} event.
*
* Requirements:
*
* - `spender` cannot be the zero address.
* - `deadline` must be a timestamp in the future.
* - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`
* over the EIP712-formatted function arguments.
* - the signature must use ``owner``'s current nonce (see {nonces}).
*
* For more information on the signature format, see the
* https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP
* section].
*/
function permit(
address owner,
address spender,
uint256 value,
uint256 deadline,
uint8 v,
bytes32 r,
bytes32 s
) external;
/**
* @dev Returns the current nonce for `owner`. This value must be
* included whenever a signature is generated for {permit}.
*
* Every successful call to {permit} increases ``owner``'s nonce by one. This
* prevents a signature from being used multiple times.
*/
function nonces(address owner) external view returns (uint256);
/**
* @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.
*/
// solhint-disable-next-line func-name-mixedcase
function DOMAIN_SEPARATOR() external view returns (bytes32);
}// 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;
}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"contract IERC20","name":"_LollipopCoin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"AIRDROP_DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INITIAL_AIRDROP_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LollipopCoin","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_AIRDROP_AMOUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REDUCTION_BASE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REDUCTION_RATE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"active","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"airdropAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnRemaining","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimedCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emergencyPause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"randomRecipientCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"}],"name":"recoverERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_startTime","type":"uint256"}],"name":"setStartTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_randomRecipientCount","type":"uint256"}],"name":"updateRandomRecipientCount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60a06040526b08b11da8330558f5c20000006002556009600555348015610024575f80fd5b5060405161131c38038061131c833981016040819052610043916100ac565b61004c3361005d565b6001600160a01b03166080526100d9565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100bc575f80fd5b81516001600160a01b03811681146100d2575f80fd5b9392505050565b60805161120161011b5f395f818161018101528181610465015281816105eb0152818161088101528181610afe01528181610b710152610cda01526112015ff3fe608060405260043610610134575f3560e01c80637362377b116100a85780639f62562c1161006d5780639f62562c14610326578063c08fa1a41461033b578063c884ef8314610350578063d6a780041461037b578063f2fde38b1461038f578063fc2ea8a5146103ae575f80fd5b80637362377b146102ac57806378e97925146102c05780638da5cb5b146102d55780639ae5f958146102f15780639e8c708e14610307575f80fd5b80632f9ffedb116100f95780632f9ffedb1461021d5780633e0a322d1461023b5780634e71d92d1461025a57806351858e271461026e57806361f582ef14610282578063715018a614610298575f80fd5b806302fb0c5e14610147578063041deaa11461017057806309bdf4d2146101bb57806317fd045f146101da578063190e011d146101fe575f80fd5b36610143576101416103c3565b005b5f80fd5b348015610152575f80fd5b5061015b610674565b60405190151581526020015b60405180910390f35b34801561017b575f80fd5b506101a37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610167565b3480156101c6575f80fd5b506101416101d536600461101c565b6106a9565b3480156101e5575f80fd5b506101f062093a8081565b604051908152602001610167565b348015610209575f80fd5b506101f06b08b11da8330558f5c200000081565b348015610228575f80fd5b506101f06a52b7d2dcc80cd2e400000081565b348015610246575f80fd5b5061014161025536600461101c565b6106b6565b348015610265575f80fd5b506101416103c3565b348015610279575f80fd5b50610141610796565b34801561028d575f80fd5b506101f06298968081565b3480156102a3575f80fd5b506101416107c8565b3480156102b7575f80fd5b506101416107db565b3480156102cb575f80fd5b506101f060015481565b3480156102e0575f80fd5b505f546001600160a01b03166101a3565b3480156102fc575f80fd5b506101f06298963b81565b348015610312575f80fd5b50610141610321366004611047565b610877565b348015610331575f80fd5b506101f060055481565b348015610346575f80fd5b506101f060035481565b34801561035b575f80fd5b506101f061036a366004611047565b60046020525f908152604090205481565b348015610386575f80fd5b50610141610a5b565b34801561039a575f80fd5b506101416103a9366004611047565b610b98565b3480156103b9575f80fd5b506101f060025481565b6103cb610674565b6103f05760405162461bcd60e51b81526004016103e790611069565b60405180910390fd5b6a52b7d2dcc80cd2e4000000600254101561044d5760405162461bcd60e51b815260206004820152601c60248201527f4765744c6f6c6c69706f703a2041697264726f70206973206f7665720000000060448201526064016103e7565b6002546040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156104b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104d691906110ab565b10156105245760405162461bcd60e51b815260206004820152601860248201527f4765744c6f6c6c69706f703a20436c61696d6564206f7574000000000000000060448201526064016103e7565b33321480156105325750333b155b61057e5760405162461bcd60e51b815260206004820181905260248201527f4765744c6f6c6c69706f703a204e6f20636f6e747261637420616c6c6f77656460448201526064016103e7565b335f90815260046020526040902054156105da5760405162461bcd60e51b815260206004820152601c60248201527f4765744c6f6c6c69706f703a20416c726561647920636c61696d65640000000060448201526064016103e7565b600254610613906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016903390610c0e565b600254335f9081526004602052604090208190556106509061063890612710906110d6565b60038054905f610647836110f5565b91905055610c65565b629896806298963b600254610665919061110d565b61066f91906110d6565b600255565b5f6001545f1415801561068957506001544210155b80156106a4575062093a806001546106a1919061112a565b42105b905090565b6106b1610d19565b600555565b6106be610d19565b60015415806106ce575042600154115b61072c5760405162461bcd60e51b815260206004820152602960248201527f4765744c6f6c6c69706f703a2053746172742074696d652063616e6e6f742062604482015268194818da185b99d95960ba1b60648201526084016103e7565b4281116107915760405162461bcd60e51b815260206004820152602d60248201527f4765744c6f6c6c69706f703a2053746172742074696d65206d7573742062652060448201526c696e207468652066757475726560981b60648201526084016103e7565b600155565b61079e610d19565b6107a6610674565b6107c25760405162461bcd60e51b81526004016103e790611069565b5f600155565b6107d0610d19565b6107d95f610d72565b565b6107e3610d19565b5f471161083d5760405162461bcd60e51b815260206004820152602260248201527f4765744c6f6c6c69706f703a204e6f2065746865727320746f20776974686472604482015261617760f01b60648201526084016103e7565b5f80546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610874573d5f803e3d5ffd5b50565b61087f610d19565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316036109115760405162461bcd60e51b815260206004820152602860248201527f4765744c6f6c6c69706f703a2043616e6e6f74207265636f766572204c6f6c6c60448201526734b837b821b7b4b760c11b60648201526084016103e7565b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610955573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097991906110ab565b116109d05760405162461bcd60e51b815260206004820152602160248201527f4765744c6f6c6c69706f703a204e6f20746f6b656e7320746f207265636f76656044820152603960f91b60648201526084016103e7565b6108746109e45f546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610a26573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a4a91906110ab565b6001600160a01b0384169190610c0e565b610a63610d19565b60015415801590610a83575062093a80600154610a80919061112a565b42115b610ad95760405162461bcd60e51b815260206004820152602160248201527f4765744c6f6c6c69706f703a2041697264726f70206973206e6f7420656e64656044820152601960fa1b60648201526084016103e7565b6040516370a0823160e01b81523060048201526107d99061dead906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610b43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6791906110ab565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190610c0e565b610ba0610d19565b6001600160a01b038116610c055760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103e7565b61087481610d72565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610c60908490610dc1565b505050565b5f805b600554811015610d13574233610c7e838661112a565b604051602001610cb39392919092835260609190911b6bffffffffffffffffffffffff19166020830152603482015260540190565b60408051601f1981840301815291905280516020909101209150610d016001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168386610c0e565b80610d0b816110f5565b915050610c68565b50505050565b5f546001600160a01b031633146107d95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103e7565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f610e15826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610e929092919063ffffffff16565b805190915015610c605780806020019051810190610e33919061113d565b610c605760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016103e7565b6060610ea084845f85610ea8565b949350505050565b606082471015610f095760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016103e7565b5f80866001600160a01b03168587604051610f24919061117e565b5f6040518083038185875af1925050503d805f8114610f5e576040519150601f19603f3d011682016040523d82523d5f602084013e610f63565b606091505b5091509150610f7487838387610f7f565b979650505050505050565b60608315610fed5782515f03610fe6576001600160a01b0385163b610fe65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103e7565b5081610ea0565b610ea083838151156110025781518083602001fd5b8060405162461bcd60e51b81526004016103e79190611199565b5f6020828403121561102c575f80fd5b5035919050565b6001600160a01b0381168114610874575f80fd5b5f60208284031215611057575f80fd5b813561106281611033565b9392505050565b60208082526022908201527f4765744c6f6c6c69706f703a2041697264726f70206973206e6f742061637469604082015261766560f01b606082015260800190565b5f602082840312156110bb575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b5f826110f057634e487b7160e01b5f52601260045260245ffd5b500490565b5f60018201611106576111066110c2565b5060010190565b8082028115828204841417611124576111246110c2565b92915050565b80820180821115611124576111246110c2565b5f6020828403121561114d575f80fd5b81518015158114611062575f80fd5b5f5b8381101561117657818101518382015260200161115e565b50505f910152565b5f825161118f81846020870161115c565b9190910192915050565b602081525f82518060208401526111b781604085016020870161115c565b601f01601f1916919091016040019291505056fea26469706673582212201d037992cc597a08419feb961fa79000b0e2427a6764c6b43b1737d16fa1449b64736f6c63430008140033000000000000000000000000d757cfcb51dc8f18ba30cc7d00ba0257ef5ca558
Deployed Bytecode
0x608060405260043610610134575f3560e01c80637362377b116100a85780639f62562c1161006d5780639f62562c14610326578063c08fa1a41461033b578063c884ef8314610350578063d6a780041461037b578063f2fde38b1461038f578063fc2ea8a5146103ae575f80fd5b80637362377b146102ac57806378e97925146102c05780638da5cb5b146102d55780639ae5f958146102f15780639e8c708e14610307575f80fd5b80632f9ffedb116100f95780632f9ffedb1461021d5780633e0a322d1461023b5780634e71d92d1461025a57806351858e271461026e57806361f582ef14610282578063715018a614610298575f80fd5b806302fb0c5e14610147578063041deaa11461017057806309bdf4d2146101bb57806317fd045f146101da578063190e011d146101fe575f80fd5b36610143576101416103c3565b005b5f80fd5b348015610152575f80fd5b5061015b610674565b60405190151581526020015b60405180910390f35b34801561017b575f80fd5b506101a37f000000000000000000000000d757cfcb51dc8f18ba30cc7d00ba0257ef5ca55881565b6040516001600160a01b039091168152602001610167565b3480156101c6575f80fd5b506101416101d536600461101c565b6106a9565b3480156101e5575f80fd5b506101f062093a8081565b604051908152602001610167565b348015610209575f80fd5b506101f06b08b11da8330558f5c200000081565b348015610228575f80fd5b506101f06a52b7d2dcc80cd2e400000081565b348015610246575f80fd5b5061014161025536600461101c565b6106b6565b348015610265575f80fd5b506101416103c3565b348015610279575f80fd5b50610141610796565b34801561028d575f80fd5b506101f06298968081565b3480156102a3575f80fd5b506101416107c8565b3480156102b7575f80fd5b506101416107db565b3480156102cb575f80fd5b506101f060015481565b3480156102e0575f80fd5b505f546001600160a01b03166101a3565b3480156102fc575f80fd5b506101f06298963b81565b348015610312575f80fd5b50610141610321366004611047565b610877565b348015610331575f80fd5b506101f060055481565b348015610346575f80fd5b506101f060035481565b34801561035b575f80fd5b506101f061036a366004611047565b60046020525f908152604090205481565b348015610386575f80fd5b50610141610a5b565b34801561039a575f80fd5b506101416103a9366004611047565b610b98565b3480156103b9575f80fd5b506101f060025481565b6103cb610674565b6103f05760405162461bcd60e51b81526004016103e790611069565b60405180910390fd5b6a52b7d2dcc80cd2e4000000600254101561044d5760405162461bcd60e51b815260206004820152601c60248201527f4765744c6f6c6c69706f703a2041697264726f70206973206f7665720000000060448201526064016103e7565b6002546040516370a0823160e01b81523060048201527f000000000000000000000000d757cfcb51dc8f18ba30cc7d00ba0257ef5ca5586001600160a01b0316906370a0823190602401602060405180830381865afa1580156104b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104d691906110ab565b10156105245760405162461bcd60e51b815260206004820152601860248201527f4765744c6f6c6c69706f703a20436c61696d6564206f7574000000000000000060448201526064016103e7565b33321480156105325750333b155b61057e5760405162461bcd60e51b815260206004820181905260248201527f4765744c6f6c6c69706f703a204e6f20636f6e747261637420616c6c6f77656460448201526064016103e7565b335f90815260046020526040902054156105da5760405162461bcd60e51b815260206004820152601c60248201527f4765744c6f6c6c69706f703a20416c726561647920636c61696d65640000000060448201526064016103e7565b600254610613906001600160a01b037f000000000000000000000000d757cfcb51dc8f18ba30cc7d00ba0257ef5ca55816903390610c0e565b600254335f9081526004602052604090208190556106509061063890612710906110d6565b60038054905f610647836110f5565b91905055610c65565b629896806298963b600254610665919061110d565b61066f91906110d6565b600255565b5f6001545f1415801561068957506001544210155b80156106a4575062093a806001546106a1919061112a565b42105b905090565b6106b1610d19565b600555565b6106be610d19565b60015415806106ce575042600154115b61072c5760405162461bcd60e51b815260206004820152602960248201527f4765744c6f6c6c69706f703a2053746172742074696d652063616e6e6f742062604482015268194818da185b99d95960ba1b60648201526084016103e7565b4281116107915760405162461bcd60e51b815260206004820152602d60248201527f4765744c6f6c6c69706f703a2053746172742074696d65206d7573742062652060448201526c696e207468652066757475726560981b60648201526084016103e7565b600155565b61079e610d19565b6107a6610674565b6107c25760405162461bcd60e51b81526004016103e790611069565b5f600155565b6107d0610d19565b6107d95f610d72565b565b6107e3610d19565b5f471161083d5760405162461bcd60e51b815260206004820152602260248201527f4765744c6f6c6c69706f703a204e6f2065746865727320746f20776974686472604482015261617760f01b60648201526084016103e7565b5f80546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610874573d5f803e3d5ffd5b50565b61087f610d19565b7f000000000000000000000000d757cfcb51dc8f18ba30cc7d00ba0257ef5ca5586001600160a01b0316816001600160a01b0316036109115760405162461bcd60e51b815260206004820152602860248201527f4765744c6f6c6c69706f703a2043616e6e6f74207265636f766572204c6f6c6c60448201526734b837b821b7b4b760c11b60648201526084016103e7565b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610955573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097991906110ab565b116109d05760405162461bcd60e51b815260206004820152602160248201527f4765744c6f6c6c69706f703a204e6f20746f6b656e7320746f207265636f76656044820152603960f91b60648201526084016103e7565b6108746109e45f546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610a26573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a4a91906110ab565b6001600160a01b0384169190610c0e565b610a63610d19565b60015415801590610a83575062093a80600154610a80919061112a565b42115b610ad95760405162461bcd60e51b815260206004820152602160248201527f4765744c6f6c6c69706f703a2041697264726f70206973206e6f7420656e64656044820152601960fa1b60648201526084016103e7565b6040516370a0823160e01b81523060048201526107d99061dead906001600160a01b037f000000000000000000000000d757cfcb51dc8f18ba30cc7d00ba0257ef5ca55816906370a0823190602401602060405180830381865afa158015610b43573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6791906110ab565b6001600160a01b037f000000000000000000000000d757cfcb51dc8f18ba30cc7d00ba0257ef5ca558169190610c0e565b610ba0610d19565b6001600160a01b038116610c055760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103e7565b61087481610d72565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610c60908490610dc1565b505050565b5f805b600554811015610d13574233610c7e838661112a565b604051602001610cb39392919092835260609190911b6bffffffffffffffffffffffff19166020830152603482015260540190565b60408051601f1981840301815291905280516020909101209150610d016001600160a01b037f000000000000000000000000d757cfcb51dc8f18ba30cc7d00ba0257ef5ca558168386610c0e565b80610d0b816110f5565b915050610c68565b50505050565b5f546001600160a01b031633146107d95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103e7565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f610e15826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610e929092919063ffffffff16565b805190915015610c605780806020019051810190610e33919061113d565b610c605760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016103e7565b6060610ea084845f85610ea8565b949350505050565b606082471015610f095760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016103e7565b5f80866001600160a01b03168587604051610f24919061117e565b5f6040518083038185875af1925050503d805f8114610f5e576040519150601f19603f3d011682016040523d82523d5f602084013e610f63565b606091505b5091509150610f7487838387610f7f565b979650505050505050565b60608315610fed5782515f03610fe6576001600160a01b0385163b610fe65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103e7565b5081610ea0565b610ea083838151156110025781518083602001fd5b8060405162461bcd60e51b81526004016103e79190611199565b5f6020828403121561102c575f80fd5b5035919050565b6001600160a01b0381168114610874575f80fd5b5f60208284031215611057575f80fd5b813561106281611033565b9392505050565b60208082526022908201527f4765744c6f6c6c69706f703a2041697264726f70206973206e6f742061637469604082015261766560f01b606082015260800190565b5f602082840312156110bb575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b5f826110f057634e487b7160e01b5f52601260045260245ffd5b500490565b5f60018201611106576111066110c2565b5060010190565b8082028115828204841417611124576111246110c2565b92915050565b80820180821115611124576111246110c2565b5f6020828403121561114d575f80fd5b81518015158114611062575f80fd5b5f5b8381101561117657818101518382015260200161115e565b50505f910152565b5f825161118f81846020870161115c565b9190910192915050565b602081525f82518060208401526111b781604085016020870161115c565b601f01601f1916919091016040019291505056fea26469706673582212201d037992cc597a08419feb961fa79000b0e2427a6764c6b43b1737d16fa1449b64736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000d757cfcb51dc8f18ba30cc7d00ba0257ef5ca558
-----Decoded View---------------
Arg [0] : _LollipopCoin (address): 0xD757CfcB51Dc8F18ba30cC7D00ba0257ef5CA558
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000d757cfcb51dc8f18ba30cc7d00ba0257ef5ca558
Deployed Bytecode Sourcemap
738:4606:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2665:7;:5;:7::i;:::-;738:4606;;;;;3458:165;;;;;;;;;;;;;:::i;:::-;;;179:14:7;;172:22;154:41;;142:2;127:18;3458:165:6;;;;;;;;860:36;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;384:32:7;;;366:51;;354:2;339:18;860:36:6;206:217:7;4213:147:6;;;;;;;;;;-1:-1:-1;4213:147:6;;;;;:::i;:::-;;:::i;941:50::-;;;;;;;;;;;;984:7;941:50;;;;;759:25:7;;;747:2;732:18;941:50:6;613:177:7;1126:68:6;;;;;;;;;;;;1175:19;1126:68;;1264:62;;;;;;;;;;;;1309:17;1264:62;;3655:305;;;;;;;;;;-1:-1:-1;3655:305:6;;;;;:::i;:::-;;:::i;2705:282::-;;;;;;;;;;;;;:::i;4012:140::-;;;;;;;;;;;;;:::i;1455:51::-;;;;;;;;;;;;1496:10;1455:51;;1831:101:0;;;;;;;;;;;;;:::i;5151:191:6:-;;;;;;;;;;;;;:::i;1030:24::-;;;;;;;;;;;;;;;;1201:85:0;;;;;;;;;;-1:-1:-1;1247:7:0;1273:6;-1:-1:-1;;;;;1273:6:0;1201:85;;1399:50:6;;;;;;;;;;;;1440:9;1399:50;;4794:305;;;;;;;;;;-1:-1:-1;4794:305:6;;;;;:::i;:::-;;:::i;1785:39::-;;;;;;;;;;;;;;;;1634:27;;;;;;;;;;;;;;;;1692:42;;;;;;;;;;-1:-1:-1;1692:42:6;;;;;:::i;:::-;;;;;;;;;;;;;;4445:259;;;;;;;;;;;;;:::i;2081:198:0:-;;;;;;;;;;-1:-1:-1;2081:198:0;;;;;:::i;:::-;;:::i;1554:53:6:-;;;;;;;;;;;;;;;;2705:282;2038:8;:6;:8::i;:::-;2030:55;;;;-1:-1:-1;;;2030:55:6;;;;;;;:::i;:::-;;;;;;;;;1309:17;2103:13;;:35;;2095:76;;;;-1:-1:-1;;;2095:76:6;;2286:2:7;2095:76:6;;;2268:21:7;2325:2;2305:18;;;2298:30;2364;2344:18;;;2337:58;2412:18;;2095:76:6;2084:352:7;2095:76:6;2230:13;;2189:37;;-1:-1:-1;;;2189:37:6;;2220:4;2189:37;;;366:51:7;2189:12:6;-1:-1:-1;;;;;2189:22:6;;;;339:18:7;;2189:37:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:54;;2181:91;;;;-1:-1:-1;;;2181:91:6;;2832:2:7;2181:91:6;;;2814:21:7;2871:2;2851:18;;;2844:30;2910:26;2890:18;;;2883:54;2954:18;;2181:91:6;2630:348:7;2181:91:6;2290:10;2304:9;2290:23;:51;;;;-1:-1:-1;2318:10:6;1465:19:4;:23;2290:51:6;2282:96;;;;-1:-1:-1;;;2282:96:6;;3185:2:7;2282:96:6;;;3167:21:7;;;3204:18;;;3197:30;3263:34;3243:18;;;3236:62;3315:18;;2282:96:6;2983:356:7;2282:96:6;2404:10;2396:19;;;;:7;:19;;;;;;:24;2388:65;;;;-1:-1:-1;;;2388:65:6;;3546:2:7;2388:65:6;;;3528:21:7;3585:2;3565:18;;;3558:30;3624;3604:18;;;3597:58;3672:18;;2388:65:6;3344:352:7;2388:65:6;2786:13:::1;::::0;2748:52:::1;::::0;-1:-1:-1;;;;;2748:12:6::1;:25;::::0;2774:10:::1;::::0;2748:25:::1;:52::i;:::-;2832:13;::::0;2818:10:::1;2810:19;::::0;;;:7:::1;:19;::::0;;;;:35;;;2855:52:::1;::::0;2869:21:::1;::::0;2885:5:::1;::::0;2869:21:::1;:::i;:::-;2892:12;:14:::0;;;:12:::1;:14;::::0;::::1;:::i;:::-;;;;;2855:13;:52::i;:::-;1496:10;1440:9;2933:13;;:30;;;;:::i;:::-;:47;;;;:::i;:::-;2917:13;:63:::0;2705:282::o;3458:165::-;3497:4;3520:9;;3533:1;3520:14;;:46;;;;;3557:9;;3538:15;:28;;3520:46;:96;;;;;984:7;3588:9;;:28;;;;:::i;:::-;3570:15;:46;3520:96;3513:103;;3458:165;:::o;4213:147::-;1094:13:0;:11;:13::i;:::-;4309:20:6::1;:44:::0;4213:147::o;3655:305::-;1094:13:0;:11;:13::i;:::-;3734:9:6::1;::::0;:14;;:45:::1;;;3764:15;3752:9;;:27;3734:45;3726:99;;;::::0;-1:-1:-1;;;3726:99:6;;4700:2:7;3726:99:6::1;::::0;::::1;4682:21:7::0;4739:2;4719:18;;;4712:30;4778:34;4758:18;;;4751:62;-1:-1:-1;;;4829:18:7;;;4822:39;4878:19;;3726:99:6::1;4498:405:7::0;3726:99:6::1;3856:15;3843:10;:28;3835:86;;;::::0;-1:-1:-1;;;3835:86:6;;5110:2:7;3835:86:6::1;::::0;::::1;5092:21:7::0;5149:2;5129:18;;;5122:30;5188:34;5168:18;;;5161:62;-1:-1:-1;;;5239:18:7;;;5232:43;5292:19;;3835:86:6::1;4908:409:7::0;3835:86:6::1;3931:9;:22:::0;3655:305::o;4012:140::-;1094:13:0;:11;:13::i;:::-;4075:8:6::1;:6;:8::i;:::-;4067:55;;;;-1:-1:-1::0;;;4067:55:6::1;;;;;;;:::i;:::-;4144:1;4132:9;:13:::0;4012:140::o;1831:101:0:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;5151:191:6:-;1094:13:0;:11;:13::i;:::-;5237:1:6::1;5213:21;:25;5205:72;;;::::0;-1:-1:-1;;;5205:72:6;;5524:2:7;5205:72:6::1;::::0;::::1;5506:21:7::0;5563:2;5543:18;;;5536:30;5602:34;5582:18;;;5575:62;-1:-1:-1;;;5653:18:7;;;5646:32;5695:19;;5205:72:6::1;5322:398:7::0;5205:72:6::1;1247:7:0::0;1273:6;;5287:48:6::1;::::0;-1:-1:-1;;;;;1273:6:0;;;;5313:21:6::1;5287:48:::0;::::1;;;::::0;5313:21;;5287:48;1247:7:0;5287:48:6;5313:21;1273:6:0;5287:48:6;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;5151:191::o:0;4794:305::-;1094:13:0;:11;:13::i;:::-;4876:12:6::1;-1:-1:-1::0;;;;;4867:21:6::1;:5;-1:-1:-1::0;;;;;4867:21:6::1;::::0;4859:74:::1;;;::::0;-1:-1:-1;;;4859:74:6;;5927:2:7;4859:74:6::1;::::0;::::1;5909:21:7::0;5966:2;5946:18;;;5939:30;6005:34;5985:18;;;5978:62;-1:-1:-1;;;6056:18:7;;;6049:38;6104:19;;4859:74:6::1;5725:404:7::0;4859:74:6::1;4951:30;::::0;-1:-1:-1;;;4951:30:6;;4975:4:::1;4951:30;::::0;::::1;366:51:7::0;4984:1:6::1;::::0;-1:-1:-1;;;;;4951:15:6;::::1;::::0;::::1;::::0;339:18:7;;4951:30:6::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:34;4943:80;;;::::0;-1:-1:-1;;;4943:80:6;;6336:2:7;4943:80:6::1;::::0;::::1;6318:21:7::0;6375:2;6355:18;;;6348:30;6414:34;6394:18;;;6387:62;-1:-1:-1;;;6465:18:7;;;6458:31;6506:19;;4943:80:6::1;6134:397:7::0;4943:80:6::1;5033:59;5052:7;1247::0::0;1273:6;-1:-1:-1;;;;;1273:6:0;;1201:85;5052:7:6::1;5061:30;::::0;-1:-1:-1;;;5061:30:6;;5085:4:::1;5061:30;::::0;::::1;366:51:7::0;-1:-1:-1;;;;;5061:15:6;::::1;::::0;::::1;::::0;339:18:7;;5061:30:6::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5033:18:6;::::1;::::0;:59;:18:::1;:59::i;4445:259::-:0;1094:13:0;:11;:13::i;:::-;4507:9:6::1;::::0;:14;;::::1;::::0;:64:::1;;;984:7;4543:9;;:28;;;;:::i;:::-;4525:15;:46;4507:64;4499:110;;;::::0;-1:-1:-1;;;4499:110:6;;6738:2:7;4499:110:6::1;::::0;::::1;6720:21:7::0;6777:2;6757:18;;;6750:30;6816:34;6796:18;;;6789:62;-1:-1:-1;;;6867:18:7;;;6860:31;6908:19;;4499:110:6::1;6536:397:7::0;4499:110:6::1;4659:37;::::0;-1:-1:-1;;;4659:37:6;;4690:4:::1;4659:37;::::0;::::1;366:51:7::0;4619:78:6::1;::::0;1891:42:::1;::::0;-1:-1:-1;;;;;4659:12:6::1;:22;::::0;::::1;::::0;339:18:7;;4659:37:6::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4619:12:6::1;:25;::::0;:78;:25:::1;:78::i;2081:198:0:-:0;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:0;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:0;;7140:2:7;2161:73:0::1;::::0;::::1;7122:21:7::0;7179:2;7159:18;;;7152:30;7218:34;7198:18;;;7191:62;-1:-1:-1;;;7269:18:7;;;7262:36;7315:19;;2161:73:0::1;6938:402:7::0;2161:73:0::1;2244:28;2263:8;2244:18;:28::i;763:205:3:-:0;902:58;;;-1:-1:-1;;;;;7537:32:7;;902:58:3;;;7519:51:7;7586:18;;;;7579:34;;;902:58:3;;;;;;;;;;7492:18:7;;;;902:58:3;;;;;;;;-1:-1:-1;;;;;902:58:3;-1:-1:-1;;;902:58:3;;;875:86;;895:5;;875:19;:86::i;:::-;763:205;;;:::o;3052:345:6:-;3124:17;;3151:240;3175:20;;3171:1;:24;3151:240;;;3279:15;3296:10;3308:9;3316:1;3308:5;:9;:::i;:::-;3262:56;;;;;;;;;7809:19:7;;;7866:2;7862:15;;;;-1:-1:-1;;7858:53:7;7853:2;7844:12;;7837:75;7937:2;7928:12;;7921:28;7974:2;7965:12;;7624:359;3262:56:6;;;;-1:-1:-1;;3262:56:6;;;;;;;;;3252:67;;3262:56;3252:67;;;;;-1:-1:-1;3336:44:6;-1:-1:-1;;;;;3336:12:6;:25;3252:67;3373:6;3336:25;:44::i;:::-;3197:3;;;;:::i;:::-;;;;3151:240;;;;3114:283;3052:345;;:::o;1359:130:0:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:0;719:10:5;1422:23:0;1414:68;;;;-1:-1:-1;;;1414:68:0;;8190:2:7;1414:68:0;;;8172:21:7;;;8209:18;;;8202:30;8268:34;8248:18;;;8241:62;8320:18;;1414:68:0;7988:356:7;2433:187:0;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:0;;;-1:-1:-1;;;;;;2541:17:0;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;3747:706:3:-;4166:23;4192:69;4220:4;4192:69;;;;;;;;;;;;;;;;;4200:5;-1:-1:-1;;;;;4192:27:3;;;:69;;;;;:::i;:::-;4275:17;;4166:95;;-1:-1:-1;4275:21:3;4271:176;;4370:10;4359:30;;;;;;;;;;;;:::i;:::-;4351:85;;;;-1:-1:-1;;;4351:85:3;;8833:2:7;4351:85:3;;;8815:21:7;8872:2;8852:18;;;8845:30;8911:34;8891:18;;;8884:62;-1:-1:-1;;;8962:18:7;;;8955:40;9012:19;;4351:85:3;8631:406:7;3873:223:4;4006:12;4037:52;4059:6;4067:4;4073:1;4076:12;4037:21;:52::i;:::-;4030:59;3873:223;-1:-1:-1;;;;3873:223:4:o;4960:446::-;5125:12;5182:5;5157:21;:30;;5149:81;;;;-1:-1:-1;;;5149:81:4;;9244:2:7;5149:81:4;;;9226:21:7;9283:2;9263:18;;;9256:30;9322:34;9302:18;;;9295:62;-1:-1:-1;;;9373:18:7;;;9366:36;9419:19;;5149:81:4;9042:402:7;5149:81:4;5241:12;5255:23;5282:6;-1:-1:-1;;;;;5282:11:4;5301:5;5308:4;5282:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5240:73;;;;5330:69;5357:6;5365:7;5374:10;5386:12;5330:26;:69::i;:::-;5323:76;4960:446;-1:-1:-1;;;;;;;4960:446:4:o;7466:628::-;7646:12;7674:7;7670:418;;;7701:10;:17;7722:1;7701:22;7697:286;;-1:-1:-1;;;;;1465:19:4;;;7908:60;;;;-1:-1:-1;;;7908:60:4;;10198:2:7;7908:60:4;;;10180:21:7;10237:2;10217:18;;;10210:30;10276:31;10256:18;;;10249:59;10325:18;;7908:60:4;9996:353:7;7908:60:4;-1:-1:-1;8003:10:4;7996:17;;7670:418;8044:33;8052:10;8064:12;8775:17;;:21;8771:379;;9003:10;8997:17;9059:15;9046:10;9042:2;9038:19;9031:44;8771:379;9126:12;9119:20;;-1:-1:-1;;;9119:20:4;;;;;;;;:::i;428:180:7:-;487:6;540:2;528:9;519:7;515:23;511:32;508:52;;;556:1;553;546:12;508:52;-1:-1:-1;579:23:7;;428:180;-1:-1:-1;428:180:7:o;1003:139::-;-1:-1:-1;;;;;1086:31:7;;1076:42;;1066:70;;1132:1;1129;1122:12;1147:269;1220:6;1273:2;1261:9;1252:7;1248:23;1244:32;1241:52;;;1289:1;1286;1279:12;1241:52;1328:9;1315:23;1347:39;1380:5;1347:39;:::i;:::-;1405:5;1147:269;-1:-1:-1;;;1147:269:7:o;1681:398::-;1883:2;1865:21;;;1922:2;1902:18;;;1895:30;1961:34;1956:2;1941:18;;1934:62;-1:-1:-1;;;2027:2:7;2012:18;;2005:32;2069:3;2054:19;;1681:398::o;2441:184::-;2511:6;2564:2;2552:9;2543:7;2539:23;2535:32;2532:52;;;2580:1;2577;2570:12;2532:52;-1:-1:-1;2603:16:7;;2441:184;-1:-1:-1;2441:184:7:o;3701:127::-;3762:10;3757:3;3753:20;3750:1;3743:31;3793:4;3790:1;3783:15;3817:4;3814:1;3807:15;3833:217;3873:1;3899;3889:132;;3943:10;3938:3;3934:20;3931:1;3924:31;3978:4;3975:1;3968:15;4006:4;4003:1;3996:15;3889:132;-1:-1:-1;4035:9:7;;3833:217::o;4055:135::-;4094:3;4115:17;;;4112:43;;4135:18;;:::i;:::-;-1:-1:-1;4182:1:7;4171:13;;4055:135::o;4195:168::-;4268:9;;;4299;;4316:15;;;4310:22;;4296:37;4286:71;;4337:18;;:::i;:::-;4195:168;;;;:::o;4368:125::-;4433:9;;;4454:10;;;4451:36;;;4467:18;;:::i;8349:277::-;8416:6;8469:2;8457:9;8448:7;8444:23;8440:32;8437:52;;;8485:1;8482;8475:12;8437:52;8517:9;8511:16;8570:5;8563:13;8556:21;8549:5;8546:32;8536:60;;8592:1;8589;8582:12;9449:250;9534:1;9544:113;9558:6;9555:1;9552:13;9544:113;;;9634:11;;;9628:18;9615:11;;;9608:39;9580:2;9573:10;9544:113;;;-1:-1:-1;;9691:1:7;9673:16;;9666:27;9449:250::o;9704:287::-;9833:3;9871:6;9865:13;9887:66;9946:6;9941:3;9934:4;9926:6;9922:17;9887:66;:::i;:::-;9969:16;;;;;9704:287;-1:-1:-1;;9704:287:7:o;10354:396::-;10503:2;10492:9;10485:21;10466:4;10535:6;10529:13;10578:6;10573:2;10562:9;10558:18;10551:34;10594:79;10666:6;10661:2;10650:9;10646:18;10641:2;10633:6;10629:15;10594:79;:::i;:::-;10734:2;10713:15;-1:-1:-1;;10709:29:7;10694:45;;;;10741:2;10690:54;;10354:396;-1:-1:-1;;10354:396:7:o
Swarm Source
ipfs://1d037992cc597a08419feb961fa79000b0e2427a6764c6b43b1737d16fa1449b
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.