Source Code
Overview
GLMR Balance
GLMR Value
$0.00Latest 25 from a total of 4,848 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Settle Game | 14025470 | 17 days ago | IN | 0 GLMR | 0.00398025 | ||||
| Settle Game | 14025373 | 17 days ago | IN | 0 GLMR | 0.00398025 | ||||
| Settle Game | 14025144 | 17 days ago | IN | 0 GLMR | 0.00398025 | ||||
| Settle Game | 14025038 | 17 days ago | IN | 0 GLMR | 0.00398025 | ||||
| Settle Game | 13745516 | 40 days ago | IN | 0 GLMR | 0.00398025 | ||||
| Settle Game | 13745499 | 40 days ago | IN | 0 GLMR | 0.00398025 | ||||
| Settle Game | 13705383 | 43 days ago | IN | 0 GLMR | 0.00398025 | ||||
| Settle Game | 13558421 | 55 days ago | IN | 0 GLMR | 0.00398025 | ||||
| Settle Game | 13474032 | 62 days ago | IN | 0 GLMR | 0.00398025 | ||||
| Settle Game | 13473935 | 63 days ago | IN | 0 GLMR | 0.00398025 | ||||
| Settle Game | 13473832 | 63 days ago | IN | 0 GLMR | 0.00398025 | ||||
| Settle Game | 13473736 | 63 days ago | IN | 0 GLMR | 0.00398025 | ||||
| Settle Game | 13463475 | 63 days ago | IN | 0 GLMR | 0.00398025 | ||||
| Settle Game | 13463178 | 63 days ago | IN | 0 GLMR | 0.00398025 | ||||
| Settle Game | 12914430 | 108 days ago | IN | 0 GLMR | 0.00398025 | ||||
| Settle Game | 12914124 | 108 days ago | IN | 0 GLMR | 0.00398025 | ||||
| Settle Game | 12913998 | 108 days ago | IN | 0 GLMR | 0.00398025 | ||||
| Settle Game | 12865078 | 112 days ago | IN | 0 GLMR | 0.00398025 | ||||
| Set Ticket Price | 12864638 | 112 days ago | IN | 0 GLMR | 0.001281 | ||||
| Settle Game | 12359871 | 151 days ago | IN | 0 GLMR | 0.00398025 | ||||
| Settle Game | 12359641 | 151 days ago | IN | 0 GLMR | 0.00398025 | ||||
| Settle Game | 12359556 | 151 days ago | IN | 0 GLMR | 0.00398025 | ||||
| Settle Game | 12359548 | 151 days ago | IN | 0 GLMR | 0.00398025 | ||||
| Set Ticket Price | 12359431 | 151 days ago | IN | 0 GLMR | 0.001281 | ||||
| Set Ticket Price | 12359423 | 151 days ago | IN | 0 GLMR | 0.001244 |
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 14146066 | 7 days ago | 0.01 GLMR | ||||
| 14146066 | 7 days ago | 0.01 GLMR | ||||
| 14025482 | 17 days ago | 0.01 GLMR | ||||
| 14025482 | 17 days ago | 0.01 GLMR | ||||
| 14025400 | 17 days ago | 0.01 GLMR | ||||
| 14025400 | 17 days ago | 0.01 GLMR | ||||
| 14025164 | 17 days ago | 0.01 GLMR | ||||
| 14025164 | 17 days ago | 0.01 GLMR | ||||
| 14025047 | 17 days ago | 0.01 GLMR | ||||
| 14025047 | 17 days ago | 0.01 GLMR | ||||
| 14024969 | 17 days ago | 0.01 GLMR | ||||
| 14024969 | 17 days ago | 0.01 GLMR | ||||
| 13745505 | 40 days ago | 0.01 GLMR | ||||
| 13745505 | 40 days ago | 0.01 GLMR | ||||
| 13745495 | 40 days ago | 0.01 GLMR | ||||
| 13745495 | 40 days ago | 0.01 GLMR | ||||
| 13705380 | 43 days ago | 0.01 GLMR | ||||
| 13705380 | 43 days ago | 0.01 GLMR | ||||
| 13558418 | 55 days ago | 0.01 GLMR | ||||
| 13558418 | 55 days ago | 0.01 GLMR | ||||
| 13558387 | 55 days ago | 0.01 GLMR | ||||
| 13558387 | 55 days ago | 0.01 GLMR | ||||
| 13473937 | 63 days ago | 0.01 GLMR | ||||
| 13473937 | 63 days ago | 0.01 GLMR | ||||
| 13473839 | 63 days ago | 0.01 GLMR |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
MoonDrop
Compiler Version
v0.8.30+commit.73712a01
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0
pragma solidity = 0.8.30;
import "@openzeppelin/contracts/access/Ownable2Step.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
/**************************************************
* @title MoonDrop
* @notice MoonDrop Game Contract
**************************************************/
contract MoonDrop is Ownable2Step {
// ========================================
// State Variables
// ========================================
/// @notice price of a ticket
uint256 public ticketPrice = 10 ether;
/// @notice game ID
uint256 public currentGame = 1;
/// @notice tournament ID
uint256 public currentTournament = 1;
/// @notice number of blocks for a tournament
uint256 private constant TOURNAMENT_DURATION = 100800;
/// @notice daily cap
uint256 private constant DAY_DURATION = 14400;
/// @notice operator address -> True
mapping(address => bool) private admin;
/// @notice N3MUS allowed addresses
mapping(address => bool) private n3musAllowed;
/// @notice treasury multisig
address public immutable multisig;
/// @notice non-reentrancy prevention
bool internal locked;
/// @notice track games played per player within block window
mapping(address => uint256) public playerGamesInWindow;
/// @notice track the starting block for each player's window
mapping(address => uint256) public playerWindowStart;
/// @notice players address -> free tickets
mapping(address => uint256) public players;
// ========================================
// Structs
// ========================================
struct Game {
address player;
uint256 score;
uint256 startBlock;
uint256 endBlock;
bool isOver;
}
struct Tournament {
uint256 startBlock;
uint256 endBlock;
bool isOver;
}
// ========================================
// Mappings
// ========================================
/// @notice game id -> game stats
mapping(uint256 => Game) public games;
/// @notice tournament id -> tournament stats
mapping(uint256 => Tournament) public tournaments;
// ========================================
// Constructor
// ========================================
constructor() Ownable(msg.sender) {
admin[0x1ccA7c8aF52c78938e3fc704E38fe94DFa7730A8] = true;
n3musAllowed[0x7E6652C87B46160601c8011ac430A3751F259227] = true;
multisig = 0x32d141703356113d8edbe8Bb6BFfD4d780e243F3;
tournaments[currentTournament] = Tournament(
block.number,
block.number + TOURNAMENT_DURATION,
false
);
}
// ========================================
// Modifiers
// ========================================
modifier onlyAdmin() {
require(admin[msg.sender], "Sender not authorized.");
_;
}
modifier onlyN3mus() {
require(n3musAllowed[msg.sender], "Not authorized");
_;
}
modifier noReentrancy() {
require(!locked, "No re-entrancy allowed");
locked = true;
_;
locked = false;
}
// ========================================
// Events
// ========================================
event GameEntered(address indexed player, uint256 indexed gameId);
event GameSettled(
address indexed player,
uint256 indexed gameId,
uint256 score
);
event TournamentSettled(
uint256 indexed tournamentId,
uint256 startBlock,
uint256 endBlock
);
event FreeTicketsGiven(address indexed player, uint256 amount);
// ========================================
// Public Functions
// ========================================
/**
* @notice Function use to initiate a game
* @dev Admin Required
*/
function enterGame() external payable noReentrancy {
require(
!tournaments[currentTournament].isOver,
"Tournament currently closed"
);
if (block.number >= playerWindowStart[msg.sender] + DAY_DURATION) {
playerGamesInWindow[msg.sender] = 0;
playerWindowStart[msg.sender] = block.number;
}
if (playerGamesInWindow[msg.sender] == 0) {
playerWindowStart[msg.sender] = block.number;
}
require(
playerGamesInWindow[msg.sender] < 5,
"Player has reached game limit for this window"
);
if (players[msg.sender] > 0) {
players[msg.sender]--;
} else {
require(
msg.value >= ticketPrice,
"Insufficient GLMR sent for ticket"
);
(bool success, ) = multisig.call{value: msg.value}("");
require(success, "Transfer failed");
}
playerGamesInWindow[msg.sender]++;
games[currentGame] = Game(msg.sender, 0, block.number, 0, false);
emit GameEntered(msg.sender, currentGame);
currentGame++;
}
// ========================================
// Admin Functions
// ========================================
/**
* @notice End a game
* @dev Admin Required
* @param gameId_ ID to set terminate
* @param score_ score of the game
*/
function settleGame(uint256 gameId_, uint256 score_) external onlyAdmin {
require(
games[gameId_].score == 0 &&
games[gameId_].endBlock == 0 &&
!games[gameId_].isOver,
"Game already saved"
);
games[gameId_].score = score_;
games[gameId_].endBlock = block.number;
games[gameId_].isOver = true;
emit GameSettled(games[gameId_].player, gameId_, score_);
}
// ========================================
// Owner Functions
// ========================================
/**
* @notice Used by core team to withdraw rewards
* @dev Owner required
* @param token_ token address to withdraw
* @param amount_ amount of tokens to withdraw
*/
function ownerWithdraw(
address token_,
uint256 amount_
) external payable onlyOwner {
if (token_ == address(0x0)) {
payable(msg.sender).transfer(amount_);
return;
}
(bool success, bytes memory data) = token_.call(
abi.encodeWithSelector(
IERC20.transfer.selector,
msg.sender,
amount_
)
);
require(
success && (data.length == 0 || abi.decode(data, (bool))),
"TRANSFER FAILED"
);
}
/**
* @notice Set a new ticket price
* @dev Owner required
* @param amount_ new amount
*/
function setTicketPrice(uint256 amount_) external onlyOwner {
ticketPrice = amount_;
}
/**
* @notice End the current tournament and start the new one
* @dev Admin Required
*/
function settleTournament() external onlyOwner {
require(!tournaments[currentTournament].isOver, "Tournament not over");
tournaments[currentTournament].isOver = true;
emit TournamentSettled(
currentTournament,
tournaments[currentTournament].startBlock,
block.number
);
tournaments[currentTournament + 1] = Tournament(
block.number,
block.number + TOURNAMENT_DURATION,
false
);
currentTournament++;
}
// ========================================
// N3MUS Functions
// ========================================
/**
* @notice Add free tickets to a player
* @dev Only N3MUS allowed addresses can call this
* @param player_ Address of the player to give tickets to
* @param amount_ Number of tickets to give
*/
function addFreeTickets(
address player_,
uint256 amount_
) external onlyN3mus {
require(player_ != address(0), "Invalid player address");
require(amount_ > 0, "Amount must be greater than 0");
players[player_] += amount_;
emit FreeTicketsGiven(player_, amount_);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.20;
/**
* @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 value of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the value of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves a `value` amount of 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 value) 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 a `value` amount of tokens 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 value) external returns (bool);
/**
* @dev Moves a `value` amount of tokens from `from` to `to` using the
* allowance mechanism. `value` 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 value) external returns (bool);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.1.0) (access/Ownable2Step.sol)
pragma solidity ^0.8.20;
import {Ownable} from "./Ownable.sol";
/**
* @dev Contract module which provides access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* This extension of the {Ownable} contract includes a two-step mechanism to transfer
* ownership, where the new owner must call {acceptOwnership} in order to replace the
* old one. This can help prevent common mistakes, such as transfers of ownership to
* incorrect accounts, or to contracts that are unable to interact with the
* permission system.
*
* The initial owner is specified at deployment time in the constructor for `Ownable`. This
* can later be changed with {transferOwnership} and {acceptOwnership}.
*
* This module is used through inheritance. It will make available all functions
* from parent (Ownable).
*/
abstract contract Ownable2Step is Ownable {
address private _pendingOwner;
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);
/**
* @dev Returns the address of the pending owner.
*/
function pendingOwner() public view virtual returns (address) {
return _pendingOwner;
}
/**
* @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.
* Can only be called by the current owner.
*
* Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.
*/
function transferOwnership(address newOwner) public virtual override onlyOwner {
_pendingOwner = newOwner;
emit OwnershipTransferStarted(owner(), newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.
* Internal function without access restriction.
*/
function _transferOwnership(address newOwner) internal virtual override {
delete _pendingOwner;
super._transferOwnership(newOwner);
}
/**
* @dev The new owner accepts the ownership transfer.
*/
function acceptOwnership() public virtual {
address sender = _msgSender();
if (pendingOwner() != sender) {
revert OwnableUnauthorizedAccount(sender);
}
_transferOwnership(sender);
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)
pragma solidity ^0.8.20;
import {Context} from "../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.
*
* The initial owner is set to the address provided by the deployer. 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;
/**
* @dev The caller account is not authorized to perform an operation.
*/
error OwnableUnauthorizedAccount(address account);
/**
* @dev The owner is not a valid owner account. (eg. `address(0)`)
*/
error OwnableInvalidOwner(address owner);
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the address provided by the deployer as the initial owner.
*/
constructor(address initialOwner) {
if (initialOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(initialOwner);
}
/**
* @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 {
if (owner() != _msgSender()) {
revert OwnableUnauthorizedAccount(_msgSender());
}
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby disabling 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 {
if (newOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_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 v5.0.1) (utils/Context.sol)
pragma solidity ^0.8.20;
/**
* @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;
}
function _contextSuffixLength() internal view virtual returns (uint256) {
return 0;
}
}{
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
}
},
"remappings": []
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"player","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FreeTicketsGiven","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"player","type":"address"},{"indexed":true,"internalType":"uint256","name":"gameId","type":"uint256"}],"name":"GameEntered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"player","type":"address"},{"indexed":true,"internalType":"uint256","name":"gameId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"score","type":"uint256"}],"name":"GameSettled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tournamentId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"startBlock","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endBlock","type":"uint256"}],"name":"TournamentSettled","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"player_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"addFreeTickets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentGame","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentTournament","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enterGame","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"games","outputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"uint256","name":"score","type":"uint256"},{"internalType":"uint256","name":"startBlock","type":"uint256"},{"internalType":"uint256","name":"endBlock","type":"uint256"},{"internalType":"bool","name":"isOver","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"multisig","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token_","type":"address"},{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"ownerWithdraw","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"playerGamesInWindow","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"playerWindowStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"players","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount_","type":"uint256"}],"name":"setTicketPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gameId_","type":"uint256"},{"internalType":"uint256","name":"score_","type":"uint256"}],"name":"settleGame","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"settleTournament","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ticketPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tournaments","outputs":[{"internalType":"uint256","name":"startBlock","type":"uint256"},{"internalType":"uint256","name":"endBlock","type":"uint256"},{"internalType":"bool","name":"isOver","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60a0604052678ac7230489e8000060025560016003556001600455348015610025575f5ffd5b50338061004b57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100548161014d565b507f5d330c9be7fa8bc7ae6b5bdd612913500411c9f2cd7fcd1ff6fe9d8b138e10be8054600160ff199182168117909255737e6652c87b46160601c8011ac430a3751f2592275f52600660209081527fe655f093958e8f7a36ae1a6612a3e1dbea0a13219bf37765aefa8a0a1c64d76c805490921690921790557332d141703356113d8edbe8bb6bffd4d780e243f3608052604080516060810190915243808252909182019061010890620189c0906101b8565b81525f60209182018190526004548152600c82526040908190208351815591830151600183015591909101516002909101805460ff19169115159190911790556101dd565b600180546001600160a01b031916905561016681610169565b50565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b808201808211156101d757634e487b7160e01b5f52601160045260245ffd5b92915050565b6080516110086101fc5f395f818161023e015261067001526110085ff3fe60806040526004361061011b575f3560e01c806379ba50971161009d578063d9c88e1411610062578063d9c88e1414610389578063e2eb41ff1461039c578063e30c3978146103c7578063f2fde38b146103e4578063f676d76614610403575f5ffd5b806379ba5097146102fb57806386e921781461030f5780638da5cb5b1461033a5780639ff9308814610356578063af37182114610375575f5ffd5b806336568bc1116100e357806336568bc11461020e5780634783c35b1461022d57806360b663bb14610278578063715018a61461028d5780637503e1b7146102a1575f5ffd5b8063117a5b901461011f5780631209b1f6146101ad57806315981650146101d0578063218bd577146101f15780632f50d6dc146101f9575b5f5ffd5b34801561012a575f5ffd5b50610174610139366004610ea9565b600b6020525f9081526040902080546001820154600283015460038401546004909401546001600160a01b0390931693919290919060ff1685565b604080516001600160a01b03909616865260208601949094529284019190915260608301521515608082015260a0015b60405180910390f35b3480156101b8575f5ffd5b506101c260025481565b6040519081526020016101a4565b3480156101db575f5ffd5b506101ef6101ea366004610ea9565b61042e565b005b6101ef61043b565b348015610204575f5ffd5b506101c260045481565b348015610219575f5ffd5b506101ef610228366004610edb565b610807565b348015610238575f5ffd5b506102607f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101a4565b348015610283575f5ffd5b506101c260035481565b348015610298575f5ffd5b506101ef610962565b3480156102ac575f5ffd5b506102de6102bb366004610ea9565b600c6020525f908152604090208054600182015460029092015490919060ff1683565b6040805193845260208401929092521515908201526060016101a4565b348015610306575f5ffd5b506101ef610975565b34801561031a575f5ffd5b506101c2610329366004610f03565b60096020525f908152604090205481565b348015610345575f5ffd5b505f546001600160a01b0316610260565b348015610361575f5ffd5b506101ef610370366004610f23565b6109b9565b348015610380575f5ffd5b506101ef610b09565b6101ef610397366004610edb565b610c62565b3480156103a7575f5ffd5b506101c26103b6366004610f03565b600a6020525f908152604090205481565b3480156103d2575f5ffd5b506001546001600160a01b0316610260565b3480156103ef575f5ffd5b506101ef6103fe366004610f03565b610daa565b34801561040e575f5ffd5b506101c261041d366004610f03565b60086020525f908152604090205481565b610436610e1a565b600255565b60075460ff161561048c5760405162461bcd60e51b8152602060048201526016602482015275139bc81c994b595b9d1c985b98de48185b1b1bddd95960521b60448201526064015b60405180910390fd5b6007805460ff191660011790556004545f908152600c602052604090206002015460ff16156104fd5760405162461bcd60e51b815260206004820152601b60248201527f546f75726e616d656e742063757272656e746c7920636c6f73656400000000006044820152606401610483565b335f908152600960205260409020546105199061384090610f57565b431061053e57335f908152600860209081526040808320839055600990915290204390555b335f90815260086020526040812054900361056557335f9081526009602052604090204390555b335f908152600860205260409020546005116105d95760405162461bcd60e51b815260206004820152602d60248201527f506c617965722068617320726561636865642067616d65206c696d697420666f60448201526c7220746869732077696e646f7760981b6064820152608401610483565b335f908152600a60205260409020541561061157335f908152600a6020526040812080549161060783610f70565b9190505550610720565b60025434101561066d5760405162461bcd60e51b815260206004820152602160248201527f496e73756666696369656e7420474c4d522073656e7420666f72207469636b656044820152601d60fa1b6064820152608401610483565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316346040515f6040518083038185875af1925050503d805f81146106d6576040519150601f19603f3d011682016040523d82523d5f602084013e6106db565b606091505b505090508061071e5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610483565b505b335f90815260086020526040812080549161073a83610f85565b90915550506040805160a081018252338082525f6020808401828152438587019081526060860184815260808701858152600380548752600b909552888620975188546001600160a01b0319166001600160a01b0390911617885592516001880155905160028701555185830155516004909401805460ff1916941515949094179093559154925190917faf81b0671964b1f6f90c9bd2d4f0ba517fe019f93622dbdca8af37873a234e0c91a360038054905f6107f683610f85565b90915550506007805460ff19169055565b335f9081526006602052604090205460ff166108565760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610483565b6001600160a01b0382166108a55760405162461bcd60e51b8152602060048201526016602482015275496e76616c696420706c61796572206164647265737360501b6044820152606401610483565b5f81116108f45760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610483565b6001600160a01b0382165f908152600a60205260408120805483929061091b908490610f57565b90915550506040518181526001600160a01b038316907f850d70eb635855ddd172fda13e6d2e74aa4c3b0dd4a2a570483793d7ad9a0c439060200160405180910390a25050565b61096a610e1a565b6109735f610e46565b565b60015433906001600160a01b031681146109ad5760405163118cdaa760e01b81526001600160a01b0382166004820152602401610483565b6109b681610e46565b50565b335f9081526005602052604090205460ff16610a105760405162461bcd60e51b815260206004820152601660248201527529b2b73232b9103737ba1030baba3437b934bd32b21760511b6044820152606401610483565b5f828152600b6020526040902060010154158015610a3c57505f828152600b6020526040902060030154155b8015610a5957505f828152600b602052604090206004015460ff16155b610a9a5760405162461bcd60e51b815260206004820152601260248201527111d85b5948185b1c9958591e481cd85d995960721b6044820152606401610483565b5f828152600b6020908152604091829020600180820185905543600383015560048201805460ff1916909117905554915183815284926001600160a01b0316917f3f9816b7851af3e5a818edbae74a83371dae8fd137d3e6353ad90befdb227cc8910160405180910390a35050565b610b11610e1a565b6004545f908152600c602052604090206002015460ff1615610b6b5760405162461bcd60e51b81526020600482015260136024820152722a37bab93730b6b2b73a103737ba1037bb32b960691b6044820152606401610483565b600480545f908152600c6020526040808220600201805460ff1916600117905591548082529082902054915190917f6a52ea18d8400179f07977efe166870c2ea6650ed707f4dc27659b60a30ff49591610bd091904390918252602082015260400190565b60405180910390a26040518060600160405280438152602001620189c043610bf89190610f57565b81526020015f1515815250600c5f6004546001610c159190610f57565b815260208082019290925260409081015f908120845181559284015160018401559201516002909101805460ff19169115159190911790556004805491610c5b83610f85565b9190505550565b610c6a610e1a565b6001600160a01b038216610ca757604051339082156108fc029083905f818181858888f19350505050158015610ca2573d5f5f3e3d5ffd5b505050565b60408051336024820152604480820184905282518083039091018152606490910182526020810180516001600160e01b031663a9059cbb60e01b17905290515f9182916001600160a01b03861691610cfe91610f9d565b5f604051808303815f865af19150503d805f8114610d37576040519150601f19603f3d011682016040523d82523d5f602084013e610d3c565b606091505b5091509150818015610d66575080511580610d66575080806020019051810190610d669190610fb3565b610da45760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915488119052531151608a1b6044820152606401610483565b50505050565b610db2610e1a565b600180546001600160a01b0383166001600160a01b03199091168117909155610de25f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f546001600160a01b031633146109735760405163118cdaa760e01b8152336004820152602401610483565b600180546001600160a01b03191690556109b6815f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610eb9575f5ffd5b5035919050565b80356001600160a01b0381168114610ed6575f5ffd5b919050565b5f5f60408385031215610eec575f5ffd5b610ef583610ec0565b946020939093013593505050565b5f60208284031215610f13575f5ffd5b610f1c82610ec0565b9392505050565b5f5f60408385031215610f34575f5ffd5b50508035926020909101359150565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610f6a57610f6a610f43565b92915050565b5f81610f7e57610f7e610f43565b505f190190565b5f60018201610f9657610f96610f43565b5060010190565b5f82518060208501845e5f920191825250919050565b5f60208284031215610fc3575f5ffd5b81518015158114610f1c575f5ffdfea2646970667358221220b1719efafa543eec2e966b9cc9af1057c5d10c41f34dcbff561eadc2e05afb3364736f6c634300081e0033
Deployed Bytecode
0x60806040526004361061011b575f3560e01c806379ba50971161009d578063d9c88e1411610062578063d9c88e1414610389578063e2eb41ff1461039c578063e30c3978146103c7578063f2fde38b146103e4578063f676d76614610403575f5ffd5b806379ba5097146102fb57806386e921781461030f5780638da5cb5b1461033a5780639ff9308814610356578063af37182114610375575f5ffd5b806336568bc1116100e357806336568bc11461020e5780634783c35b1461022d57806360b663bb14610278578063715018a61461028d5780637503e1b7146102a1575f5ffd5b8063117a5b901461011f5780631209b1f6146101ad57806315981650146101d0578063218bd577146101f15780632f50d6dc146101f9575b5f5ffd5b34801561012a575f5ffd5b50610174610139366004610ea9565b600b6020525f9081526040902080546001820154600283015460038401546004909401546001600160a01b0390931693919290919060ff1685565b604080516001600160a01b03909616865260208601949094529284019190915260608301521515608082015260a0015b60405180910390f35b3480156101b8575f5ffd5b506101c260025481565b6040519081526020016101a4565b3480156101db575f5ffd5b506101ef6101ea366004610ea9565b61042e565b005b6101ef61043b565b348015610204575f5ffd5b506101c260045481565b348015610219575f5ffd5b506101ef610228366004610edb565b610807565b348015610238575f5ffd5b506102607f00000000000000000000000032d141703356113d8edbe8bb6bffd4d780e243f381565b6040516001600160a01b0390911681526020016101a4565b348015610283575f5ffd5b506101c260035481565b348015610298575f5ffd5b506101ef610962565b3480156102ac575f5ffd5b506102de6102bb366004610ea9565b600c6020525f908152604090208054600182015460029092015490919060ff1683565b6040805193845260208401929092521515908201526060016101a4565b348015610306575f5ffd5b506101ef610975565b34801561031a575f5ffd5b506101c2610329366004610f03565b60096020525f908152604090205481565b348015610345575f5ffd5b505f546001600160a01b0316610260565b348015610361575f5ffd5b506101ef610370366004610f23565b6109b9565b348015610380575f5ffd5b506101ef610b09565b6101ef610397366004610edb565b610c62565b3480156103a7575f5ffd5b506101c26103b6366004610f03565b600a6020525f908152604090205481565b3480156103d2575f5ffd5b506001546001600160a01b0316610260565b3480156103ef575f5ffd5b506101ef6103fe366004610f03565b610daa565b34801561040e575f5ffd5b506101c261041d366004610f03565b60086020525f908152604090205481565b610436610e1a565b600255565b60075460ff161561048c5760405162461bcd60e51b8152602060048201526016602482015275139bc81c994b595b9d1c985b98de48185b1b1bddd95960521b60448201526064015b60405180910390fd5b6007805460ff191660011790556004545f908152600c602052604090206002015460ff16156104fd5760405162461bcd60e51b815260206004820152601b60248201527f546f75726e616d656e742063757272656e746c7920636c6f73656400000000006044820152606401610483565b335f908152600960205260409020546105199061384090610f57565b431061053e57335f908152600860209081526040808320839055600990915290204390555b335f90815260086020526040812054900361056557335f9081526009602052604090204390555b335f908152600860205260409020546005116105d95760405162461bcd60e51b815260206004820152602d60248201527f506c617965722068617320726561636865642067616d65206c696d697420666f60448201526c7220746869732077696e646f7760981b6064820152608401610483565b335f908152600a60205260409020541561061157335f908152600a6020526040812080549161060783610f70565b9190505550610720565b60025434101561066d5760405162461bcd60e51b815260206004820152602160248201527f496e73756666696369656e7420474c4d522073656e7420666f72207469636b656044820152601d60fa1b6064820152608401610483565b5f7f00000000000000000000000032d141703356113d8edbe8bb6bffd4d780e243f36001600160a01b0316346040515f6040518083038185875af1925050503d805f81146106d6576040519150601f19603f3d011682016040523d82523d5f602084013e6106db565b606091505b505090508061071e5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610483565b505b335f90815260086020526040812080549161073a83610f85565b90915550506040805160a081018252338082525f6020808401828152438587019081526060860184815260808701858152600380548752600b909552888620975188546001600160a01b0319166001600160a01b0390911617885592516001880155905160028701555185830155516004909401805460ff1916941515949094179093559154925190917faf81b0671964b1f6f90c9bd2d4f0ba517fe019f93622dbdca8af37873a234e0c91a360038054905f6107f683610f85565b90915550506007805460ff19169055565b335f9081526006602052604090205460ff166108565760405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606401610483565b6001600160a01b0382166108a55760405162461bcd60e51b8152602060048201526016602482015275496e76616c696420706c61796572206164647265737360501b6044820152606401610483565b5f81116108f45760405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610483565b6001600160a01b0382165f908152600a60205260408120805483929061091b908490610f57565b90915550506040518181526001600160a01b038316907f850d70eb635855ddd172fda13e6d2e74aa4c3b0dd4a2a570483793d7ad9a0c439060200160405180910390a25050565b61096a610e1a565b6109735f610e46565b565b60015433906001600160a01b031681146109ad5760405163118cdaa760e01b81526001600160a01b0382166004820152602401610483565b6109b681610e46565b50565b335f9081526005602052604090205460ff16610a105760405162461bcd60e51b815260206004820152601660248201527529b2b73232b9103737ba1030baba3437b934bd32b21760511b6044820152606401610483565b5f828152600b6020526040902060010154158015610a3c57505f828152600b6020526040902060030154155b8015610a5957505f828152600b602052604090206004015460ff16155b610a9a5760405162461bcd60e51b815260206004820152601260248201527111d85b5948185b1c9958591e481cd85d995960721b6044820152606401610483565b5f828152600b6020908152604091829020600180820185905543600383015560048201805460ff1916909117905554915183815284926001600160a01b0316917f3f9816b7851af3e5a818edbae74a83371dae8fd137d3e6353ad90befdb227cc8910160405180910390a35050565b610b11610e1a565b6004545f908152600c602052604090206002015460ff1615610b6b5760405162461bcd60e51b81526020600482015260136024820152722a37bab93730b6b2b73a103737ba1037bb32b960691b6044820152606401610483565b600480545f908152600c6020526040808220600201805460ff1916600117905591548082529082902054915190917f6a52ea18d8400179f07977efe166870c2ea6650ed707f4dc27659b60a30ff49591610bd091904390918252602082015260400190565b60405180910390a26040518060600160405280438152602001620189c043610bf89190610f57565b81526020015f1515815250600c5f6004546001610c159190610f57565b815260208082019290925260409081015f908120845181559284015160018401559201516002909101805460ff19169115159190911790556004805491610c5b83610f85565b9190505550565b610c6a610e1a565b6001600160a01b038216610ca757604051339082156108fc029083905f818181858888f19350505050158015610ca2573d5f5f3e3d5ffd5b505050565b60408051336024820152604480820184905282518083039091018152606490910182526020810180516001600160e01b031663a9059cbb60e01b17905290515f9182916001600160a01b03861691610cfe91610f9d565b5f604051808303815f865af19150503d805f8114610d37576040519150601f19603f3d011682016040523d82523d5f602084013e610d3c565b606091505b5091509150818015610d66575080511580610d66575080806020019051810190610d669190610fb3565b610da45760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915488119052531151608a1b6044820152606401610483565b50505050565b610db2610e1a565b600180546001600160a01b0383166001600160a01b03199091168117909155610de25f546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b5f546001600160a01b031633146109735760405163118cdaa760e01b8152336004820152602401610483565b600180546001600160a01b03191690556109b6815f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f60208284031215610eb9575f5ffd5b5035919050565b80356001600160a01b0381168114610ed6575f5ffd5b919050565b5f5f60408385031215610eec575f5ffd5b610ef583610ec0565b946020939093013593505050565b5f60208284031215610f13575f5ffd5b610f1c82610ec0565b9392505050565b5f5f60408385031215610f34575f5ffd5b50508035926020909101359150565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610f6a57610f6a610f43565b92915050565b5f81610f7e57610f7e610f43565b505f190190565b5f60018201610f9657610f96610f43565b5060010190565b5f82518060208501845e5f920191825250919050565b5f60208284031215610fc3575f5ffd5b81518015158114610f1c575f5ffdfea2646970667358221220b1719efafa543eec2e966b9cc9af1057c5d10c41f34dcbff561eadc2e05afb3364736f6c634300081e0033
Deployed Bytecode Sourcemap
337:7947:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2083:37;;;;;;;;;;-1:-1:-1;2083:37:4;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2083:37:4;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;516:32:5;;;498:51;;580:2;565:18;;558:34;;;;608:18;;;601:34;;;;666:2;651:18;;644:34;722:14;715:22;709:3;694:19;;687:51;485:3;470:19;2083:37:4;;;;;;;;531;;;;;;;;;;;;;;;;;;;895:25:5;;;883:2;868:18;531:37:4;749:177:5;6862:98:4;;;;;;;;;;-1:-1:-1;6862:98:4;;;;;:::i;:::-;;:::i;:::-;;3937:1175;;;:::i;666:36::-;;;;;;;;;;;;;;;;7960:322;;;;;;;;;;-1:-1:-1;7960:322:4;;;;;:::i;:::-;;:::i;1109:33::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1578:32:5;;;1560:51;;1548:2;1533:18;1109:33:4;1414:203:5;599:30:4;;;;;;;;;;;;;;;;2293:101:0;;;;;;;;;;;;;:::i;2177:49:4:-;;;;;;;;;;-1:-1:-1;2177:49:4;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1818:25:5;;;1874:2;1859:18;;1852:34;;;;1929:14;1922:22;1902:18;;;1895:50;1806:2;1791:18;2177:49:4;1622:329:5;2244:229:1;;;;;;;;;;;;;:::i;1411:52:4:-;;;;;;;;;;-1:-1:-1;1411:52:4;;;;;:::i;:::-;;;;;;;;;;;;;;1638:85:0;;;;;;;;;;-1:-1:-1;1684:7:0;1710:6;-1:-1:-1;;;;;1710:6:0;1638:85;;5388:461:4;;;;;;;;;;-1:-1:-1;5388:461:4;;;;;:::i;:::-;;:::i;7073:535::-;;;;;;;;;;;;;:::i;6169:573::-;;;;;;:::i;:::-;;:::i;1518:42::-;;;;;;;;;;-1:-1:-1;1518:42:4;;;;;:::i;:::-;;;;;;;;;;;;;;1232:99:1;;;;;;;;;;-1:-1:-1;1311:13:1;;-1:-1:-1;;;;;1311:13:1;1232:99;;1649:178;;;;;;;;;;-1:-1:-1;1649:178:1;;;;;:::i;:::-;;:::i;1284:54:4:-;;;;;;;;;;-1:-1:-1;1284:54:4;;;;;:::i;:::-;;;;;;;;;;;;;;6862:98;1531:13:0;:11;:13::i;:::-;6932:11:4::1;:21:::0;6862:98::o;3937:1175::-;3125:6;;;;3124:7;3116:42;;;;-1:-1:-1;;;3116:42:4;;2700:2:5;3116:42:4;;;2682:21:5;2739:2;2719:18;;;2712:30;-1:-1:-1;;;2758:18:5;;;2751:52;2820:18;;3116:42:4;;;;;;;;;3168:6;:13;;-1:-1:-1;;3168:13:4;3177:4;3168:13;;;4032:17:::1;::::0;3168:6;4020:30;;;:11:::1;:30;::::0;;;;:37:::1;;::::0;3168:13;4020:37:::1;4019:38;3998:112;;;::::0;-1:-1:-1;;;3998:112:4;;3051:2:5;3998:112:4::1;::::0;::::1;3033:21:5::0;3090:2;3070:18;;;3063:30;3129:29;3109:18;;;3102:57;3176:18;;3998:112:4::1;2849:351:5::0;3998:112:4::1;4159:10;4141:29;::::0;;;:17:::1;:29;::::0;;;;;:44:::1;::::0;885:5:::1;::::0;4141:44:::1;:::i;:::-;4125:12;:60;4121:184;;4221:10;4235:1;4201:31:::0;;;:19:::1;:31;::::0;;;;;;;:35;;;4250:17:::1;:29:::0;;;;;4282:12:::1;4250:44:::0;;4121:184:::1;4339:10;4319:31;::::0;;;:19:::1;:31;::::0;;;;;:36;;4315:111:::1;;4389:10;4371:29;::::0;;;:17:::1;:29;::::0;;;;4403:12:::1;4371:44:::0;;4315:111:::1;4477:10;4457:31;::::0;;;:19:::1;:31;::::0;;;;;4491:1:::1;-1:-1:-1::0;4436:127:4::1;;;::::0;-1:-1:-1;;;4436:127:4;;3669:2:5;4436:127:4::1;::::0;::::1;3651:21:5::0;3708:2;3688:18;;;3681:30;3747:34;3727:18;;;3720:62;-1:-1:-1;;;3798:18:5;;;3791:43;3851:19;;4436:127:4::1;3467:409:5::0;4436:127:4::1;4586:10;4600:1;4578:19:::0;;;:7:::1;:19;::::0;;;;;:23;4574:339:::1;;4625:10;4617:19;::::0;;;:7:::1;:19;::::0;;;;:21;;;::::1;::::0;::::1;:::i;:::-;;;;;;4574:339;;;4707:11;;4694:9;:24;;4669:116;;;::::0;-1:-1:-1;;;4669:116:4;;4224:2:5;4669:116:4::1;::::0;::::1;4206:21:5::0;4263:2;4243:18;;;4236:30;4302:34;4282:18;;;4275:62;-1:-1:-1;;;4353:18:5;;;4346:31;4394:19;;4669:116:4::1;4022:397:5::0;4669:116:4::1;4800:12;4818:8;-1:-1:-1::0;;;;;4818:13:4::1;4839:9;4818:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4799:54;;;4875:7;4867:35;;;::::0;-1:-1:-1;;;4867:35:4;;4836:2:5;4867:35:4::1;::::0;::::1;4818:21:5::0;4875:2;4855:18;;;4848:30;-1:-1:-1;;;4894:18:5;;;4887:45;4949:18;;4867:35:4::1;4634:339:5::0;4867:35:4::1;4655:258;4574:339;4943:10;4923:31;::::0;;;:19:::1;:31;::::0;;;;:33;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;4988:43:4::1;::::0;;::::1;::::0;::::1;::::0;;4993:10:::1;4988:43:::0;;;-1:-1:-1;4988:43:4::1;::::0;;::::1;::::0;;;5008:12:::1;4988:43:::0;;;;;;;;;;;;;;;;;;4973:11:::1;::::0;;4967:18;;:5:::1;:18:::0;;;;;;:64;;;;-1:-1:-1;;;;;;4967:64:4::1;-1:-1:-1::0;;;;;4967:64:4;;::::1;;::::0;;;;-1:-1:-1;4967:64:4;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;4967:64:4::1;::::0;::::1;;::::0;;;::::1;::::0;;;5070:11;;5046:36;;4993:10;;5046:36:::1;::::0;::::1;5092:11;:13:::0;;;:11:::1;:13;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;3202:6:4;:14;;-1:-1:-1;;3202:14:4;;;3937:1175::o;7960:322::-;3028:10;3015:24;;;;:12;:24;;;;;;;;3007:51;;;;-1:-1:-1;;;3007:51:4;;5320:2:5;3007:51:4;;;5302:21:5;5359:2;5339:18;;;5332:30;-1:-1:-1;;;5378:18:5;;;5371:44;5432:18;;3007:51:4;5118:338:5;3007:51:4;-1:-1:-1;;;;;8077:21:4;::::1;8069:56;;;::::0;-1:-1:-1;;;8069:56:4;;5663:2:5;8069:56:4::1;::::0;::::1;5645:21:5::0;5702:2;5682:18;;;5675:30;-1:-1:-1;;;5721:18:5;;;5714:52;5783:18;;8069:56:4::1;5461:346:5::0;8069:56:4::1;8153:1;8143:7;:11;8135:53;;;::::0;-1:-1:-1;;;8135:53:4;;6014:2:5;8135:53:4::1;::::0;::::1;5996:21:5::0;6053:2;6033:18;;;6026:30;6092:31;6072:18;;;6065:59;6141:18;;8135:53:4::1;5812:353:5::0;8135:53:4::1;-1:-1:-1::0;;;;;8199:16:4;::::1;;::::0;;;:7:::1;:16;::::0;;;;:27;;8219:7;;8199:16;:27:::1;::::0;8219:7;;8199:27:::1;:::i;:::-;::::0;;;-1:-1:-1;;8241:34:4::1;::::0;895:25:5;;;-1:-1:-1;;;;;8241:34:4;::::1;::::0;::::1;::::0;883:2:5;868:18;8241:34:4::1;;;;;;;7960:322:::0;;:::o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;2244:229:1:-;1311:13;;735:10:3;;-1:-1:-1;;;;;1311:13:1;2339:24;;2335:96;;2386:34;;-1:-1:-1;;;2386:34:1;;-1:-1:-1;;;;;1578:32:5;;2386:34:1;;;1560:51:5;1533:18;;2386:34:1;1414:203:5;2335:96:1;2440:26;2459:6;2440:18;:26::i;:::-;2286:187;2244:229::o;5388:461:4:-;2914:10;2908:17;;;;:5;:17;;;;;;;;2900:52;;;;-1:-1:-1;;;2900:52:4;;6372:2:5;2900:52:4;;;6354:21:5;6411:2;6391:18;;;6384:30;-1:-1:-1;;;6430:18:5;;;6423:52;6492:18;;2900:52:4;6170:346:5;2900:52:4;5491:14:::1;::::0;;;:5:::1;:14;::::0;;;;:20:::1;;::::0;:25;:73;::::1;;;-1:-1:-1::0;5536:14:4::1;::::0;;;:5:::1;:14;::::0;;;;:23:::1;;::::0;:28;5491:73:::1;:115;;;;-1:-1:-1::0;5585:14:4::1;::::0;;;:5:::1;:14;::::0;;;;:21:::1;;::::0;::::1;;5584:22;5491:115;5470:180;;;::::0;-1:-1:-1;;;5470:180:4;;6723:2:5;5470:180:4::1;::::0;::::1;6705:21:5::0;6762:2;6742:18;;;6735:30;-1:-1:-1;;;6781:18:5;;;6774:48;6839:18;;5470:180:4::1;6521:342:5::0;5470:180:4::1;5661:14;::::0;;;:5:::1;:14;::::0;;;;;;;;:20:::1;::::0;;::::1;:29:::0;;;5726:12:::1;5700:23;::::0;::::1;:38:::0;5748:21:::1;::::0;::::1;:28:::0;;-1:-1:-1;;5748:28:4::1;::::0;;::::1;::::0;;5803:21;5791:51;;895:25:5;;;5661:14:4;;-1:-1:-1;;;;;5803:21:4::1;::::0;5791:51:::1;::::0;868:18:5;5791:51:4::1;;;;;;;5388:461:::0;;:::o;7073:535::-;1531:13:0;:11;:13::i;:::-;7151:17:4::1;::::0;7139:30:::1;::::0;;;:11:::1;:30;::::0;;;;:37:::1;;::::0;::::1;;7138:38;7130:70;;;::::0;-1:-1:-1;;;7130:70:4;;7070:2:5;7130:70:4::1;::::0;::::1;7052:21:5::0;7109:2;7089:18;;;7082:30;-1:-1:-1;;;7128:18:5;;;7121:49;7187:18;;7130:70:4::1;6868:343:5::0;7130:70:4::1;7223:17;::::0;;7211:30:::1;::::0;;;:11:::1;:30;::::0;;;;;:37:::1;;:44:::0;;-1:-1:-1;;7211:44:4::1;7251:4;7211:44;::::0;;7302:17;;7333:30;;;;;;;:41;7271:139;;7302:17;;7271:139:::1;::::0;::::1;::::0;7333:41;7388:12:::1;::::0;7390:25:5;;;7446:2;7431:18;;7424:34;7378:2;7363:18;;7216:248;7271:139:4::1;;;;;;;;7458:113;;;;;;;;7482:12;7458:113;;;;806:6;7508:12;:34;;;;:::i;:::-;7458:113;;;;7556:5;7458:113;;;;::::0;7421:11:::1;:34;7433:17;;7453:1;7433:21;;;;:::i;:::-;7421:34:::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;7421:34:4;;;:150;;;;;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;-1:-1:-1;;7421:150:4::1;::::0;::::1;;::::0;;;::::1;::::0;;7582:17:::1;:19:::0;;;::::1;::::0;::::1;:::i;:::-;;;;;;7073:535::o:0;6169:573::-;1531:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;6288:22:4;::::1;6284:110;;6326:37;::::0;6334:10:::1;::::0;6326:37;::::1;;;::::0;6355:7;;6326:37:::1;::::0;;;6355:7;6334:10;6326:37;::::1;;;;;;;;;;;;;;;;;;;;6169:573:::0;;:::o;6284:110::-:1;6465:131;::::0;;6547:10:::1;6465:131;::::0;::::1;7643:51:5::0;7710:18;;;;7703:34;;;6465:131:4;;;;;;;;;;7616:18:5;;;;6465:131:4;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;6465:131:4::1;-1:-1:-1::0;;;6465:131:4::1;::::0;;6440:166;;-1:-1:-1;;;;;;;;;6440:11:4;::::1;::::0;:166:::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6404:202;;;;6637:7;:57;;;;-1:-1:-1::0;6649:11:4;;:16;;:44:::1;;;6680:4;6669:24;;;;;;;;;;;;:::i;:::-;6616:119;;;::::0;-1:-1:-1;;;6616:119:4;;8538:2:5;6616:119:4::1;::::0;::::1;8520:21:5::0;8577:2;8557:18;;;8550:30;-1:-1:-1;;;8596:18:5;;;8589:45;8651:18;;6616:119:4::1;8336:339:5::0;6616:119:4::1;6274:468;;6169:573:::0;;:::o;1649:178:1:-;1531:13:0;:11;:13::i;:::-;1738::1::1;:24:::0;;-1:-1:-1;;;;;1738:24:1;::::1;-1:-1:-1::0;;;;;;1738:24:1;;::::1;::::0;::::1;::::0;;;1802:7:::1;1684::0::0;1710:6;-1:-1:-1;;;;;1710:6:0;;1638:85;1802:7:1::1;-1:-1:-1::0;;;;;1777:43:1::1;;;;;;;;;;;1649:178:::0;:::o;1796:162:0:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;735:10:3;1855:23:0;1851:101;;1901:40;;-1:-1:-1;;;1901:40:0;;735:10:3;1901:40:0;;;1560:51:5;1533:18;;1901:40:0;1414:203:5;2011:153:1;2100:13;2093:20;;-1:-1:-1;;;;;;2093:20:1;;;2123:34;2148:8;2985:16:0;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:226:5:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;187:23:5;;14:226;-1:-1:-1;14:226:5:o;931:173::-;999:20;;-1:-1:-1;;;;;1048:31:5;;1038:42;;1028:70;;1094:1;1091;1084:12;1028:70;931:173;;;:::o;1109:300::-;1177:6;1185;1238:2;1226:9;1217:7;1213:23;1209:32;1206:52;;;1254:1;1251;1244:12;1206:52;1277:29;1296:9;1277:29;:::i;:::-;1267:39;1375:2;1360:18;;;;1347:32;;-1:-1:-1;;;1109:300:5:o;1956:186::-;2015:6;2068:2;2056:9;2047:7;2043:23;2039:32;2036:52;;;2084:1;2081;2074:12;2036:52;2107:29;2126:9;2107:29;:::i;:::-;2097:39;1956:186;-1:-1:-1;;;1956:186:5:o;2147:346::-;2215:6;2223;2276:2;2264:9;2255:7;2251:23;2247:32;2244:52;;;2292:1;2289;2282:12;2244:52;-1:-1:-1;;2337:23:5;;;2457:2;2442:18;;;2429:32;;-1:-1:-1;2147:346:5:o;3205:127::-;3266:10;3261:3;3257:20;3254:1;3247:31;3297:4;3294:1;3287:15;3321:4;3318:1;3311:15;3337:125;3402:9;;;3423:10;;;3420:36;;;3436:18;;:::i;:::-;3337:125;;;;:::o;3881:136::-;3920:3;3948:5;3938:39;;3957:18;;:::i;:::-;-1:-1:-1;;;3993:18:5;;3881:136::o;4978:135::-;5017:3;5038:17;;;5035:43;;5058:18;;:::i;:::-;-1:-1:-1;5105:1:5;5094:13;;4978:135::o;7748:301::-;7877:3;7915:6;7909:13;7961:6;7954:4;7946:6;7942:17;7937:3;7931:37;8023:1;7987:16;;8012:13;;;-1:-1:-1;7987:16:5;7748:301;-1:-1:-1;7748:301:5:o;8054:277::-;8121:6;8174:2;8162:9;8153:7;8149:23;8145:32;8142:52;;;8190:1;8187;8180:12;8142:52;8222:9;8216:16;8275:5;8268:13;8261:21;8254:5;8251:32;8241:60;;8297:1;8294;8287:12
Swarm Source
ipfs://b1719efafa543eec2e966b9cc9af1057c5d10c41f34dcbff561eadc2e05afb33
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in GLMR
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.