Latest 25 from a total of 36 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Complete Raffle | 41544472 | 32 days ago | IN | 0 ETH | 0.00001629 | ||||
| Buy Tickets | 40383222 | 59 days ago | IN | 0.0025 ETH | 0.00000073 | ||||
| Create Raffle | 40097130 | 66 days ago | IN | 0.01 ETH | 0.00000041 | ||||
| Complete Raffle | 39463377 | 80 days ago | IN | 0 ETH | 0.00000019 | ||||
| Complete Raffle | 39296022 | 84 days ago | IN | 0 ETH | 0.00000021 | ||||
| Buy Tickets | 39292885 | 84 days ago | IN | 0.0025 ETH | 0.00000022 | ||||
| Buy Tickets | 39292854 | 84 days ago | IN | 0.0025 ETH | 0.00000029 | ||||
| Create Raffle | 39292751 | 84 days ago | IN | 0.01 ETH | 0.00000028 | ||||
| Complete Raffle | 39153803 | 88 days ago | IN | 0 ETH | 0.0000001 | ||||
| Create Raffle | 39083385 | 89 days ago | IN | 0.01 ETH | 0.00000088 | ||||
| Complete Raffle | 38814058 | 95 days ago | IN | 0 ETH | 0.00000008 | ||||
| Complete Raffle | 38766989 | 97 days ago | IN | 0 ETH | 0.00000009 | ||||
| Complete Raffle | 38692059 | 98 days ago | IN | 0 ETH | 0.00000031 | ||||
| Buy Tickets | 38657097 | 99 days ago | IN | 0.0025 ETH | 0.00000043 | ||||
| Buy Tickets | 38656977 | 99 days ago | IN | 0.0025 ETH | 0.0000003 | ||||
| Buy Tickets | 38656897 | 99 days ago | IN | 0.0025 ETH | 0.00000032 | ||||
| Buy Tickets | 38656890 | 99 days ago | IN | 0.0025 ETH | 0.00000039 | ||||
| Buy Tickets | 38656884 | 99 days ago | IN | 0.0025 ETH | 0.00000039 | ||||
| Create Raffle | 38656711 | 99 days ago | IN | 0.01 ETH | 0.00000065 | ||||
| Create Raffle | 38656527 | 99 days ago | IN | 0.01 ETH | 0.00000062 | ||||
| Create Raffle | 38656457 | 99 days ago | IN | 0.01 ETH | 0.00000102 | ||||
| Create Raffle | 38656336 | 99 days ago | IN | 0.01 ETH | 0.00000067 | ||||
| Create Raffle | 38656235 | 99 days ago | IN | 0.01 ETH | 0.00000067 | ||||
| Complete Raffle | 38648858 | 99 days ago | IN | 0 ETH | 0.00000036 | ||||
| Buy Tickets | 38642789 | 99 days ago | IN | 0.0025 ETH | 0.00000029 |
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 41544472 | 32 days ago | 0.00125 ETH | ||||
| 41544472 | 32 days ago | 0.00125 ETH | ||||
| 40097130 | 66 days ago | 0.01 ETH | ||||
| 39463377 | 80 days ago | 0.00125 ETH | ||||
| 39463377 | 80 days ago | 0.00125 ETH | ||||
| 39296022 | 84 days ago | 0.0025 ETH | ||||
| 39296022 | 84 days ago | 0.0025 ETH | ||||
| 39292751 | 84 days ago | 0.01 ETH | ||||
| 39153803 | 88 days ago | 0.0025 ETH | ||||
| 39153803 | 88 days ago | 0.0025 ETH | ||||
| 39083385 | 89 days ago | 0.01 ETH | ||||
| 38986838 | 91 days ago | 0.0025 ETH | ||||
| 38814058 | 95 days ago | 0.00125 ETH | ||||
| 38814058 | 95 days ago | 0.00125 ETH | ||||
| 38766989 | 97 days ago | 0.00125 ETH | ||||
| 38766989 | 97 days ago | 0.00125 ETH | ||||
| 38692059 | 98 days ago | 0.00125 ETH | ||||
| 38692059 | 98 days ago | 0.00125 ETH | ||||
| 38656711 | 99 days ago | 0.01 ETH | ||||
| 38656527 | 99 days ago | 0.01 ETH | ||||
| 38656457 | 99 days ago | 0.01 ETH | ||||
| 38656336 | 99 days ago | 0.01 ETH | ||||
| 38656235 | 99 days ago | 0.01 ETH | ||||
| 38648858 | 99 days ago | 0.0025 ETH | ||||
| 38648858 | 99 days ago | 0.0025 ETH |
Cross-Chain Transactions
Contract Source Code (Solidity)
/** *Submitted for verification at basescan.org on 2025-11-20 */ // Sources flattened with hardhat v2.22.17 https://hardhat.org // SPDX-License-Identifier: MIT // File @openzeppelin/contracts/utils/[email protected] // 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; } } // File @openzeppelin/contracts/access/[email protected] // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _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); } } // File @openzeppelin/contracts/security/[email protected] // OpenZeppelin Contracts (last updated v4.8.0) (security/ReentrancyGuard.sol) pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { _nonReentrantBefore(); _; _nonReentrantAfter(); } function _nonReentrantBefore() private { // On the first call to nonReentrant, _status will be _NOT_ENTERED require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; } function _nonReentrantAfter() private { // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } } // File contracts/ETH5050Base.sol pragma solidity ^0.8.19; /** * @title ETH5050Base - Base Mainnet 50/50 Raffle Contract * @dev A decentralized raffle system for Base Mainnet * @notice Users can create raffles and buy tickets with ETH * Creator and winner each get 50% of the ticket sales */ contract ETH5050Base is Ownable, ReentrancyGuard { // Platform settings uint256 public constant CREATION_FEE = 0.01 ether; // 0.01 ETH creation fee uint256 public constant TICKET_PRICE = 0.0025 ether; // 0.0025 ETH per ticket address public constant PLATFORM_WALLET = 0x112140173B22bbf201D0B4247bd4cd1681e66ad5; uint256 public constant MIN_CREATION_DELAY = 2 minutes; // Minimum 2 minutes ahead // Smart Contract Deployer address public constant DEPLOYER_ADDRESS = 0x8f4108D59d2EA179671dA3e7ddF80Be7Ad665BaB; constructor() Ownable() {} /** * @dev Raffle structure containing all raffle data */ struct Raffle { address creator; string title; string description; string image; uint256 ticketSupply; uint256 ticketsSold; uint256 startTime; uint256 endTime; address winner; bool completed; uint256 totalAmount; // Total ETH collected from ticket sales mapping(uint256 => address) tickets; // ticketNumber => buyer address mapping(address => uint256[]) userTickets; // user => ticket numbers owned } Raffle[] public raffles; // Events event RaffleCreated( uint256 indexed raffleId, address indexed creator, string title, uint256 ticketSupply, uint256 startTime, uint256 endTime ); event TicketPurchased( uint256 indexed raffleId, address indexed buyer, uint256 quantity, uint256[] ticketNumbers ); event RaffleCompleted( uint256 indexed raffleId, address indexed winner, uint256 winnerPrize, uint256 creatorPrize ); /** * @dev Create a new 50/50 raffle * @param _title Raffle title * @param _description Raffle description * @param _image Raffle image URL or IPFS hash * @param _ticketSupply Maximum number of tickets available * @param _startTime When the raffle starts (must be at least 2 minutes in future) * @param _endTime When the raffle ends */ function createRaffle( string memory _title, string memory _description, string memory _image, uint256 _ticketSupply, uint256 _startTime, uint256 _endTime ) external payable nonReentrant { require( msg.value == CREATION_FEE, "Must send exactly 0.01 ETH creation fee" ); require(_ticketSupply > 0, "Ticket supply must be greater than 0"); require( _startTime >= block.timestamp + MIN_CREATION_DELAY, "Raffle must start at least 2 minutes in the future" ); require(_endTime > _startTime, "End time must be after start time"); require(bytes(_title).length > 0, "Title cannot be empty"); // Send creation fee to platform wallet (bool success, ) = PLATFORM_WALLET.call{value: CREATION_FEE}(""); require(success, "Failed to send creation fee to platform wallet"); // Create new raffle Raffle storage newRaffle = raffles.push(); newRaffle.creator = msg.sender; newRaffle.title = _title; newRaffle.description = _description; newRaffle.image = _image; newRaffle.ticketSupply = _ticketSupply; newRaffle.startTime = _startTime; newRaffle.endTime = _endTime; newRaffle.completed = false; newRaffle.totalAmount = 0; emit RaffleCreated( raffles.length - 1, msg.sender, _title, _ticketSupply, _startTime, _endTime ); } /** * @dev Buy tickets for a specific raffle * @param _raffleId The ID of the raffle * @param _quantity Number of tickets to purchase */ function buyTickets( uint256 _raffleId, uint256 _quantity ) external payable nonReentrant { require(_raffleId < raffles.length, "Raffle does not exist"); require(_quantity > 0, "Quantity must be greater than 0"); Raffle storage raffle = raffles[_raffleId]; require(!raffle.completed, "Raffle has already been completed"); require( block.timestamp >= raffle.startTime, "Raffle has not started yet" ); require(block.timestamp < raffle.endTime, "Raffle has ended"); require( msg.value == TICKET_PRICE * _quantity, "Must send correct ETH amount (0.0025 ETH per ticket)" ); require( raffle.ticketsSold + _quantity <= raffle.ticketSupply, "Not enough tickets available" ); // Store the ticket numbers for the event uint256[] memory newTicketNumbers = new uint256[](_quantity); // Assign tickets to buyer for (uint256 i = 0; i < _quantity; i++) { uint256 ticketNumber = raffle.ticketsSold + i; raffle.tickets[ticketNumber] = msg.sender; raffle.userTickets[msg.sender].push(ticketNumber); newTicketNumbers[i] = ticketNumber; } raffle.ticketsSold += _quantity; raffle.totalAmount += msg.value; emit TicketPurchased( _raffleId, msg.sender, _quantity, newTicketNumbers ); } /** * @dev Complete a raffle and distribute prizes using enhanced provably fair randomness * @param _raffleId The ID of the raffle to complete * * PROVABLY FAIR RANDOMNESS: * This function uses multiple entropy sources that cannot be manipulated: * 1. block.prevrandao - Ethereum's built-in randomness beacon (post-Merge) * 2. blockhash of future block - Unknown at time of raffle creation * 3. block.timestamp - Time component * 4. Raffle-specific data - Participants, ticket count, creator * 5. Contract address - Unique per deployment * * The combination of these sources makes it cryptographically impossible * for anyone (including miners, validators, or contract callers) to * predict or manipulate the winner selection. * * NO EXTERNAL TOKENS REQUIRED - Uses only ETH and Ethereum's native randomness */ function completeRaffle(uint256 _raffleId) external nonReentrant { require(_raffleId < raffles.length, "Raffle does not exist"); Raffle storage raffle = raffles[_raffleId]; require(!raffle.completed, "Raffle has already been completed"); require( block.timestamp >= raffle.endTime || raffle.ticketsSold == raffle.ticketSupply, "Raffle is not ready to be completed" ); require(raffle.ticketsSold > 0, "No tickets were sold"); // Enhanced provably fair randomness using multiple entropy sources uint256 randomSeed = _generateRandomSeed(_raffleId, raffle); // Select winning ticket using modulo operation uint256 winningTicketNumber = randomSeed % raffle.ticketsSold; address winner = raffle.tickets[winningTicketNumber]; raffle.winner = winner; raffle.completed = true; // Calculate 50/50 split uint256 totalPrize = raffle.totalAmount; uint256 winnerShare = totalPrize / 2; // 50% to winner uint256 creatorShare = totalPrize - winnerShare; // 50% to creator // Transfer winner's share (bool winnerPaid, ) = winner.call{value: winnerShare}(""); require(winnerPaid, "Failed to transfer prize to winner"); // Transfer creator's share (bool creatorPaid, ) = raffle.creator.call{value: creatorShare}(""); require(creatorPaid, "Failed to transfer prize to creator"); emit RaffleCompleted(_raffleId, winner, winnerShare, creatorShare); } /** * @dev Generate cryptographically secure random seed * Uses multiple entropy sources that cannot be predicted or manipulated */ function _generateRandomSeed(uint256 _raffleId, Raffle storage raffle) private view returns (uint256) { // Combine multiple entropy sources for provably fair randomness return uint256( keccak256( abi.encodePacked( // Ethereum's native randomness beacon (post-Merge PoS) block.prevrandao, // Previous block hash - unknown when raffle was created blockhash(block.number - 1), // Time and block entropy block.timestamp, block.number, // Raffle-specific entropy raffle.creator, raffle.startTime, raffle.endTime, raffle.ticketsSold, raffle.totalAmount, // Transaction entropy msg.sender, tx.gasprice, // Contract entropy address(this), // Participants entropy _getParticipantsHash(_raffleId) ) ) ); } /** * @dev Internal function to generate hash from all raffle participants * Adds additional entropy from the participant addresses */ function _getParticipantsHash(uint256 _raffleId) private view returns (bytes32) { Raffle storage raffle = raffles[_raffleId]; bytes memory participantsData; // Include up to 50 ticket holders for entropy (gas optimization) uint256 maxTickets = raffle.ticketsSold > 50 ? 50 : raffle.ticketsSold; for (uint256 i = 0; i < maxTickets; i++) { participantsData = abi.encodePacked(participantsData, raffle.tickets[i]); } return keccak256(participantsData); } /** * @dev Get the total number of raffles created */ function getRaffleCount() external view returns (uint256) { return raffles.length; } /** * @dev Get all ticket numbers owned by a user for a specific raffle * @param _raffleId The raffle ID * @param _user The user's address */ function getUserTickets( uint256 _raffleId, address _user ) external view returns (uint256[] memory) { require(_raffleId < raffles.length, "Raffle does not exist"); return raffles[_raffleId].userTickets[_user]; } /** * @dev Get detailed information about a specific raffle * @param _raffleId The raffle ID */ function getRaffle( uint256 _raffleId ) external view returns ( address creator, string memory title, string memory description, string memory image, uint256 ticketSupply, uint256 ticketsSold, uint256 startTime, uint256 endTime, address winner, bool completed, uint256 totalAmount ) { require(_raffleId < raffles.length, "Raffle does not exist"); Raffle storage raffle = raffles[_raffleId]; return ( raffle.creator, raffle.title, raffle.description, raffle.image, raffle.ticketSupply, raffle.ticketsSold, raffle.startTime, raffle.endTime, raffle.winner, raffle.completed, raffle.totalAmount ); } /** * @dev Get active raffles (not completed and within time bounds) */ function getActiveRaffles() external view returns (uint256[] memory) { uint256 activeCount = 0; // First pass: count active raffles for (uint256 i = 0; i < raffles.length; i++) { if ( !raffles[i].completed && block.timestamp >= raffles[i].startTime && block.timestamp < raffles[i].endTime ) { activeCount++; } } // Second pass: populate array uint256[] memory activeRaffleIds = new uint256[](activeCount); uint256 currentIndex = 0; for (uint256 i = 0; i < raffles.length; i++) { if ( !raffles[i].completed && block.timestamp >= raffles[i].startTime && block.timestamp < raffles[i].endTime ) { activeRaffleIds[currentIndex] = i; currentIndex++; } } return activeRaffleIds; } /** * @dev Get time remaining for a specific raffle * @param _raffleId The raffle ID * @return timeRemaining seconds remaining (0 if ended) */ function getTimeRemaining( uint256 _raffleId ) external view returns (uint256 timeRemaining) { require(_raffleId < raffles.length, "Raffle does not exist"); if (block.timestamp >= raffles[_raffleId].endTime) { return 0; } return raffles[_raffleId].endTime - block.timestamp; } /** * @dev Check if a raffle is active (started but not ended or completed) * @param _raffleId The raffle ID */ function isRaffleActive(uint256 _raffleId) external view returns (bool) { require(_raffleId < raffles.length, "Raffle does not exist"); Raffle storage raffle = raffles[_raffleId]; return !raffle.completed && block.timestamp >= raffle.startTime && block.timestamp < raffle.endTime; } /** * @dev Receive function to accept ETH payments */ receive() external payable { // Allow the contract to receive ETH } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"raffleId","type":"uint256"},{"indexed":true,"internalType":"address","name":"winner","type":"address"},{"indexed":false,"internalType":"uint256","name":"winnerPrize","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"creatorPrize","type":"uint256"}],"name":"RaffleCompleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"raffleId","type":"uint256"},{"indexed":true,"internalType":"address","name":"creator","type":"address"},{"indexed":false,"internalType":"string","name":"title","type":"string"},{"indexed":false,"internalType":"uint256","name":"ticketSupply","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"startTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endTime","type":"uint256"}],"name":"RaffleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"raffleId","type":"uint256"},{"indexed":true,"internalType":"address","name":"buyer","type":"address"},{"indexed":false,"internalType":"uint256","name":"quantity","type":"uint256"},{"indexed":false,"internalType":"uint256[]","name":"ticketNumbers","type":"uint256[]"}],"name":"TicketPurchased","type":"event"},{"inputs":[],"name":"CREATION_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEPLOYER_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_CREATION_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PLATFORM_WALLET","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TICKET_PRICE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_raffleId","type":"uint256"},{"internalType":"uint256","name":"_quantity","type":"uint256"}],"name":"buyTickets","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_raffleId","type":"uint256"}],"name":"completeRaffle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_title","type":"string"},{"internalType":"string","name":"_description","type":"string"},{"internalType":"string","name":"_image","type":"string"},{"internalType":"uint256","name":"_ticketSupply","type":"uint256"},{"internalType":"uint256","name":"_startTime","type":"uint256"},{"internalType":"uint256","name":"_endTime","type":"uint256"}],"name":"createRaffle","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getActiveRaffles","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_raffleId","type":"uint256"}],"name":"getRaffle","outputs":[{"internalType":"address","name":"creator","type":"address"},{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"image","type":"string"},{"internalType":"uint256","name":"ticketSupply","type":"uint256"},{"internalType":"uint256","name":"ticketsSold","type":"uint256"},{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"address","name":"winner","type":"address"},{"internalType":"bool","name":"completed","type":"bool"},{"internalType":"uint256","name":"totalAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRaffleCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_raffleId","type":"uint256"}],"name":"getTimeRemaining","outputs":[{"internalType":"uint256","name":"timeRemaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_raffleId","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"getUserTickets","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_raffleId","type":"uint256"}],"name":"isRaffleActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"raffles","outputs":[{"internalType":"address","name":"creator","type":"address"},{"internalType":"string","name":"title","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"image","type":"string"},{"internalType":"uint256","name":"ticketSupply","type":"uint256"},{"internalType":"uint256","name":"ticketsSold","type":"uint256"},{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"address","name":"winner","type":"address"},{"internalType":"bool","name":"completed","type":"bool"},{"internalType":"uint256","name":"totalAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405234801561001057600080fd5b5061001a33610023565b60018055610073565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b612020806100826000396000f3fe60806040526004361061010d5760003560e01c80638627df4611610095578063e4dafec911610064578063e4dafec9146102d7578063e7a7f65c146102f7578063eb8b12d414610317578063f2fde38b1461033f578063f89367e51461035f57600080fd5b80638627df461461024a5780638cd429911461025d5780638da5cb5b1461027d578063d2a156e0146102af57600080fd5b80633dc70c16116100dc5780633dc70c16146101ae57806349a2104d146101d05780635d4bc0ce146101eb578063713c9ea914610222578063715018a61461023557600080fd5b80631a95f15f146101195780631d8c6086146101475780633077a8631461015c5780633cd6c7ee1461017e57600080fd5b3661011457005b600080fd5b34801561012557600080fd5b506101346608e1bc9bf0400081565b6040519081526020015b60405180910390f35b34801561015357600080fd5b50600254610134565b34801561016857600080fd5b5061017c6101773660046119dd565b610374565b005b34801561018a57600080fd5b5061019e6101993660046119dd565b6106ea565b604051901515815260200161013e565b3480156101ba57600080fd5b506101c361076c565b60405161013e9190611a31565b3480156101dc57600080fd5b50610134662386f26fc1000081565b3480156101f757600080fd5b5061020b6102063660046119dd565b610967565b60405161013e9b9a99989796959493929190611a94565b61017c610230366004611bc5565b610b82565b34801561024157600080fd5b5061017c610f4b565b61017c610258366004611c69565b610f5f565b34801561026957600080fd5b506101346102783660046119dd565b611303565b34801561028957600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161013e565b3480156102bb57600080fd5b50610297738f4108d59d2ea179671da3e7ddf80be7ad665bab81565b3480156102e357600080fd5b5061020b6102f23660046119dd565b611390565b34801561030357600080fd5b506101c3610312366004611ca7565b61161c565b34801561032357600080fd5b5061029773112140173b22bbf201d0b4247bd4cd1681e66ad581565b34801561034b57600080fd5b5061017c61035a366004611cd3565b6116cc565b34801561036b57600080fd5b50610134607881565b61037c611742565b60025481106103a65760405162461bcd60e51b815260040161039d90611cee565b60405180910390fd5b6000600282815481106103bb576103bb611d1d565b90600052602060002090600c020190508060080160149054906101000a900460ff16156103fa5760405162461bcd60e51b815260040161039d90611d33565b806007015442101580610414575080600401548160050154145b61046c5760405162461bcd60e51b815260206004820152602360248201527f526166666c65206973206e6f7420726561647920746f20626520636f6d706c656044820152621d195960ea1b606482015260840161039d565b60008160050154116104b75760405162461bcd60e51b8152602060048201526014602482015273139bc81d1a58dad95d1cc81dd95c99481cdbdb1960621b604482015260640161039d565b60006104c3838361179b565b905060008260050154826104d79190611d8a565b6000818152600a850160205260408120546008860180546001600160a81b0319166001600160a01b03909216918217600160a01b17905560098601549293509190610523600283611db4565b905060006105318284611dc8565b90506000846001600160a01b03168360405160006040518083038185875af1925050503d8060008114610580576040519150601f19603f3d011682016040523d82523d6000602084013e610585565b606091505b50509050806105e15760405162461bcd60e51b815260206004820152602260248201527f4661696c656420746f207472616e73666572207072697a6520746f2077696e6e60448201526132b960f11b606482015260840161039d565b87546040516000916001600160a01b03169084908381818185875af1925050503d806000811461062d576040519150601f19603f3d011682016040523d82523d6000602084013e610632565b606091505b505090508061068f5760405162461bcd60e51b815260206004820152602360248201527f4661696c656420746f207472616e73666572207072697a6520746f20637265616044820152623a37b960e91b606482015260840161039d565b60408051858152602081018590526001600160a01b038816918c917f6d923903234942f55c3e2f800f13803f26c28fc270f3951572fe9b2b46bd3092910160405180910390a35050505050505050506106e760018055565b50565b600254600090821061070e5760405162461bcd60e51b815260040161039d90611cee565b60006002838154811061072357610723611d1d565b90600052602060002090600c020190508060080160149054906101000a900460ff16158015610756575080600601544210155b80156107655750806007015442105b9392505050565b60606000805b600254811015610833576002818154811061078f5761078f611d1d565b90600052602060002090600c020160080160149054906101000a900460ff161580156107df5750600281815481106107c9576107c9611d1d565b90600052602060002090600c0201600601544210155b801561080e5750600281815481106107f9576107f9611d1d565b90600052602060002090600c02016007015442105b15610821578161081d81611ddb565b9250505b8061082b81611ddb565b915050610772565b5060008167ffffffffffffffff81111561084f5761084f611b22565b604051908082528060200260200182016040528015610878578160200160208202803683370190505b5090506000805b60025481101561095e576002818154811061089c5761089c611d1d565b90600052602060002090600c020160080160149054906101000a900460ff161580156108ec5750600281815481106108d6576108d6611d1d565b90600052602060002090600c0201600601544210155b801561091b57506002818154811061090657610906611d1d565b90600052602060002090600c02016007015442105b1561094c578083838151811061093357610933611d1d565b60209081029190910101528161094881611ddb565b9250505b8061095681611ddb565b91505061087f565b50909392505050565b6002818154811061097757600080fd5b60009182526020909120600c9091020180546001820180546001600160a01b039092169350906109a690611df4565b80601f01602080910402602001604051908101604052809291908181526020018280546109d290611df4565b8015610a1f5780601f106109f457610100808354040283529160200191610a1f565b820191906000526020600020905b815481529060010190602001808311610a0257829003601f168201915b505050505090806002018054610a3490611df4565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6090611df4565b8015610aad5780601f10610a8257610100808354040283529160200191610aad565b820191906000526020600020905b815481529060010190602001808311610a9057829003601f168201915b505050505090806003018054610ac290611df4565b80601f0160208091040260200160405190810160405280929190818152602001828054610aee90611df4565b8015610b3b5780601f10610b1057610100808354040283529160200191610b3b565b820191906000526020600020905b815481529060010190602001808311610b1e57829003601f168201915b505050506004830154600584015460068501546007860154600887015460099097015495969395929450909290916001600160a01b03821691600160a01b900460ff16908b565b610b8a611742565b662386f26fc100003414610bf05760405162461bcd60e51b815260206004820152602760248201527f4d7573742073656e642065786163746c7920302e303120455448206372656174604482015266696f6e2066656560c81b606482015260840161039d565b60008311610c4c5760405162461bcd60e51b8152602060048201526024808201527f5469636b657420737570706c79206d75737420626520677265617465722074686044820152630616e20360e41b606482015260840161039d565b610c57607842611e2e565b821015610cc15760405162461bcd60e51b815260206004820152603260248201527f526166666c65206d757374207374617274206174206c656173742032206d696e6044820152717574657320696e207468652066757475726560701b606482015260840161039d565b818111610d1a5760405162461bcd60e51b815260206004820152602160248201527f456e642074696d65206d7573742062652061667465722073746172742074696d6044820152606560f81b606482015260840161039d565b6000865111610d635760405162461bcd60e51b81526020600482015260156024820152745469746c652063616e6e6f7420626520656d70747960581b604482015260640161039d565b60405160009073112140173b22bbf201d0b4247bd4cd1681e66ad590662386f26fc10000908381818185875af1925050503d8060008114610dc0576040519150601f19603f3d011682016040523d82523d6000602084013e610dc5565b606091505b5050905080610e2d5760405162461bcd60e51b815260206004820152602e60248201527f4661696c656420746f2073656e64206372656174696f6e2066656520746f207060448201526d1b185d199bdc9b481dd85b1b195d60921b606482015260840161039d565b60028054600181018255600091909152600c027f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace810180546001600160a01b03191633178155907f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf01610ea08982611e8c565b5060028101610eaf8882611e8c565b5060038101610ebe8782611e8c565b5060048101859055600681018490556007810183905560088101805460ff60a01b19169055600060098201556002543390610efb90600190611dc8565b7feebaab82a28b562d53747b80b43a9fef92fd64a0fa300a0b1473a218c39adffa8a888888604051610f309493929190611f4c565b60405180910390a35050610f4360018055565b505050505050565b610f5361187f565b610f5d60006118d9565b565b610f67611742565b6002548210610f885760405162461bcd60e51b815260040161039d90611cee565b60008111610fd85760405162461bcd60e51b815260206004820152601f60248201527f5175616e74697479206d7573742062652067726561746572207468616e203000604482015260640161039d565b600060028381548110610fed57610fed611d1d565b90600052602060002090600c020190508060080160149054906101000a900460ff161561102c5760405162461bcd60e51b815260040161039d90611d33565b80600601544210156110805760405162461bcd60e51b815260206004820152601a60248201527f526166666c6520686173206e6f74207374617274656420796574000000000000604482015260640161039d565b806007015442106110c65760405162461bcd60e51b815260206004820152601060248201526f149859999b19481a185cc8195b99195960821b604482015260640161039d565b6110d7826608e1bc9bf04000611f7b565b34146111425760405162461bcd60e51b815260206004820152603460248201527f4d7573742073656e6420636f72726563742045544820616d6f756e742028302e604482015273303032352045544820706572207469636b65742960601b606482015260840161039d565b80600401548282600501546111579190611e2e565b11156111a55760405162461bcd60e51b815260206004820152601c60248201527f4e6f7420656e6f756768207469636b65747320617661696c61626c6500000000604482015260640161039d565b60008267ffffffffffffffff8111156111c0576111c0611b22565b6040519080825280602002602001820160405280156111e9578160200160208202803683370190505b50905060005b838110156112815760008184600501546112099190611e2e565b6000818152600a86016020908152604080832080546001600160a01b031916339081179091558352600b88018252822080546001810182559083529120018190558351909150819084908490811061126357611263611d1d565b6020908102919091010152508061127981611ddb565b9150506111ef565b50828260050160008282546112969190611e2e565b92505081905550348260090160008282546112b19190611e2e565b9091555050604051339085907fdd1335d8700f40d827a1ef5cd3c318f03e9b5ad405f80611223021a60056f4d1906112ec9087908690611f92565b60405180910390a350506112ff60018055565b5050565b60025460009082106113275760405162461bcd60e51b815260040161039d90611cee565b6002828154811061133a5761133a611d1d565b90600052602060002090600c020160070154421061135a57506000919050565b426002838154811061136e5761136e611d1d565b90600052602060002090600c02016007015461138a9190611dc8565b92915050565b6000606080606060008060008060008060006002805490508c106113c65760405162461bcd60e51b815260040161039d90611cee565b600060028d815481106113db576113db611d1d565b90600052602060002090600c020190508060000160009054906101000a90046001600160a01b031681600101826002018360030184600401548560050154866006015487600701548860080160009054906101000a90046001600160a01b03168960080160149054906101000a900460ff168a6009015489805461145e90611df4565b80601f016020809104026020016040519081016040528092919081815260200182805461148a90611df4565b80156114d75780601f106114ac576101008083540402835291602001916114d7565b820191906000526020600020905b8154815290600101906020018083116114ba57829003601f168201915b505050505099508880546114ea90611df4565b80601f016020809104026020016040519081016040528092919081815260200182805461151690611df4565b80156115635780601f1061153857610100808354040283529160200191611563565b820191906000526020600020905b81548152906001019060200180831161154657829003601f168201915b5050505050985087805461157690611df4565b80601f01602080910402602001604051908101604052809291908181526020018280546115a290611df4565b80156115ef5780601f106115c4576101008083540402835291602001916115ef565b820191906000526020600020905b8154815290600101906020018083116115d257829003601f168201915b505050505097509b509b509b509b509b509b509b509b509b509b509b505091939597999b90929496989a50565b60025460609083106116405760405162461bcd60e51b815260040161039d90611cee565b6002838154811061165357611653611d1d565b600091825260208083206001600160a01b0386168452600b600c90930201919091018152604091829020805483518184028101840190945280845290918301828280156116bf57602002820191906000526020600020905b8154815260200190600101908083116116ab575b5050505050905092915050565b6116d461187f565b6001600160a01b0381166117395760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161039d565b6106e7816118d9565b6002600154036117945760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161039d565b6002600155565b6000446117a9600143611dc8565b4042438560000160009054906101000a90046001600160a01b03168660060154876007015488600501548960090154333a306117e48f611929565b60408051602081019e909e528d019b909b526060808d019a909a5260808c01989098526bffffffffffffffffffffffff1996891b871660a08c015260b48b019590955260d48a019390935260f4890191909152610114880152841b8216610134870152610148860152911b1661016883015261017c82015261019c0160408051601f1981840301815291905280516020909101209392505050565b6000546001600160a01b03163314610f5d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806002838154811061193f5761193f611d1d565b90600052602060002090600c0201905060606000603283600501541161196957826005015461196c565b60325b905060005b818110156119cc576000818152600a850160209081526040918290205491516119a89286926001600160a01b039091169101611fb3565b604051602081830303815290604052925080806119c490611ddb565b915050611971565b505080516020909101209392505050565b6000602082840312156119ef57600080fd5b5035919050565b600081518084526020808501945080840160005b83811015611a2657815187529582019590820190600101611a0a565b509495945050505050565b60208152600061076560208301846119f6565b60005b83811015611a5f578181015183820152602001611a47565b50506000910152565b60008151808452611a80816020860160208601611a44565b601f01601f19169290920160200192915050565b6001600160a01b038c8116825261016060208301819052600091611aba8483018f611a68565b91508382036040850152611ace828e611a68565b91508382036060850152611ae2828d611a68565b608085019b909b5260a0840199909952505060c081019590955260e085019390935293166101008301529115156101208201526101400152949350505050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611b4957600080fd5b813567ffffffffffffffff80821115611b6457611b64611b22565b604051601f8301601f19908116603f01168101908282118183101715611b8c57611b8c611b22565b81604052838152866020858801011115611ba557600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060c08789031215611bde57600080fd5b863567ffffffffffffffff80821115611bf657600080fd5b611c028a838b01611b38565b97506020890135915080821115611c1857600080fd5b611c248a838b01611b38565b96506040890135915080821115611c3a57600080fd5b50611c4789828a01611b38565b945050606087013592506080870135915060a087013590509295509295509295565b60008060408385031215611c7c57600080fd5b50508035926020909101359150565b80356001600160a01b0381168114611ca257600080fd5b919050565b60008060408385031215611cba57600080fd5b82359150611cca60208401611c8b565b90509250929050565b600060208284031215611ce557600080fd5b61076582611c8b565b602080825260159082015274149859999b1948191bd95cc81b9bdd08195e1a5cdd605a1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60208082526021908201527f526166666c652068617320616c7265616479206265656e20636f6d706c6574656040820152601960fa1b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b600082611d9957611d99611d74565b500690565b634e487b7160e01b600052601160045260246000fd5b600082611dc357611dc3611d74565b500490565b8181038181111561138a5761138a611d9e565b600060018201611ded57611ded611d9e565b5060010190565b600181811c90821680611e0857607f821691505b602082108103611e2857634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561138a5761138a611d9e565b601f821115611e8757600081815260208120601f850160051c81016020861015611e685750805b601f850160051c820191505b81811015610f4357828155600101611e74565b505050565b815167ffffffffffffffff811115611ea657611ea6611b22565b611eba81611eb48454611df4565b84611e41565b602080601f831160018114611eef5760008415611ed75750858301515b600019600386901b1c1916600185901b178555610f43565b600085815260208120601f198616915b82811015611f1e57888601518255948401946001909101908401611eff565b5085821015611f3c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b608081526000611f5f6080830187611a68565b6020830195909552506040810192909252606090910152919050565b808202811582820484141761138a5761138a611d9e565b828152604060208201526000611fab60408301846119f6565b949350505050565b60008351611fc5818460208801611a44565b60609390931b6bffffffffffffffffffffffff1916919092019081526014019291505056fea2646970667358221220d6a0bbfe700b4d473fa45ba6f86dc058088312af394784944598a0891143c45564736f6c63430008130033
Deployed Bytecode
0x60806040526004361061010d5760003560e01c80638627df4611610095578063e4dafec911610064578063e4dafec9146102d7578063e7a7f65c146102f7578063eb8b12d414610317578063f2fde38b1461033f578063f89367e51461035f57600080fd5b80638627df461461024a5780638cd429911461025d5780638da5cb5b1461027d578063d2a156e0146102af57600080fd5b80633dc70c16116100dc5780633dc70c16146101ae57806349a2104d146101d05780635d4bc0ce146101eb578063713c9ea914610222578063715018a61461023557600080fd5b80631a95f15f146101195780631d8c6086146101475780633077a8631461015c5780633cd6c7ee1461017e57600080fd5b3661011457005b600080fd5b34801561012557600080fd5b506101346608e1bc9bf0400081565b6040519081526020015b60405180910390f35b34801561015357600080fd5b50600254610134565b34801561016857600080fd5b5061017c6101773660046119dd565b610374565b005b34801561018a57600080fd5b5061019e6101993660046119dd565b6106ea565b604051901515815260200161013e565b3480156101ba57600080fd5b506101c361076c565b60405161013e9190611a31565b3480156101dc57600080fd5b50610134662386f26fc1000081565b3480156101f757600080fd5b5061020b6102063660046119dd565b610967565b60405161013e9b9a99989796959493929190611a94565b61017c610230366004611bc5565b610b82565b34801561024157600080fd5b5061017c610f4b565b61017c610258366004611c69565b610f5f565b34801561026957600080fd5b506101346102783660046119dd565b611303565b34801561028957600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161013e565b3480156102bb57600080fd5b50610297738f4108d59d2ea179671da3e7ddf80be7ad665bab81565b3480156102e357600080fd5b5061020b6102f23660046119dd565b611390565b34801561030357600080fd5b506101c3610312366004611ca7565b61161c565b34801561032357600080fd5b5061029773112140173b22bbf201d0b4247bd4cd1681e66ad581565b34801561034b57600080fd5b5061017c61035a366004611cd3565b6116cc565b34801561036b57600080fd5b50610134607881565b61037c611742565b60025481106103a65760405162461bcd60e51b815260040161039d90611cee565b60405180910390fd5b6000600282815481106103bb576103bb611d1d565b90600052602060002090600c020190508060080160149054906101000a900460ff16156103fa5760405162461bcd60e51b815260040161039d90611d33565b806007015442101580610414575080600401548160050154145b61046c5760405162461bcd60e51b815260206004820152602360248201527f526166666c65206973206e6f7420726561647920746f20626520636f6d706c656044820152621d195960ea1b606482015260840161039d565b60008160050154116104b75760405162461bcd60e51b8152602060048201526014602482015273139bc81d1a58dad95d1cc81dd95c99481cdbdb1960621b604482015260640161039d565b60006104c3838361179b565b905060008260050154826104d79190611d8a565b6000818152600a850160205260408120546008860180546001600160a81b0319166001600160a01b03909216918217600160a01b17905560098601549293509190610523600283611db4565b905060006105318284611dc8565b90506000846001600160a01b03168360405160006040518083038185875af1925050503d8060008114610580576040519150601f19603f3d011682016040523d82523d6000602084013e610585565b606091505b50509050806105e15760405162461bcd60e51b815260206004820152602260248201527f4661696c656420746f207472616e73666572207072697a6520746f2077696e6e60448201526132b960f11b606482015260840161039d565b87546040516000916001600160a01b03169084908381818185875af1925050503d806000811461062d576040519150601f19603f3d011682016040523d82523d6000602084013e610632565b606091505b505090508061068f5760405162461bcd60e51b815260206004820152602360248201527f4661696c656420746f207472616e73666572207072697a6520746f20637265616044820152623a37b960e91b606482015260840161039d565b60408051858152602081018590526001600160a01b038816918c917f6d923903234942f55c3e2f800f13803f26c28fc270f3951572fe9b2b46bd3092910160405180910390a35050505050505050506106e760018055565b50565b600254600090821061070e5760405162461bcd60e51b815260040161039d90611cee565b60006002838154811061072357610723611d1d565b90600052602060002090600c020190508060080160149054906101000a900460ff16158015610756575080600601544210155b80156107655750806007015442105b9392505050565b60606000805b600254811015610833576002818154811061078f5761078f611d1d565b90600052602060002090600c020160080160149054906101000a900460ff161580156107df5750600281815481106107c9576107c9611d1d565b90600052602060002090600c0201600601544210155b801561080e5750600281815481106107f9576107f9611d1d565b90600052602060002090600c02016007015442105b15610821578161081d81611ddb565b9250505b8061082b81611ddb565b915050610772565b5060008167ffffffffffffffff81111561084f5761084f611b22565b604051908082528060200260200182016040528015610878578160200160208202803683370190505b5090506000805b60025481101561095e576002818154811061089c5761089c611d1d565b90600052602060002090600c020160080160149054906101000a900460ff161580156108ec5750600281815481106108d6576108d6611d1d565b90600052602060002090600c0201600601544210155b801561091b57506002818154811061090657610906611d1d565b90600052602060002090600c02016007015442105b1561094c578083838151811061093357610933611d1d565b60209081029190910101528161094881611ddb565b9250505b8061095681611ddb565b91505061087f565b50909392505050565b6002818154811061097757600080fd5b60009182526020909120600c9091020180546001820180546001600160a01b039092169350906109a690611df4565b80601f01602080910402602001604051908101604052809291908181526020018280546109d290611df4565b8015610a1f5780601f106109f457610100808354040283529160200191610a1f565b820191906000526020600020905b815481529060010190602001808311610a0257829003601f168201915b505050505090806002018054610a3490611df4565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6090611df4565b8015610aad5780601f10610a8257610100808354040283529160200191610aad565b820191906000526020600020905b815481529060010190602001808311610a9057829003601f168201915b505050505090806003018054610ac290611df4565b80601f0160208091040260200160405190810160405280929190818152602001828054610aee90611df4565b8015610b3b5780601f10610b1057610100808354040283529160200191610b3b565b820191906000526020600020905b815481529060010190602001808311610b1e57829003601f168201915b505050506004830154600584015460068501546007860154600887015460099097015495969395929450909290916001600160a01b03821691600160a01b900460ff16908b565b610b8a611742565b662386f26fc100003414610bf05760405162461bcd60e51b815260206004820152602760248201527f4d7573742073656e642065786163746c7920302e303120455448206372656174604482015266696f6e2066656560c81b606482015260840161039d565b60008311610c4c5760405162461bcd60e51b8152602060048201526024808201527f5469636b657420737570706c79206d75737420626520677265617465722074686044820152630616e20360e41b606482015260840161039d565b610c57607842611e2e565b821015610cc15760405162461bcd60e51b815260206004820152603260248201527f526166666c65206d757374207374617274206174206c656173742032206d696e6044820152717574657320696e207468652066757475726560701b606482015260840161039d565b818111610d1a5760405162461bcd60e51b815260206004820152602160248201527f456e642074696d65206d7573742062652061667465722073746172742074696d6044820152606560f81b606482015260840161039d565b6000865111610d635760405162461bcd60e51b81526020600482015260156024820152745469746c652063616e6e6f7420626520656d70747960581b604482015260640161039d565b60405160009073112140173b22bbf201d0b4247bd4cd1681e66ad590662386f26fc10000908381818185875af1925050503d8060008114610dc0576040519150601f19603f3d011682016040523d82523d6000602084013e610dc5565b606091505b5050905080610e2d5760405162461bcd60e51b815260206004820152602e60248201527f4661696c656420746f2073656e64206372656174696f6e2066656520746f207060448201526d1b185d199bdc9b481dd85b1b195d60921b606482015260840161039d565b60028054600181018255600091909152600c027f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace810180546001600160a01b03191633178155907f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf01610ea08982611e8c565b5060028101610eaf8882611e8c565b5060038101610ebe8782611e8c565b5060048101859055600681018490556007810183905560088101805460ff60a01b19169055600060098201556002543390610efb90600190611dc8565b7feebaab82a28b562d53747b80b43a9fef92fd64a0fa300a0b1473a218c39adffa8a888888604051610f309493929190611f4c565b60405180910390a35050610f4360018055565b505050505050565b610f5361187f565b610f5d60006118d9565b565b610f67611742565b6002548210610f885760405162461bcd60e51b815260040161039d90611cee565b60008111610fd85760405162461bcd60e51b815260206004820152601f60248201527f5175616e74697479206d7573742062652067726561746572207468616e203000604482015260640161039d565b600060028381548110610fed57610fed611d1d565b90600052602060002090600c020190508060080160149054906101000a900460ff161561102c5760405162461bcd60e51b815260040161039d90611d33565b80600601544210156110805760405162461bcd60e51b815260206004820152601a60248201527f526166666c6520686173206e6f74207374617274656420796574000000000000604482015260640161039d565b806007015442106110c65760405162461bcd60e51b815260206004820152601060248201526f149859999b19481a185cc8195b99195960821b604482015260640161039d565b6110d7826608e1bc9bf04000611f7b565b34146111425760405162461bcd60e51b815260206004820152603460248201527f4d7573742073656e6420636f72726563742045544820616d6f756e742028302e604482015273303032352045544820706572207469636b65742960601b606482015260840161039d565b80600401548282600501546111579190611e2e565b11156111a55760405162461bcd60e51b815260206004820152601c60248201527f4e6f7420656e6f756768207469636b65747320617661696c61626c6500000000604482015260640161039d565b60008267ffffffffffffffff8111156111c0576111c0611b22565b6040519080825280602002602001820160405280156111e9578160200160208202803683370190505b50905060005b838110156112815760008184600501546112099190611e2e565b6000818152600a86016020908152604080832080546001600160a01b031916339081179091558352600b88018252822080546001810182559083529120018190558351909150819084908490811061126357611263611d1d565b6020908102919091010152508061127981611ddb565b9150506111ef565b50828260050160008282546112969190611e2e565b92505081905550348260090160008282546112b19190611e2e565b9091555050604051339085907fdd1335d8700f40d827a1ef5cd3c318f03e9b5ad405f80611223021a60056f4d1906112ec9087908690611f92565b60405180910390a350506112ff60018055565b5050565b60025460009082106113275760405162461bcd60e51b815260040161039d90611cee565b6002828154811061133a5761133a611d1d565b90600052602060002090600c020160070154421061135a57506000919050565b426002838154811061136e5761136e611d1d565b90600052602060002090600c02016007015461138a9190611dc8565b92915050565b6000606080606060008060008060008060006002805490508c106113c65760405162461bcd60e51b815260040161039d90611cee565b600060028d815481106113db576113db611d1d565b90600052602060002090600c020190508060000160009054906101000a90046001600160a01b031681600101826002018360030184600401548560050154866006015487600701548860080160009054906101000a90046001600160a01b03168960080160149054906101000a900460ff168a6009015489805461145e90611df4565b80601f016020809104026020016040519081016040528092919081815260200182805461148a90611df4565b80156114d75780601f106114ac576101008083540402835291602001916114d7565b820191906000526020600020905b8154815290600101906020018083116114ba57829003601f168201915b505050505099508880546114ea90611df4565b80601f016020809104026020016040519081016040528092919081815260200182805461151690611df4565b80156115635780601f1061153857610100808354040283529160200191611563565b820191906000526020600020905b81548152906001019060200180831161154657829003601f168201915b5050505050985087805461157690611df4565b80601f01602080910402602001604051908101604052809291908181526020018280546115a290611df4565b80156115ef5780601f106115c4576101008083540402835291602001916115ef565b820191906000526020600020905b8154815290600101906020018083116115d257829003601f168201915b505050505097509b509b509b509b509b509b509b509b509b509b509b505091939597999b90929496989a50565b60025460609083106116405760405162461bcd60e51b815260040161039d90611cee565b6002838154811061165357611653611d1d565b600091825260208083206001600160a01b0386168452600b600c90930201919091018152604091829020805483518184028101840190945280845290918301828280156116bf57602002820191906000526020600020905b8154815260200190600101908083116116ab575b5050505050905092915050565b6116d461187f565b6001600160a01b0381166117395760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161039d565b6106e7816118d9565b6002600154036117945760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161039d565b6002600155565b6000446117a9600143611dc8565b4042438560000160009054906101000a90046001600160a01b03168660060154876007015488600501548960090154333a306117e48f611929565b60408051602081019e909e528d019b909b526060808d019a909a5260808c01989098526bffffffffffffffffffffffff1996891b871660a08c015260b48b019590955260d48a019390935260f4890191909152610114880152841b8216610134870152610148860152911b1661016883015261017c82015261019c0160408051601f1981840301815291905280516020909101209392505050565b6000546001600160a01b03163314610f5d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161039d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806002838154811061193f5761193f611d1d565b90600052602060002090600c0201905060606000603283600501541161196957826005015461196c565b60325b905060005b818110156119cc576000818152600a850160209081526040918290205491516119a89286926001600160a01b039091169101611fb3565b604051602081830303815290604052925080806119c490611ddb565b915050611971565b505080516020909101209392505050565b6000602082840312156119ef57600080fd5b5035919050565b600081518084526020808501945080840160005b83811015611a2657815187529582019590820190600101611a0a565b509495945050505050565b60208152600061076560208301846119f6565b60005b83811015611a5f578181015183820152602001611a47565b50506000910152565b60008151808452611a80816020860160208601611a44565b601f01601f19169290920160200192915050565b6001600160a01b038c8116825261016060208301819052600091611aba8483018f611a68565b91508382036040850152611ace828e611a68565b91508382036060850152611ae2828d611a68565b608085019b909b5260a0840199909952505060c081019590955260e085019390935293166101008301529115156101208201526101400152949350505050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611b4957600080fd5b813567ffffffffffffffff80821115611b6457611b64611b22565b604051601f8301601f19908116603f01168101908282118183101715611b8c57611b8c611b22565b81604052838152866020858801011115611ba557600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060c08789031215611bde57600080fd5b863567ffffffffffffffff80821115611bf657600080fd5b611c028a838b01611b38565b97506020890135915080821115611c1857600080fd5b611c248a838b01611b38565b96506040890135915080821115611c3a57600080fd5b50611c4789828a01611b38565b945050606087013592506080870135915060a087013590509295509295509295565b60008060408385031215611c7c57600080fd5b50508035926020909101359150565b80356001600160a01b0381168114611ca257600080fd5b919050565b60008060408385031215611cba57600080fd5b82359150611cca60208401611c8b565b90509250929050565b600060208284031215611ce557600080fd5b61076582611c8b565b602080825260159082015274149859999b1948191bd95cc81b9bdd08195e1a5cdd605a1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60208082526021908201527f526166666c652068617320616c7265616479206265656e20636f6d706c6574656040820152601960fa1b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b600082611d9957611d99611d74565b500690565b634e487b7160e01b600052601160045260246000fd5b600082611dc357611dc3611d74565b500490565b8181038181111561138a5761138a611d9e565b600060018201611ded57611ded611d9e565b5060010190565b600181811c90821680611e0857607f821691505b602082108103611e2857634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561138a5761138a611d9e565b601f821115611e8757600081815260208120601f850160051c81016020861015611e685750805b601f850160051c820191505b81811015610f4357828155600101611e74565b505050565b815167ffffffffffffffff811115611ea657611ea6611b22565b611eba81611eb48454611df4565b84611e41565b602080601f831160018114611eef5760008415611ed75750858301515b600019600386901b1c1916600185901b178555610f43565b600085815260208120601f198616915b82811015611f1e57888601518255948401946001909101908401611eff565b5085821015611f3c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b608081526000611f5f6080830187611a68565b6020830195909552506040810192909252606090910152919050565b808202811582820484141761138a5761138a611d9e565b828152604060208201526000611fab60408301846119f6565b949350505050565b60008351611fc5818460208801611a44565b60609390931b6bffffffffffffffffffffffff1916919092019081526014019291505056fea2646970667358221220d6a0bbfe700b4d473fa45ba6f86dc058088312af394784944598a0891143c45564736f6c63430008130033
Deployed Bytecode Sourcemap
6975:14223:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7138:51;;;;;;;;;;;;7177:12;7138:51;;;;;160:25:1;;;148:2;133:18;7138:51:0;;;;;;;;17264:98;;;;;;;;;;-1:-1:-1;17340:7:0;:14;17264:98;;13443:1608;;;;;;;;;;-1:-1:-1;13443:1608:0;;;;;:::i;:::-;;:::i;:::-;;20680:355;;;;;;;;;;-1:-1:-1;20680:355:0;;;;;:::i;:::-;;:::i;:::-;;;546:14:1;;539:22;521:41;;509:2;494:18;20680:355:0;381:187:1;19002:1007:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;7057:49::-;;;;;;;;;;;;7096:10;7057:49;;8185:23;;;;;;;;;;-1:-1:-1;8185:23:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;9164:1611::-;;;;;;:::i;:::-;;:::i;2889:103::-;;;;;;;;;;;;;:::i;10949:1564::-;;;;;;:::i;:::-;;:::i;20189:348::-;;;;;;;;;;-1:-1:-1;20189:348:0;;;;;:::i;:::-;;:::i;2241:87::-;;;;;;;;;;-1:-1:-1;2287:7:0;2314:6;-1:-1:-1;;;;;2314:6:0;2241:87;;;-1:-1:-1;;;;;5254:32:1;;;5236:51;;5224:2;5209:18;2241:87:0;5090:203:1;7443:94:0;;;;;;;;;;;;7495:42;7443:94;;17926:979;;;;;;;;;;-1:-1:-1;17926:979:0;;;;;:::i;:::-;;:::i;17541:258::-;;;;;;;;;;-1:-1:-1;17541:258:0;;;;;:::i;:::-;;:::i;7221:93::-;;;;;;;;;;;;7272:42;7221:93;;3147:201;;;;;;;;;;-1:-1:-1;3147:201:0;;;;;:::i;:::-;;:::i;7321:54::-;;;;;;;;;;;;7366:9;7321:54;;13443:1608;6059:21;:19;:21::i;:::-;13539:7:::1;:14:::0;13527:26;::::1;13519:60;;;;-1:-1:-1::0;;;13519:60:0::1;;;;;;;:::i;:::-;;;;;;;;;13592:21;13616:7;13624:9;13616:18;;;;;;;;:::i;:::-;;;;;;;;;;;13592:42;;13654:6;:16;;;;;;;;;;;;13653:17;13645:63;;;;-1:-1:-1::0;;;13645:63:0::1;;;;;;;:::i;:::-;13760:6;:14;;;13741:15;:33;;:95;;;;13817:6;:19;;;13795:6;:18;;;:41;13741:95;13719:180;;;::::0;-1:-1:-1;;;13719:180:0;;7012:2:1;13719:180:0::1;::::0;::::1;6994:21:1::0;7051:2;7031:18;;;7024:30;7090:34;7070:18;;;7063:62;-1:-1:-1;;;7141:18:1;;;7134:33;7184:19;;13719:180:0::1;6810:399:1::0;13719:180:0::1;13939:1;13918:6;:18;;;:22;13910:55;;;::::0;-1:-1:-1;;;13910:55:0;;7416:2:1;13910:55:0::1;::::0;::::1;7398:21:1::0;7455:2;7435:18;;;7428:30;-1:-1:-1;;;7474:18:1;;;7467:50;7534:18;;13910:55:0::1;7214:344:1::0;13910:55:0::1;14055:18;14076:38;14096:9;14107:6;14076:19;:38::i;:::-;14055:59;;14184:27;14227:6;:18;;;14214:10;:31;;;;:::i;:::-;14256:14;14273:35:::0;;;:14:::1;::::0;::::1;:35;::::0;;;;;14321:13:::1;::::0;::::1;:22:::0;;-1:-1:-1;;;;;;14354:23:0;-1:-1:-1;;;;;14273:35:0;;::::1;14354:23:::0;;;-1:-1:-1;;;14354:23:0::1;::::0;;14445:18:::1;::::0;::::1;::::0;14184:61;;-1:-1:-1;14273:35:0;14445:18;14496:14:::1;14509:1;14445:18:::0;14496:14:::1;:::i;:::-;14474:36:::0;-1:-1:-1;14538:20:0::1;14561:24;14474:36:::0;14561:10;:24:::1;:::i;:::-;14538:47;;14653:15;14674:6;-1:-1:-1::0;;;;;14674:11:0::1;14693;14674:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14652:57;;;14728:10;14720:57;;;::::0;-1:-1:-1;;;14720:57:0;;8614:2:1;14720:57:0::1;::::0;::::1;8596:21:1::0;8653:2;8633:18;;;8626:30;8692:34;8672:18;;;8665:62;-1:-1:-1;;;8743:18:1;;;8736:32;8785:19;;14720:57:0::1;8412:398:1::0;14720:57:0::1;14850:14:::0;;:44:::1;::::0;14828:16:::1;::::0;-1:-1:-1;;;;;14850:14:0::1;::::0;14877:12;;14828:16;14850:44;14828:16;14850:44;14877:12;14850:14;:44:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14827:67;;;14913:11;14905:59;;;::::0;-1:-1:-1;;;14905:59:0;;9017:2:1;14905:59:0::1;::::0;::::1;8999:21:1::0;9056:2;9036:18;;;9029:30;9095:34;9075:18;;;9068:62;-1:-1:-1;;;9146:18:1;;;9139:33;9189:19;;14905:59:0::1;8815:399:1::0;14905:59:0::1;14982:61;::::0;;9393:25:1;;;9449:2;9434:18;;9427:34;;;-1:-1:-1;;;;;14982:61:0;::::1;::::0;14998:9;;14982:61:::1;::::0;9366:18:1;14982:61:0::1;;;;;;;13508:1543;;;;;;;;;6103:20:::0;5497:1;6623:22;;6440:213;6103:20;13443:1608;:::o;20680:355::-;20783:7;:14;20746:4;;20771:26;;20763:60;;;;-1:-1:-1;;;20763:60:0;;;;;;;:::i;:::-;20836:21;20860:7;20868:9;20860:18;;;;;;;;:::i;:::-;;;;;;;;;;;20836:42;;20910:6;:16;;;;;;;;;;;;20909:17;:69;;;;;20962:6;:16;;;20943:15;:35;;20909:69;:118;;;;;21013:6;:14;;;20995:15;:32;20909:118;20889:138;20680:355;-1:-1:-1;;;20680:355:0:o;19002:1007::-;19053:16;19082:19;19168:9;19163:295;19187:7;:14;19183:18;;19163:295;;;19246:7;19254:1;19246:10;;;;;;;;:::i;:::-;;;;;;;;;;;:20;;;;;;;;;;;;19245:21;:81;;;;;19306:7;19314:1;19306:10;;;;;;;;:::i;:::-;;;;;;;;;;;:20;;;19287:15;:39;;19245:81;:138;;;;;19365:7;19373:1;19365:10;;;;;;;;:::i;:::-;;;;;;;;;;;:18;;;19347:15;:36;19245:138;19223:224;;;19418:13;;;;:::i;:::-;;;;19223:224;19203:3;;;;:::i;:::-;;;;19163:295;;;;19510:32;19559:11;19545:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19545:26:0;;19510:61;;19582:20;19624:9;19619:348;19643:7;:14;19639:18;;19619:348;;;19702:7;19710:1;19702:10;;;;;;;;:::i;:::-;;;;;;;;;;;:20;;;;;;;;;;;;19701:21;:81;;;;;19762:7;19770:1;19762:10;;;;;;;;:::i;:::-;;;;;;;;;;;:20;;;19743:15;:39;;19701:81;:138;;;;;19821:7;19829:1;19821:10;;;;;;;;:::i;:::-;;;;;;;;;;;:18;;;19803:15;:36;19701:138;19679:277;;;19906:1;19874:15;19890:12;19874:29;;;;;;;;:::i;:::-;;;;;;;;;;:33;19926:14;;;;:::i;:::-;;;;19679:277;19659:3;;;;:::i;:::-;;;;19619:348;;;-1:-1:-1;19986:15:0;;19002:1007;-1:-1:-1;;;19002:1007:0:o;8185:23::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8185:23:0;;;;-1:-1:-1;8185:23:0;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;8185:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8185:23:0;;;;-1:-1:-1;;;;;8185:23:0;;;-1:-1:-1;;;8185:23:0;;;;;;:::o;9164:1611::-;6059:21;:19;:21::i;:::-;7096:10:::1;9443:9;:25;9421:114;;;::::0;-1:-1:-1;;;9421:114:0;;10199:2:1;9421:114:0::1;::::0;::::1;10181:21:1::0;10238:2;10218:18;;;10211:30;10277:34;10257:18;;;10250:62;-1:-1:-1;;;10328:18:1;;;10321:37;10375:19;;9421:114:0::1;9997:403:1::0;9421:114:0::1;9570:1;9554:13;:17;9546:66;;;::::0;-1:-1:-1;;;9546:66:0;;10607:2:1;9546:66:0::1;::::0;::::1;10589:21:1::0;10646:2;10626:18;;;10619:30;10685:34;10665:18;;;10658:62;-1:-1:-1;;;10736:18:1;;;10729:34;10780:19;;9546:66:0::1;10405:400:1::0;9546:66:0::1;9659:36;7366:9;9659:15;:36;:::i;:::-;9645:10;:50;;9623:150;;;::::0;-1:-1:-1;;;9623:150:0;;11142:2:1;9623:150:0::1;::::0;::::1;11124:21:1::0;11181:2;11161:18;;;11154:30;11220:34;11200:18;;;11193:62;-1:-1:-1;;;11271:18:1;;;11264:48;11329:19;;9623:150:0::1;10940:414:1::0;9623:150:0::1;9803:10;9792:8;:21;9784:67;;;::::0;-1:-1:-1;;;9784:67:0;;11561:2:1;9784:67:0::1;::::0;::::1;11543:21:1::0;11600:2;11580:18;;;11573:30;11639:34;11619:18;;;11612:62;-1:-1:-1;;;11690:18:1;;;11683:31;11731:19;;9784:67:0::1;11359:397:1::0;9784:67:0::1;9893:1;9876:6;9870:20;:24;9862:58;;;::::0;-1:-1:-1;;;9862:58:0;;11963:2:1;9862:58:0::1;::::0;::::1;11945:21:1::0;12002:2;11982:18;;;11975:30;-1:-1:-1;;;12021:18:1;;;12014:51;12082:18;;9862:58:0::1;11761:345:1::0;9862:58:0::1;10001:45;::::0;9983:12:::1;::::0;7272:42:::1;::::0;7096:10:::1;::::0;9983:12;10001:45;9983:12;10001:45;7096:10;7272:42;10001:45:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9982:64;;;10065:7;10057:66;;;::::0;-1:-1:-1;;;10057:66:0;;12313:2:1;10057:66:0::1;::::0;::::1;12295:21:1::0;12352:2;12332:18;;;12325:30;12391:34;12371:18;;;12364:62;-1:-1:-1;;;12442:18:1;;;12435:44;12496:19;;10057:66:0::1;12111:410:1::0;10057:66:0::1;10193:7;:14:::0;;::::1;::::0;::::1;::::0;;10166:24:::1;10193:14:::0;;;;::::1;;::::0;;::::1;10218:30:::0;;-1:-1:-1;;;;;;10218:30:0::1;10238:10;10218:30;::::0;;10193:14;10259:15;;:24:::1;10277:6:::0;10259:15;:24:::1;:::i;:::-;-1:-1:-1::0;10294:21:0::1;::::0;::::1;:36;10318:12:::0;10294:21;:36:::1;:::i;:::-;-1:-1:-1::0;10341:15:0::1;::::0;::::1;:24;10359:6:::0;10341:15;:24:::1;:::i;:::-;-1:-1:-1::0;10376:22:0::1;::::0;::::1;:38:::0;;;10425:19:::1;::::0;::::1;:32:::0;;;10468:17:::1;::::0;::::1;:28:::0;;;10507:19:::1;::::0;::::1;:27:::0;;-1:-1:-1;;;;10507:27:0::1;::::0;;-1:-1:-1;10545:21:0::1;::::0;::::1;:25:::0;10616:7:::1;:14:::0;10649:10:::1;::::0;10616:18:::1;::::0;10507:27;;10616:18:::1;:::i;:::-;10588:179;10674:6;10695:13;10723:10;10748:8;10588:179;;;;;;;;;:::i;:::-;;;;;;;;9410:1365;;6103:20:::0;5497:1;6623:22;;6440:213;6103:20;9164:1611;;;;;;:::o;2889:103::-;2127:13;:11;:13::i;:::-;2954:30:::1;2981:1;2954:18;:30::i;:::-;2889:103::o:0;10949:1564::-;6059:21;:19;:21::i;:::-;11093:7:::1;:14:::0;11081:26;::::1;11073:60;;;;-1:-1:-1::0;;;11073:60:0::1;;;;;;;:::i;:::-;11164:1;11152:9;:13;11144:57;;;::::0;-1:-1:-1;;;11144:57:0;;15372:2:1;11144:57:0::1;::::0;::::1;15354:21:1::0;15411:2;15391:18;;;15384:30;15450:33;15430:18;;;15423:61;15501:18;;11144:57:0::1;15170:355:1::0;11144:57:0::1;11214:21;11238:7;11246:9;11238:18;;;;;;;;:::i;:::-;;;;;;;;;;;11214:42;;11278:6;:16;;;;;;;;;;;;11277:17;11269:63;;;;-1:-1:-1::0;;;11269:63:0::1;;;;;;;:::i;:::-;11384:6;:16;;;11365:15;:35;;11343:111;;;::::0;-1:-1:-1;;;11343:111:0;;15732:2:1;11343:111:0::1;::::0;::::1;15714:21:1::0;15771:2;15751:18;;;15744:30;15810:28;15790:18;;;15783:56;15856:18;;11343:111:0::1;15530:350:1::0;11343:111:0::1;11491:6;:14;;;11473:15;:32;11465:61;;;::::0;-1:-1:-1;;;11465:61:0;;16087:2:1;11465:61:0::1;::::0;::::1;16069:21:1::0;16126:2;16106:18;;;16099:30;-1:-1:-1;;;16145:18:1;;;16138:46;16201:18;;11465:61:0::1;15885:340:1::0;11465:61:0::1;11572:24;11587:9:::0;7177:12:::1;11572:24;:::i;:::-;11559:9;:37;11537:139;;;::::0;-1:-1:-1;;;11537:139:0;;16605:2:1;11537:139:0::1;::::0;::::1;16587:21:1::0;16644:2;16624:18;;;16617:30;16683:34;16663:18;;;16656:62;-1:-1:-1;;;16734:18:1;;;16727:50;16794:19;;11537:139:0::1;16403:416:1::0;11537:139:0::1;11743:6;:19;;;11730:9;11709:6;:18;;;:30;;;;:::i;:::-;:53;;11687:131;;;::::0;-1:-1:-1;;;11687:131:0;;17026:2:1;11687:131:0::1;::::0;::::1;17008:21:1::0;17065:2;17045:18;;;17038:30;17104;17084:18;;;17077:58;17152:18;;11687:131:0::1;16824:352:1::0;11687:131:0::1;11882:33;11932:9;11918:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;11918:24:0::1;;11882:60;;11996:9;11991:281;12015:9;12011:1;:13;11991:281;;;12046:20;12090:1;12069:6;:18;;;:22;;;;:::i;:::-;12106:28;::::0;;;:14:::1;::::0;::::1;:28;::::0;;;;;;;:41;;-1:-1:-1;;;;;;12106:41:0::1;12137:10;12106:41:::0;;::::1;::::0;;;12162:30;;:18:::1;::::0;::::1;:30:::0;;;;:49;;12106:41;12162:49;::::1;::::0;;;;;;;::::1;::::0;;;12226:19;;12046:45;;-1:-1:-1;12046:45:0;;12226:16;;12243:1;;12226:19;::::1;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;:34;-1:-1:-1;12026:3:0;::::1;::::0;::::1;:::i;:::-;;;;11991:281;;;;12306:9;12284:6;:18;;;:31;;;;;;;:::i;:::-;;;;;;;;12348:9;12326:6;:18;;;:31;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;12375:130:0::1;::::0;12429:10:::1;::::0;12405:9;;12375:130:::1;::::0;::::1;::::0;12454:9;;12478:16;;12375:130:::1;:::i;:::-;;;;;;;;11062:1451;;6103:20:::0;5497:1;6623:22;;6440:213;6103:20;10949:1564;;:::o;20189:348::-;20327:7;:14;20273:21;;20315:26;;20307:60;;;;-1:-1:-1;;;20307:60:0;;;;;;;:::i;:::-;20403:7;20411:9;20403:18;;;;;;;;:::i;:::-;;;;;;;;;;;:26;;;20384:15;:45;20380:86;;-1:-1:-1;20453:1:0;;20189:348;-1:-1:-1;20189:348:0:o;20380:86::-;20514:15;20485:7;20493:9;20485:18;;;;;;;;:::i;:::-;;;;;;;;;;;:26;;;:44;;;;:::i;:::-;20478:51;20189:348;-1:-1:-1;;20189:348:0:o;17926:979::-;18044:15;18074:19;18108:25;18148:19;18182:20;18217:19;18251:17;18283:15;18313:14;18342;18371:19;18438:7;:14;;;;18426:9;:26;18418:60;;;;-1:-1:-1;;;18418:60:0;;;;;;;:::i;:::-;18489:21;18513:7;18521:9;18513:18;;;;;;;;:::i;:::-;;;;;;;;;;;18489:42;;18566:6;:14;;;;;;;;;;-1:-1:-1;;;;;18566:14:0;18595:6;:12;;18622:6;:18;;18655:6;:12;;18682:6;:19;;;18716:6;:18;;;18749:6;:16;;;18780:6;:14;;;18809:6;:13;;;;;;;;;;-1:-1:-1;;;;;18809:13:0;18837:6;:16;;;;;;;;;;;;18868:6;:18;;;18544:353;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17926:979;;;;;;;;;;;;;:::o;17541:258::-;17696:7;:14;17647:16;;17684:26;;17676:60;;;;-1:-1:-1;;;17676:60:0;;;;;;;:::i;:::-;17754:7;17762:9;17754:18;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;17754:37:0;;;;:30;:18;;;;;:30;;;;:37;;;;;;;17747:44;;;;;;;;;;;;;;;;;17754:37;;17747:44;;17754:37;17747:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17541:258;;;;:::o;3147:201::-;2127:13;:11;:13::i;:::-;-1:-1:-1;;;;;3236:22:0;::::1;3228:73;;;::::0;-1:-1:-1;;;3228:73:0;;17720:2:1;3228:73:0::1;::::0;::::1;17702:21:1::0;17759:2;17739:18;;;17732:30;17798:34;17778:18;;;17771:62;-1:-1:-1;;;17849:18:1;;;17842:36;17895:19;;3228:73:0::1;17518:402:1::0;3228:73:0::1;3312:28;3331:8;3312:18;:28::i;6139:293::-:0;5541:1;6273:7;;:19;6265:63;;;;-1:-1:-1;;;6265:63:0;;18127:2:1;6265:63:0;;;18109:21:1;18166:2;18146:18;;;18139:30;18205:33;18185:18;;;18178:61;18256:18;;6265:63:0;17925:355:1;6265:63:0;5541:1;6406:7;:18;6139:293::o;15214:1243::-;15337:7;15610:16;15737;15752:1;15737:12;:16;:::i;:::-;15727:27;15824:15;15862:12;15945:6;:14;;;;;;;;;;-1:-1:-1;;;;;15945:14:0;15982:6;:16;;;16021:6;:14;;;16058:6;:18;;;16099:6;:18;;;16184:10;16217:11;16300:4;16373:31;16394:9;16373:20;:31::i;:::-;15494:929;;;;;;18753:19:1;;;;18788:12;;18781:28;;;;18825:12;;;;18818:28;;;;18862:12;;;18855:28;;;;-1:-1:-1;;18968:15:1;;;18964:24;;18949:13;;;18942:47;19005:13;;;18998:29;;;;19043:13;;;19036:29;;;;19081:13;;;19074:29;;;;19119:13;;;19112:29;19176:15;;19172:24;;19157:13;;;19150:47;19213:13;;;19206:30;19271:16;;19267:25;19252:13;;;19245:48;19309:13;;;19302:30;19348:13;;15494:929:0;;;-1:-1:-1;;15494:929:0;;;;;;;;;15466:972;;15494:929;15466:972;;;;;15214:1243;-1:-1:-1;;;15214:1243:0:o;2406:132::-;2287:7;2314:6;-1:-1:-1;;;;;2314:6:0;866:10;2470:23;2462:68;;;;-1:-1:-1;;;2462:68:0;;19574:2:1;2462:68:0;;;19556:21:1;;;19593:18;;;19586:30;19652:34;19632:18;;;19625:62;19704:18;;2462:68:0;19372:356:1;3508:191:0;3582:16;3601:6;;-1:-1:-1;;;;;3618:17:0;;;-1:-1:-1;;;;;;3618:17:0;;;;;;3651:40;;3601:6;;;;;;;3651:40;;3582:16;3651:40;3571:128;3508:191;:::o;16623:562::-;16694:7;16714:21;16738:7;16746:9;16738:18;;;;;;;;:::i;:::-;;;;;;;;;;;16714:42;;16767:29;16892:18;16934:2;16913:6;:18;;;:23;:49;;16944:6;:18;;;16913:49;;;16939:2;16913:49;16892:70;;16988:9;16983:140;17007:10;17003:1;:14;16983:140;;;17093:17;;;;:14;;;:17;;;;;;;;;;17058:53;;;;17075:16;;-1:-1:-1;;;;;17093:17:0;;;;17058:53;;:::i;:::-;;;;;;;;;;;;;17039:72;;17019:3;;;;;:::i;:::-;;;;16983:140;;;-1:-1:-1;;17150:27:0;;;;;;;;16623:562;-1:-1:-1;;;16623:562:0:o;196:180:1:-;255:6;308:2;296:9;287:7;283:23;279:32;276:52;;;324:1;321;314:12;276:52;-1:-1:-1;347:23:1;;196:180;-1:-1:-1;196:180:1:o;573:435::-;626:3;664:5;658:12;691:6;686:3;679:19;717:4;746:2;741:3;737:12;730:19;;783:2;776:5;772:14;804:1;814:169;828:6;825:1;822:13;814:169;;;889:13;;877:26;;923:12;;;;958:15;;;;850:1;843:9;814:169;;;-1:-1:-1;999:3:1;;573:435;-1:-1:-1;;;;;573:435:1:o;1013:261::-;1192:2;1181:9;1174:21;1155:4;1212:56;1264:2;1253:9;1249:18;1241:6;1212:56;:::i;1279:250::-;1364:1;1374:113;1388:6;1385:1;1382:13;1374:113;;;1464:11;;;1458:18;1445:11;;;1438:39;1410:2;1403:10;1374:113;;;-1:-1:-1;;1521:1:1;1503:16;;1496:27;1279:250::o;1534:271::-;1576:3;1614:5;1608:12;1641:6;1636:3;1629:19;1657:76;1726:6;1719:4;1714:3;1710:14;1703:4;1696:5;1692:16;1657:76;:::i;:::-;1787:2;1766:15;-1:-1:-1;;1762:29:1;1753:39;;;;1794:4;1749:50;;1534:271;-1:-1:-1;;1534:271:1:o;1810:1211::-;-1:-1:-1;;;;;2334:15:1;;;2316:34;;2266:3;2381:2;2366:18;;2359:30;;;2237:4;;2412:45;2438:18;;;2430:6;2412:45;:::i;:::-;2398:59;;2505:9;2497:6;2493:22;2488:2;2477:9;2473:18;2466:50;2539:33;2565:6;2557;2539:33;:::i;:::-;2525:47;;2620:9;2612:6;2608:22;2603:2;2592:9;2588:18;2581:50;2648:33;2674:6;2666;2648:33;:::i;:::-;2712:3;2697:19;;2690:35;;;;2756:3;2741:19;;2734:35;;;;-1:-1:-1;;2800:3:1;2785:19;;2778:35;;;;2844:3;2829:19;;2822:35;;;;2894:15;;2888:3;2873:19;;2866:44;2954:14;;2947:22;2941:3;2926:19;;2919:51;3001:3;2986:19;2979:36;2640:41;1810:1211;-1:-1:-1;;;;1810:1211:1:o;3026:127::-;3087:10;3082:3;3078:20;3075:1;3068:31;3118:4;3115:1;3108:15;3142:4;3139:1;3132:15;3158:719;3201:5;3254:3;3247:4;3239:6;3235:17;3231:27;3221:55;;3272:1;3269;3262:12;3221:55;3308:6;3295:20;3334:18;3371:2;3367;3364:10;3361:36;;;3377:18;;:::i;:::-;3452:2;3446:9;3420:2;3506:13;;-1:-1:-1;;3502:22:1;;;3526:2;3498:31;3494:40;3482:53;;;3550:18;;;3570:22;;;3547:46;3544:72;;;3596:18;;:::i;:::-;3636:10;3632:2;3625:22;3671:2;3663:6;3656:18;3717:3;3710:4;3705:2;3697:6;3693:15;3689:26;3686:35;3683:55;;;3734:1;3731;3724:12;3683:55;3798:2;3791:4;3783:6;3779:17;3772:4;3764:6;3760:17;3747:54;3845:1;3838:4;3833:2;3825:6;3821:15;3817:26;3810:37;3865:6;3856:15;;;;;;3158:719;;;;:::o;3882:950::-;4016:6;4024;4032;4040;4048;4056;4109:3;4097:9;4088:7;4084:23;4080:33;4077:53;;;4126:1;4123;4116:12;4077:53;4166:9;4153:23;4195:18;4236:2;4228:6;4225:14;4222:34;;;4252:1;4249;4242:12;4222:34;4275:50;4317:7;4308:6;4297:9;4293:22;4275:50;:::i;:::-;4265:60;;4378:2;4367:9;4363:18;4350:32;4334:48;;4407:2;4397:8;4394:16;4391:36;;;4423:1;4420;4413:12;4391:36;4446:52;4490:7;4479:8;4468:9;4464:24;4446:52;:::i;:::-;4436:62;;4551:2;4540:9;4536:18;4523:32;4507:48;;4580:2;4570:8;4567:16;4564:36;;;4596:1;4593;4586:12;4564:36;;4619:52;4663:7;4652:8;4641:9;4637:24;4619:52;:::i;:::-;4609:62;;;4718:2;4707:9;4703:18;4690:32;4680:42;;4769:3;4758:9;4754:19;4741:33;4731:43;;4821:3;4810:9;4806:19;4793:33;4783:43;;3882:950;;;;;;;;:::o;4837:248::-;4905:6;4913;4966:2;4954:9;4945:7;4941:23;4937:32;4934:52;;;4982:1;4979;4972:12;4934:52;-1:-1:-1;;5005:23:1;;;5075:2;5060:18;;;5047:32;;-1:-1:-1;4837:248:1:o;5298:173::-;5366:20;;-1:-1:-1;;;;;5415:31:1;;5405:42;;5395:70;;5461:1;5458;5451:12;5395:70;5298:173;;;:::o;5476:254::-;5544:6;5552;5605:2;5593:9;5584:7;5580:23;5576:32;5573:52;;;5621:1;5618;5611:12;5573:52;5657:9;5644:23;5634:33;;5686:38;5720:2;5709:9;5705:18;5686:38;:::i;:::-;5676:48;;5476:254;;;;;:::o;5735:186::-;5794:6;5847:2;5835:9;5826:7;5822:23;5818:32;5815:52;;;5863:1;5860;5853:12;5815:52;5886:29;5905:9;5886:29;:::i;5926:345::-;6128:2;6110:21;;;6167:2;6147:18;;;6140:30;-1:-1:-1;;;6201:2:1;6186:18;;6179:51;6262:2;6247:18;;5926:345::o;6276:127::-;6337:10;6332:3;6328:20;6325:1;6318:31;6368:4;6365:1;6358:15;6392:4;6389:1;6382:15;6408:397;6610:2;6592:21;;;6649:2;6629:18;;;6622:30;6688:34;6683:2;6668:18;;6661:62;-1:-1:-1;;;6754:2:1;6739:18;;6732:31;6795:3;6780:19;;6408:397::o;7563:127::-;7624:10;7619:3;7615:20;7612:1;7605:31;7655:4;7652:1;7645:15;7679:4;7676:1;7669:15;7695:112;7727:1;7753;7743:35;;7758:18;;:::i;:::-;-1:-1:-1;7792:9:1;;7695:112::o;7812:127::-;7873:10;7868:3;7864:20;7861:1;7854:31;7904:4;7901:1;7894:15;7928:4;7925:1;7918:15;7944:120;7984:1;8010;8000:35;;8015:18;;:::i;:::-;-1:-1:-1;8049:9:1;;7944:120::o;8069:128::-;8136:9;;;8157:11;;;8154:37;;;8171:18;;:::i;9472:135::-;9511:3;9532:17;;;9529:43;;9552:18;;:::i;:::-;-1:-1:-1;9599:1:1;9588:13;;9472:135::o;9612:380::-;9691:1;9687:12;;;;9734;;;9755:61;;9809:4;9801:6;9797:17;9787:27;;9755:61;9862:2;9854:6;9851:14;9831:18;9828:38;9825:161;;9908:10;9903:3;9899:20;9896:1;9889:31;9943:4;9940:1;9933:15;9971:4;9968:1;9961:15;9825:161;;9612:380;;;:::o;10810:125::-;10875:9;;;10896:10;;;10893:36;;;10909:18;;:::i;12652:545::-;12754:2;12749:3;12746:11;12743:448;;;12790:1;12815:5;12811:2;12804:17;12860:4;12856:2;12846:19;12930:2;12918:10;12914:19;12911:1;12907:27;12901:4;12897:38;12966:4;12954:10;12951:20;12948:47;;;-1:-1:-1;12989:4:1;12948:47;13044:2;13039:3;13035:12;13032:1;13028:20;13022:4;13018:31;13008:41;;13099:82;13117:2;13110:5;13107:13;13099:82;;;13162:17;;;13143:1;13132:13;13099:82;;12743:448;12652:545;;;:::o;13373:1352::-;13499:3;13493:10;13526:18;13518:6;13515:30;13512:56;;;13548:18;;:::i;:::-;13577:97;13667:6;13627:38;13659:4;13653:11;13627:38;:::i;:::-;13621:4;13577:97;:::i;:::-;13729:4;;13793:2;13782:14;;13810:1;13805:663;;;;14512:1;14529:6;14526:89;;;-1:-1:-1;14581:19:1;;;14575:26;14526:89;-1:-1:-1;;13330:1:1;13326:11;;;13322:24;13318:29;13308:40;13354:1;13350:11;;;13305:57;14628:81;;13775:944;;13805:663;12599:1;12592:14;;;12636:4;12623:18;;-1:-1:-1;;13841:20:1;;;13959:236;13973:7;13970:1;13967:14;13959:236;;;14062:19;;;14056:26;14041:42;;14154:27;;;;14122:1;14110:14;;;;13989:19;;13959:236;;;13963:3;14223:6;14214:7;14211:19;14208:201;;;14284:19;;;14278:26;-1:-1:-1;;14367:1:1;14363:14;;;14379:3;14359:24;14355:37;14351:42;14336:58;14321:74;;14208:201;-1:-1:-1;;;;;14455:1:1;14439:14;;;14435:22;14422:36;;-1:-1:-1;13373:1352:1:o;14730:435::-;14963:3;14952:9;14945:22;14926:4;14984:46;15025:3;15014:9;15010:19;15002:6;14984:46;:::i;:::-;15061:2;15046:18;;15039:34;;;;-1:-1:-1;15104:2:1;15089:18;;15082:34;;;;15147:2;15132:18;;;15125:34;14976:54;14730:435;-1:-1:-1;14730:435:1:o;16230:168::-;16303:9;;;16334;;16351:15;;;16345:22;;16331:37;16321:71;;16372:18;;:::i;17181:332::-;17388:6;17377:9;17370:25;17431:2;17426;17415:9;17411:18;17404:30;17351:4;17451:56;17503:2;17492:9;17488:18;17480:6;17451:56;:::i;:::-;17443:64;17181:332;-1:-1:-1;;;;17181:332:1:o;19733:428::-;19890:3;19928:6;19922:13;19944:66;20003:6;19998:3;19991:4;19983:6;19979:17;19944:66;:::i;:::-;20079:2;20075:15;;;;-1:-1:-1;;20071:53:1;20032:16;;;;20057:68;;;20152:2;20141:14;;19733:428;-1:-1:-1;;19733:428:1:o
Swarm Source
ipfs://d6a0bbfe700b4d473fa45ba6f86dc058088312af394784944598a0891143c455
Net Worth in USD
Net Worth in ETH
Token Allocations
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| OP | 100.00% | $2,157.53 | 0.0025 | $5.39 |
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.