Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 13 from a total of 13 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 17987009 | 785 days ago | IN | 0 ETH | 0.00056531 | ||||
Withdraw | 17986994 | 785 days ago | IN | 0 ETH | 0.00069071 | ||||
Flip | 17907980 | 796 days ago | IN | 0 ETH | 0.00382983 | ||||
Flip | 17830521 | 806 days ago | IN | 0 ETH | 0.0045769 | ||||
Flip | 17830488 | 806 days ago | IN | 0 ETH | 0.00414089 | ||||
Flip | 17820514 | 808 days ago | IN | 0 ETH | 0.00522209 | ||||
Flip | 17810900 | 809 days ago | IN | 0 ETH | 0.00302557 | ||||
Set Min Bet | 17779190 | 814 days ago | IN | 0 ETH | 0.00112154 | ||||
Flip | 17777710 | 814 days ago | IN | 0 ETH | 0.01092978 | ||||
Flip | 17772680 | 815 days ago | IN | 0 ETH | 0.01080119 | ||||
Set Min Bet | 17772445 | 815 days ago | IN | 0 ETH | 0.00076756 | ||||
Flip | 17772369 | 815 days ago | IN | 0 ETH | 0.00849363 | ||||
Add To Reward Po... | 17772304 | 815 days ago | IN | 0 ETH | 0.00277531 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Cross-Chain Transactions
Loading...
Loading
Contract Name:
DracoCoinFlip
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-25 */ // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); } // File: @openzeppelin/contracts/security/ReentrancyGuard.sol // 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: @openzeppelin/contracts/utils/Context.sol // 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/Ownable.sol // 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: @chainlink/contracts/src/v0.8/VRFConsumerBaseV2.sol pragma solidity ^0.8.4; /** **************************************************************************** * @notice Interface for contracts using VRF randomness * ***************************************************************************** * @dev PURPOSE * * @dev Reggie the Random Oracle (not his real job) wants to provide randomness * @dev to Vera the verifier in such a way that Vera can be sure he's not * @dev making his output up to suit himself. Reggie provides Vera a public key * @dev to which he knows the secret key. Each time Vera provides a seed to * @dev Reggie, he gives back a value which is computed completely * @dev deterministically from the seed and the secret key. * * @dev Reggie provides a proof by which Vera can verify that the output was * @dev correctly computed once Reggie tells it to her, but without that proof, * @dev the output is indistinguishable to her from a uniform random sample * @dev from the output space. * * @dev The purpose of this contract is to make it easy for unrelated contracts * @dev to talk to Vera the verifier about the work Reggie is doing, to provide * @dev simple access to a verifiable source of randomness. It ensures 2 things: * @dev 1. The fulfillment came from the VRFCoordinator * @dev 2. The consumer contract implements fulfillRandomWords. * ***************************************************************************** * @dev USAGE * * @dev Calling contracts must inherit from VRFConsumerBase, and can * @dev initialize VRFConsumerBase's attributes in their constructor as * @dev shown: * * @dev contract VRFConsumer { * @dev constructor(<other arguments>, address _vrfCoordinator, address _link) * @dev VRFConsumerBase(_vrfCoordinator) public { * @dev <initialization with other arguments goes here> * @dev } * @dev } * * @dev The oracle will have given you an ID for the VRF keypair they have * @dev committed to (let's call it keyHash). Create subscription, fund it * @dev and your consumer contract as a consumer of it (see VRFCoordinatorInterface * @dev subscription management functions). * @dev Call requestRandomWords(keyHash, subId, minimumRequestConfirmations, * @dev callbackGasLimit, numWords), * @dev see (VRFCoordinatorInterface for a description of the arguments). * * @dev Once the VRFCoordinator has received and validated the oracle's response * @dev to your request, it will call your contract's fulfillRandomWords method. * * @dev The randomness argument to fulfillRandomWords is a set of random words * @dev generated from your requestId and the blockHash of the request. * * @dev If your contract could have concurrent requests open, you can use the * @dev requestId returned from requestRandomWords to track which response is associated * @dev with which randomness request. * @dev See "SECURITY CONSIDERATIONS" for principles to keep in mind, * @dev if your contract could have multiple requests in flight simultaneously. * * @dev Colliding `requestId`s are cryptographically impossible as long as seeds * @dev differ. * * ***************************************************************************** * @dev SECURITY CONSIDERATIONS * * @dev A method with the ability to call your fulfillRandomness method directly * @dev could spoof a VRF response with any random value, so it's critical that * @dev it cannot be directly called by anything other than this base contract * @dev (specifically, by the VRFConsumerBase.rawFulfillRandomness method). * * @dev For your users to trust that your contract's random behavior is free * @dev from malicious interference, it's best if you can write it so that all * @dev behaviors implied by a VRF response are executed *during* your * @dev fulfillRandomness method. If your contract must store the response (or * @dev anything derived from it) and use it later, you must ensure that any * @dev user-significant behavior which depends on that stored value cannot be * @dev manipulated by a subsequent VRF request. * * @dev Similarly, both miners and the VRF oracle itself have some influence * @dev over the order in which VRF responses appear on the blockchain, so if * @dev your contract could have multiple VRF requests in flight simultaneously, * @dev you must ensure that the order in which the VRF responses arrive cannot * @dev be used to manipulate your contract's user-significant behavior. * * @dev Since the block hash of the block which contains the requestRandomness * @dev call is mixed into the input to the VRF *last*, a sufficiently powerful * @dev miner could, in principle, fork the blockchain to evict the block * @dev containing the request, forcing the request to be included in a * @dev different block with a different hash, and therefore a different input * @dev to the VRF. However, such an attack would incur a substantial economic * @dev cost. This cost scales with the number of blocks the VRF oracle waits * @dev until it calls responds to a request. It is for this reason that * @dev that you can signal to an oracle you'd like them to wait longer before * @dev responding to the request (however this is not enforced in the contract * @dev and so remains effective only in the case of unmodified oracle software). */ abstract contract VRFConsumerBaseV2 { error OnlyCoordinatorCanFulfill(address have, address want); address private immutable vrfCoordinator; /** * @param _vrfCoordinator address of VRFCoordinator contract */ constructor(address _vrfCoordinator) { vrfCoordinator = _vrfCoordinator; } /** * @notice fulfillRandomness handles the VRF response. Your contract must * @notice implement it. See "SECURITY CONSIDERATIONS" above for important * @notice principles to keep in mind when implementing your fulfillRandomness * @notice method. * * @dev VRFConsumerBaseV2 expects its subcontracts to have a method with this * @dev signature, and will call it once it has verified the proof * @dev associated with the randomness. (It is triggered via a call to * @dev rawFulfillRandomness, below.) * * @param requestId The Id initially returned by requestRandomness * @param randomWords the VRF output expanded to the requested number of words */ function fulfillRandomWords(uint256 requestId, uint256[] memory randomWords) internal virtual; // rawFulfillRandomness is called by VRFCoordinator when it receives a valid VRF // proof. rawFulfillRandomness then calls fulfillRandomness, after validating // the origin of the call function rawFulfillRandomWords(uint256 requestId, uint256[] memory randomWords) external { if (msg.sender != vrfCoordinator) { revert OnlyCoordinatorCanFulfill(msg.sender, vrfCoordinator); } fulfillRandomWords(requestId, randomWords); } } // File: @chainlink/contracts/src/v0.8/interfaces/VRFCoordinatorV2Interface.sol pragma solidity ^0.8.0; interface VRFCoordinatorV2Interface { /** * @notice Get configuration relevant for making requests * @return minimumRequestConfirmations global min for request confirmations * @return maxGasLimit global max for request gas limit * @return s_provingKeyHashes list of registered key hashes */ function getRequestConfig() external view returns ( uint16, uint32, bytes32[] memory ); /** * @notice Request a set of random words. * @param keyHash - Corresponds to a particular oracle job which uses * that key for generating the VRF proof. Different keyHash's have different gas price * ceilings, so you can select a specific one to bound your maximum per request cost. * @param subId - The ID of the VRF subscription. Must be funded * with the minimum subscription balance required for the selected keyHash. * @param minimumRequestConfirmations - How many blocks you'd like the * oracle to wait before responding to the request. See SECURITY CONSIDERATIONS * for why you may want to request more. The acceptable range is * [minimumRequestBlockConfirmations, 200]. * @param callbackGasLimit - How much gas you'd like to receive in your * fulfillRandomWords callback. Note that gasleft() inside fulfillRandomWords * may be slightly less than this amount because of gas used calling the function * (argument decoding etc.), so you may need to request slightly more than you expect * to have inside fulfillRandomWords. The acceptable range is * [0, maxGasLimit] * @param numWords - The number of uint256 random values you'd like to receive * in your fulfillRandomWords callback. Note these numbers are expanded in a * secure way by the VRFCoordinator from a single random value supplied by the oracle. * @return requestId - A unique identifier of the request. Can be used to match * a request to a response in fulfillRandomWords. */ function requestRandomWords( bytes32 keyHash, uint64 subId, uint16 minimumRequestConfirmations, uint32 callbackGasLimit, uint32 numWords ) external returns (uint256 requestId); /** * @notice Create a VRF subscription. * @return subId - A unique subscription id. * @dev You can manage the consumer set dynamically with addConsumer/removeConsumer. * @dev Note to fund the subscription, use transferAndCall. For example * @dev LINKTOKEN.transferAndCall( * @dev address(COORDINATOR), * @dev amount, * @dev abi.encode(subId)); */ function createSubscription() external returns (uint64 subId); /** * @notice Get a VRF subscription. * @param subId - ID of the subscription * @return balance - LINK balance of the subscription in juels. * @return reqCount - number of requests for this subscription, determines fee tier. * @return owner - owner of the subscription. * @return consumers - list of consumer address which are able to use this subscription. */ function getSubscription(uint64 subId) external view returns ( uint96 balance, uint64 reqCount, address owner, address[] memory consumers ); /** * @notice Request subscription owner transfer. * @param subId - ID of the subscription * @param newOwner - proposed new owner of the subscription */ function requestSubscriptionOwnerTransfer(uint64 subId, address newOwner) external; /** * @notice Request subscription owner transfer. * @param subId - ID of the subscription * @dev will revert if original owner of subId has * not requested that msg.sender become the new owner. */ function acceptSubscriptionOwnerTransfer(uint64 subId) external; /** * @notice Add a consumer to a VRF subscription. * @param subId - ID of the subscription * @param consumer - New consumer which can use the subscription */ function addConsumer(uint64 subId, address consumer) external; /** * @notice Remove a consumer from a VRF subscription. * @param subId - ID of the subscription * @param consumer - Consumer to remove from the subscription */ function removeConsumer(uint64 subId, address consumer) external; /** * @notice Cancel a subscription * @param subId - ID of the subscription * @param to - Where to send the remaining LINK to */ function cancelSubscription(uint64 subId, address to) external; /* * @notice Check to see if there exists a request commitment consumers * for all consumers and keyhashes for a given sub. * @param subId - ID of the subscription * @return true if there exists at least one unfulfilled request for the subscription, false * otherwise. */ function pendingRequestExists(uint64 subId) external view returns (bool); } // File: contracts/CoinFlipV2.sol //SPDX-License-Identifier: MIT pragma solidity 0.8.17; /// @author DRACO /// @title Coin Flip Game Contract contract DracoCoinFlip is VRFConsumerBaseV2, Ownable, ReentrancyGuard { struct UserInfo { address user; uint userBet; uint time; bool isTail; } struct FlipResult { address player; bool didWin; bool isTail; uint amount; uint gameId; uint timestamp; } uint16 requestConfirmations = 3; uint32 numWords = 1; uint32 callbackGasLimit = 1000000; uint64 s_subscriptionId; uint public minBet; uint public rewardPool; uint public rewardPoolPercentage; uint public refundDelay = 5 days; uint private tempStorage; uint public lostAmount; bytes32 keyHash = 0x8af398995b04c28e9951adb9721ef74c74f93e6a478f39e7e0777be13527e7ef; bool public pause; VRFCoordinatorV2Interface COORDINATOR; IERC20 public token; mapping(uint => UserInfo) public flipToAddress; mapping(address => uint) public addressToFlip; FlipResult[] public allFlipResults; event NewFlip(address indexed user, uint amount, bool isTail, uint indexed gameId); event FlipCompleted(address indexed player, bool didWin, bool isTail, uint amount, uint indexed gameId); event Cancel(address indexed user, uint amount, uint indexed gameId); event CallbackGasLimitUpdated(uint32 oldValue, uint32 newValue); event PauseChanged(bool newState); constructor(uint64 subscriptionId, address _token, uint _minBet,uint _MaxRewardPoolPercentage) VRFConsumerBaseV2(0x271682DEB8C4E0901D1a1550aD2e64D568E69909) { COORDINATOR = VRFCoordinatorV2Interface( 0x271682DEB8C4E0901D1a1550aD2e64D568E69909 ); s_subscriptionId = subscriptionId; token = IERC20(_token); minBet = _minBet; rewardPoolPercentage = _MaxRewardPoolPercentage; } function maxBet() public view returns (uint) { return (rewardPool * rewardPoolPercentage) / 100; } ///@notice approve tokens for contract before calling this function function addToRewardPool(uint amount) external onlyOwner { require(token.transferFrom(msg.sender, address(this), amount), "Token transfer failed"); rewardPool += amount; } function getLastFlipResults(uint _count) external view returns (FlipResult[] memory) { uint totalEntries = allFlipResults.length; uint startIndex; if (totalEntries <= _count) { _count = totalEntries; startIndex = 0; } else { startIndex = totalEntries - _count; } FlipResult[] memory lastResults = new FlipResult[](_count); for (uint i = 0; i < _count; i++) { lastResults[i] = allFlipResults[startIndex + i]; } return lastResults; } ///@notice approve tokens for contract before calling this function function flip(uint userBet, bool isTail) nonReentrant external payable returns (uint) { require(!pause, "Game paused"); require(addressToFlip[msg.sender] == 0, "User has a pending game"); require(minBet <= userBet && userBet <= maxBet(), "Wrong bet"); require(token.transferFrom(msg.sender, address(this), userBet), "Token transfer failed"); uint id = COORDINATOR.requestRandomWords( keyHash, s_subscriptionId, requestConfirmations, callbackGasLimit, numWords ); flipToAddress[id] = UserInfo(msg.sender, userBet, block.timestamp, isTail); addressToFlip[msg.sender] = id; tempStorage += userBet; rewardPool -= userBet; emit NewFlip(msg.sender, userBet, isTail, id); return id; } function fulfillRandomWords( uint _requestId, uint[] memory _randomWords ) internal override { UserInfo storage player = flipToAddress[_requestId]; uint random = _randomWords[0] % 99; // If the value for random is less than 50 - tail bool result = (random < 50); if (player.isTail == result) { tempStorage -= player.userBet; token.transfer(player.user, player.userBet*2); emit FlipCompleted(player.user, true, result, player.userBet*2, _requestId); FlipResult memory flipRes = FlipResult(player.user, true, result, player.userBet*2, _requestId, block.timestamp); allFlipResults.push(flipRes); } else { tempStorage -= player.userBet; rewardPool += player.userBet*2; lostAmount += player.userBet; emit FlipCompleted(player.user, false, result, player.userBet, _requestId); FlipResult memory flipRes = FlipResult(player.user, false, result, player.userBet, _requestId, block.timestamp); allFlipResults.push(flipRes); } delete addressToFlip[player.user]; delete flipToAddress[_requestId]; } ///@notice user have to wait until refundDelay period to receive refund for non decided game function getRefund() external nonReentrant { uint id = addressToFlip[msg.sender]; require(id != 0, "No pending games"); require(!pause, "Game paused"); UserInfo storage player = flipToAddress[id]; require(block.timestamp >= player.time + refundDelay); token.transfer(player.user, player.userBet); tempStorage -= player.userBet; rewardPool += player.userBet; emit Cancel(player.user, player.userBet, id); delete flipToAddress[id]; delete addressToFlip[msg.sender]; } function changeCallbackGasLimit(uint32 newLimit) external onlyOwner { uint32 oldValue = callbackGasLimit; callbackGasLimit = newLimit; emit CallbackGasLimitUpdated(oldValue, newLimit); } function setPause(bool state) external onlyOwner { pause = state; emit PauseChanged(state); } function resetLostAmount() external onlyOwner { lostAmount = 0; } function setRewardPoolPercentage(uint _maxRewardPoolPercentage) external onlyOwner { rewardPoolPercentage = _maxRewardPoolPercentage; } function setMinBet(uint _minBet) external onlyOwner { minBet = _minBet; } function setTokenAddress(address _token) external onlyOwner { token = IERC20(_token); } function setKeyHash(bytes32 _keyHash) external onlyOwner { keyHash = _keyHash; } ///@param _delay should be entered in days function setRefundDelay(uint _delay) external onlyOwner { refundDelay = _delay * 1 days; } function withdraw(address _token, uint _amount) external onlyOwner { if (_token != address(0)) { if (_token == address(token)) { require(_amount <= rewardPool, "Amount exceeded than reward pool balance"); rewardPool -= _amount; } IERC20(_token).transfer(msg.sender, _amount); } else { (bool success, ) = payable(msg.sender).call{ value: _amount }(""); require(success, "Can't send ETH"); } } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"uint64","name":"subscriptionId","type":"uint64"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_minBet","type":"uint256"},{"internalType":"uint256","name":"_MaxRewardPoolPercentage","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"have","type":"address"},{"internalType":"address","name":"want","type":"address"}],"name":"OnlyCoordinatorCanFulfill","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"oldValue","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"newValue","type":"uint32"}],"name":"CallbackGasLimitUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"gameId","type":"uint256"}],"name":"Cancel","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"player","type":"address"},{"indexed":false,"internalType":"bool","name":"didWin","type":"bool"},{"indexed":false,"internalType":"bool","name":"isTail","type":"bool"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"gameId","type":"uint256"}],"name":"FlipCompleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"isTail","type":"bool"},{"indexed":true,"internalType":"uint256","name":"gameId","type":"uint256"}],"name":"NewFlip","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":false,"internalType":"bool","name":"newState","type":"bool"}],"name":"PauseChanged","type":"event"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addToRewardPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"addressToFlip","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"allFlipResults","outputs":[{"internalType":"address","name":"player","type":"address"},{"internalType":"bool","name":"didWin","type":"bool"},{"internalType":"bool","name":"isTail","type":"bool"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"gameId","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"newLimit","type":"uint32"}],"name":"changeCallbackGasLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"userBet","type":"uint256"},{"internalType":"bool","name":"isTail","type":"bool"}],"name":"flip","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"flipToAddress","outputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"userBet","type":"uint256"},{"internalType":"uint256","name":"time","type":"uint256"},{"internalType":"bool","name":"isTail","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_count","type":"uint256"}],"name":"getLastFlipResults","outputs":[{"components":[{"internalType":"address","name":"player","type":"address"},{"internalType":"bool","name":"didWin","type":"bool"},{"internalType":"bool","name":"isTail","type":"bool"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"gameId","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct DracoCoinFlip.FlipResult[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRefund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lostAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minBet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"requestId","type":"uint256"},{"internalType":"uint256[]","name":"randomWords","type":"uint256[]"}],"name":"rawFulfillRandomWords","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"refundDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetLostAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardPoolPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_keyHash","type":"bytes32"}],"name":"setKeyHash","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minBet","type":"uint256"}],"name":"setMinBet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setPause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_delay","type":"uint256"}],"name":"setRefundDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxRewardPoolPercentage","type":"uint256"}],"name":"setRewardPoolPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"setTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a0604052600280546001600160501b031916680f4240000000010003179055620697806006557f8af398995b04c28e9951adb9721ef74c74f93e6a478f39e7e0777be13527e7ef6009553480156200005757600080fd5b5060405162001dae38038062001dae8339810160408190526200007a916200017a565b73271682deb8c4e0901d1a1550ad2e64d568e699096080526200009d336200012a565b60018055600a8054610100600160a81b03191674271682deb8c4e0901d1a1550ad2e64d568e699090017905560028054600160501b600160901b0319166a01000000000000000000006001600160401b03969096169590950294909417909355600b80546001600160a01b0319166001600160a01b039390931692909217909155600355600555620001dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080600080608085870312156200019157600080fd5b84516001600160401b0381168114620001a957600080fd5b60208601519094506001600160a01b0381168114620001c757600080fd5b6040860151606090960151949790965092505050565b608051611bae620002006000396000818161094b015261098d0152611bae6000f3fe6080604052600436106101bb5760003560e01c80639619367d116100ec578063c4af9e5d1161008a578063f1a9584211610064578063f1a958421461053f578063f2fde38b1461055f578063f3fef3a31461057f578063fc0c546a1461059f57600080fd5b8063c4af9e5d146104f4578063c530b13314610509578063e86a51cb1461051f57600080fd5b8063b85cf54e116100c6578063b85cf54e14610471578063b95ffbce14610487578063ba2c8e8d146104a7578063bedb86fb146104d457600080fd5b80639619367d14610426578063985447101461043c578063b2d5ae441461045c57600080fd5b806366666aa9116101595780638456cb59116101335780638456cb591461032f57806387fa54401461035957806388ea41b9146103d45780638da5cb5b146103f457600080fd5b806366666aa9146102e4578063715018a6146102fa5780637bfa98191461030f57600080fd5b806326a4e8d21161019557806326a4e8d21461023c5780632e5b21681461025c5780633e602b4c1461027157806362df1c111461028757600080fd5b80630f0ac3c3146101c7578063105c2738146102075780631fe543e31461021a57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101f46101e2366004611837565b600d6020526000908152604090205481565b6040519081526020015b60405180910390f35b6101f4610215366004611867565b6105bf565b34801561022657600080fd5b5061023a6102353660046118ad565b610940565b005b34801561024857600080fd5b5061023a610257366004611837565b6109c8565b34801561026857600080fd5b506101f46109f2565b34801561027d57600080fd5b506101f460065481565b34801561029357600080fd5b506102a76102a2366004611977565b610a15565b604080516001600160a01b0390971687529415156020870152921515938501939093526060840152608083019190915260a082015260c0016101fe565b3480156102f057600080fd5b506101f460045481565b34801561030657600080fd5b5061023a610a6d565b34801561031b57600080fd5b5061023a61032a366004611977565b610a81565b34801561033b57600080fd5b50600a546103499060ff1681565b60405190151581526020016101fe565b34801561036557600080fd5b506103a8610374366004611977565b600c6020526000908152604090208054600182015460028301546003909301546001600160a01b0390921692909160ff1684565b604080516001600160a01b039095168552602085019390935291830152151560608201526080016101fe565b3480156103e057600080fd5b5061023a6103ef366004611977565b610a9c565b34801561040057600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101fe565b34801561043257600080fd5b506101f460035481565b34801561044857600080fd5b5061023a610457366004611977565b610aa9565b34801561046857600080fd5b5061023a610ab6565b34801561047d57600080fd5b506101f460055481565b34801561049357600080fd5b5061023a6104a2366004611977565b610cc7565b3480156104b357600080fd5b506104c76104c2366004611977565b610da8565b6040516101fe9190611990565b3480156104e057600080fd5b5061023a6104ef366004611a15565b610f1d565b34801561050057600080fd5b5061023a610f6c565b34801561051557600080fd5b506101f460085481565b34801561052b57600080fd5b5061023a61053a366004611a32565b610f7b565b34801561054b57600080fd5b5061023a61055a366004611977565b610ff2565b34801561056b57600080fd5b5061023a61057a366004611837565b610fff565b34801561058b57600080fd5b5061023a61059a366004611a58565b611078565b3480156105ab57600080fd5b50600b5461040e906001600160a01b031681565b60006105c961121f565b600a5460ff161561060f5760405162461bcd60e51b815260206004820152600b60248201526a11d85b59481c185d5cd95960aa1b60448201526064015b60405180910390fd5b336000908152600d60205260409020541561066c5760405162461bcd60e51b815260206004820152601760248201527f557365722068617320612070656e64696e672067616d650000000000000000006044820152606401610606565b826003541115801561068557506106816109f2565b8311155b6106bd5760405162461bcd60e51b815260206004820152600960248201526815dc9bdb99c818995d60ba1b6044820152606401610606565b600b546040516323b872dd60e01b8152336004820152306024820152604481018590526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610714573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107389190611a82565b61077c5760405162461bcd60e51b8152602060048201526015602482015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b6044820152606401610606565b600a546009546002546040516305d3b1d360e41b81526004810192909252600160501b810467ffffffffffffffff16602483015261ffff811660448301526601000000000000810463ffffffff90811660648401526201000090910416608482015260009161010090046001600160a01b031690635d3b1d309060a4016020604051808303816000875af1158015610818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083c9190611a9f565b6040805160808101825233808252602080830189815242848601908152891515606086019081526000888152600c8552878120965187546001600160a01b0319166001600160a01b039091161787559251600187015590516002860155516003909401805460ff191694151594909417909355908252600d90529081208290556007805492935086929091906108d3908490611ace565b9250508190555083600460008282546108ec9190611ae1565b9091555050604080518581528415156020820152829133917f7deb2e3252b8ff2091d4a966189d94baba34e305c31019b2713a8b41beb981e9910160405180910390a3905061093a60018055565b92915050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109ba5760405163073e64fd60e21b81523360048201526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166024820152604401610606565b6109c48282611278565b5050565b6109d0611771565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60006064600554600454610a069190611af4565b610a109190611b21565b905090565b600e8181548110610a2557600080fd5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b038316945060ff600160a01b8404811694600160a81b90940416929086565b610a75611771565b610a7f60006117cb565b565b610a89611771565b610a968162015180611af4565b60065550565b610aa4611771565b600355565b610ab1611771565b600955565b610abe61121f565b336000908152600d602052604081205490819003610b115760405162461bcd60e51b815260206004820152601060248201526f4e6f2070656e64696e672067616d657360801b6044820152606401610606565b600a5460ff1615610b525760405162461bcd60e51b815260206004820152600b60248201526a11d85b59481c185d5cd95960aa1b6044820152606401610606565b6000818152600c602052604090206006546002820154610b729190611ace565b421015610b7e57600080fd5b600b548154600183015460405163a9059cbb60e01b81526001600160a01b039283166004820152602481019190915291169063a9059cbb906044016020604051808303816000875af1158015610bd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfc9190611a82565b50806001015460076000828254610c139190611ae1565b9091555050600181015460048054600090610c2f908490611ace565b90915550508054600182015460405190815283916001600160a01b0316907f13f70c3891bf9326a78bedbd802efd57fa4451e8b0eab22d638b4e6b7a878eaf9060200160405180910390a3506000908152600c6020908152604080832080546001600160a01b03191681556001810184905560028101849055600301805460ff19169055338352600d909152812055610a7f60018055565b610ccf611771565b600b546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610d26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4a9190611a82565b610d8e5760405162461bcd60e51b8152602060048201526015602482015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b6044820152606401610606565b8060046000828254610da09190611ace565b909155505050565b600e546060906000838211610dc257509150816000610dcf565b610dcc8483611ae1565b90505b60008467ffffffffffffffff811115610dea57610dea611897565b604051908082528060200260200182016040528015610e4a57816020015b6040805160c08101825260008082526020808301829052928201819052606082018190526080820181905260a08201528252600019909201910181610e085790505b50905060005b85811015610f1457600e610e648285611ace565b81548110610e7457610e74611b35565b60009182526020918290206040805160c081018252600490930290910180546001600160a01b038116845260ff600160a01b82048116151595850195909552600160a81b9004909316151590820152600182015460608201526002820154608082015260039091015460a08201528251839083908110610ef657610ef6611b35565b60200260200101819052508080610f0c90611b4b565b915050610e50565b50949350505050565b610f25611771565b600a805460ff19168215159081179091556040519081527f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec59060200160405180910390a150565b610f74611771565b6000600855565b610f83611771565b6002805463ffffffff838116660100000000000081810269ffffffff0000000000001985161790945560408051949093049091168084526020840191909152917f7c762fcc4f45afe3829913a024ea45c617722aec34739245c1e52a7ce483e37a910160405180910390a15050565b610ffa611771565b600555565b611007611771565b6001600160a01b03811661106c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610606565b611075816117cb565b50565b611080611771565b6001600160a01b0382161561119657600b546001600160a01b0390811690831603611120576004548111156111085760405162461bcd60e51b815260206004820152602860248201527f416d6f756e74206578636565646564207468616e2072657761726420706f6f6c6044820152672062616c616e636560c01b6064820152608401610606565b806004600082825461111a9190611ae1565b90915550505b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af115801561116d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111919190611a82565b505050565b604051600090339083908381818185875af1925050503d80600081146111d8576040519150601f19603f3d011682016040523d82523d6000602084013e6111dd565b606091505b50509050806111915760405162461bcd60e51b815260206004820152600e60248201526d086c2dc4ee840e6cadcc8408aa8960931b6044820152606401610606565b6002600154036112715760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610606565b6002600155565b6000828152600c6020526040812082519091906063908490839061129e5761129e611b35565b60200260200101516112b09190611b64565b6003830154909150603282109060ff161515819003611537578260010154600760008282546112df9190611ae1565b9091555050600b54835460018501546001600160a01b039283169263a9059cbb92169061130d906002611af4565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611358573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137c9190611a82565b50825460018085015487926001600160a01b0316917f7e6b4a1adace7895bb31b8c0d565d6afffda281eb2e96c935a837397b568f8df9185906113c0906002611af4565b60408051931515845291151560208401529082015260600160405180910390a36040805160c08101825284546001600160a01b031681526001602082018190528315159282019290925290840154600091906060820190611422906002611af4565b8152602080820189905242604092830152600e8054600181018255600091909152835160049091027fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd8101805493860151948601511515600160a81b0260ff60a81b19951515600160a01b026001600160a81b03199095166001600160a01b0390941693909317939093179390931617905560608201517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fe82015560808201517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3ff82015560a0909101517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c400909101555061171c565b82600101546007600082825461154d9190611ae1565b90915550506001830154611562906002611af4565b600460008282546115739190611ace565b909155505060018301546008805460009061158f908490611ace565b909155505082546001840154604080516000815284151560208201529081019190915286916001600160a01b0316907f7e6b4a1adace7895bb31b8c0d565d6afffda281eb2e96c935a837397b568f8df9060600160405180910390a36040805160c08101825284546001600160a01b03908116825260006020830181815285151594840194855260018089015460608601908152608086018c81524260a08801908152600e80549485018155909552955160049092027fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd81018054945198511515600160a81b0260ff60a81b19991515600160a01b026001600160a81b0319909616949097169390931793909317969096169390931790925592517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fe82015590517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3ff82015590517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c400909101555b5050546001600160a01b03166000908152600d60209081526040808320839055938252600c905291822080546001600160a01b031916815560018101839055600281019290925550600301805460ff19169055565b6000546001600160a01b03163314610a7f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610606565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461183257600080fd5b919050565b60006020828403121561184957600080fd5b6118528261181b565b9392505050565b801515811461107557600080fd5b6000806040838503121561187a57600080fd5b82359150602083013561188c81611859565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156118c057600080fd5b8235915060208084013567ffffffffffffffff808211156118e057600080fd5b818601915086601f8301126118f457600080fd5b81358181111561190657611906611897565b8060051b604051601f19603f8301168101818110858211171561192b5761192b611897565b60405291825284820192508381018501918983111561194957600080fd5b938501935b828510156119675784358452938501939285019261194e565b8096505050505050509250929050565b60006020828403121561198957600080fd5b5035919050565b602080825282518282018190526000919060409081850190868401855b82811015611a0857815180516001600160a01b031685528681015115158786015285810151151586860152606080820151908601526080808201519086015260a0908101519085015260c090930192908501906001016119ad565b5091979650505050505050565b600060208284031215611a2757600080fd5b813561185281611859565b600060208284031215611a4457600080fd5b813563ffffffff8116811461185257600080fd5b60008060408385031215611a6b57600080fd5b611a748361181b565b946020939093013593505050565b600060208284031215611a9457600080fd5b815161185281611859565b600060208284031215611ab157600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561093a5761093a611ab8565b8181038181111561093a5761093a611ab8565b808202811582820484141761093a5761093a611ab8565b634e487b7160e01b600052601260045260246000fd5b600082611b3057611b30611b0b565b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201611b5d57611b5d611ab8565b5060010190565b600082611b7357611b73611b0b565b50069056fea26469706673582212207b85f55395e1925c951bf96df524416fed625e6d6597a2bdc99f365659cf563464736f6c6343000811003300000000000000000000000000000000000000000000000000000000000003260000000000000000000000003642cf76c5894b4ab51c1080b2c4f5b9ea7341060000000000000000000000000000000000000000000054b40b1f852bda000000000000000000000000000000000000000000000000000000000000000000000a
Deployed Bytecode
0x6080604052600436106101bb5760003560e01c80639619367d116100ec578063c4af9e5d1161008a578063f1a9584211610064578063f1a958421461053f578063f2fde38b1461055f578063f3fef3a31461057f578063fc0c546a1461059f57600080fd5b8063c4af9e5d146104f4578063c530b13314610509578063e86a51cb1461051f57600080fd5b8063b85cf54e116100c6578063b85cf54e14610471578063b95ffbce14610487578063ba2c8e8d146104a7578063bedb86fb146104d457600080fd5b80639619367d14610426578063985447101461043c578063b2d5ae441461045c57600080fd5b806366666aa9116101595780638456cb59116101335780638456cb591461032f57806387fa54401461035957806388ea41b9146103d45780638da5cb5b146103f457600080fd5b806366666aa9146102e4578063715018a6146102fa5780637bfa98191461030f57600080fd5b806326a4e8d21161019557806326a4e8d21461023c5780632e5b21681461025c5780633e602b4c1461027157806362df1c111461028757600080fd5b80630f0ac3c3146101c7578063105c2738146102075780631fe543e31461021a57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101f46101e2366004611837565b600d6020526000908152604090205481565b6040519081526020015b60405180910390f35b6101f4610215366004611867565b6105bf565b34801561022657600080fd5b5061023a6102353660046118ad565b610940565b005b34801561024857600080fd5b5061023a610257366004611837565b6109c8565b34801561026857600080fd5b506101f46109f2565b34801561027d57600080fd5b506101f460065481565b34801561029357600080fd5b506102a76102a2366004611977565b610a15565b604080516001600160a01b0390971687529415156020870152921515938501939093526060840152608083019190915260a082015260c0016101fe565b3480156102f057600080fd5b506101f460045481565b34801561030657600080fd5b5061023a610a6d565b34801561031b57600080fd5b5061023a61032a366004611977565b610a81565b34801561033b57600080fd5b50600a546103499060ff1681565b60405190151581526020016101fe565b34801561036557600080fd5b506103a8610374366004611977565b600c6020526000908152604090208054600182015460028301546003909301546001600160a01b0390921692909160ff1684565b604080516001600160a01b039095168552602085019390935291830152151560608201526080016101fe565b3480156103e057600080fd5b5061023a6103ef366004611977565b610a9c565b34801561040057600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016101fe565b34801561043257600080fd5b506101f460035481565b34801561044857600080fd5b5061023a610457366004611977565b610aa9565b34801561046857600080fd5b5061023a610ab6565b34801561047d57600080fd5b506101f460055481565b34801561049357600080fd5b5061023a6104a2366004611977565b610cc7565b3480156104b357600080fd5b506104c76104c2366004611977565b610da8565b6040516101fe9190611990565b3480156104e057600080fd5b5061023a6104ef366004611a15565b610f1d565b34801561050057600080fd5b5061023a610f6c565b34801561051557600080fd5b506101f460085481565b34801561052b57600080fd5b5061023a61053a366004611a32565b610f7b565b34801561054b57600080fd5b5061023a61055a366004611977565b610ff2565b34801561056b57600080fd5b5061023a61057a366004611837565b610fff565b34801561058b57600080fd5b5061023a61059a366004611a58565b611078565b3480156105ab57600080fd5b50600b5461040e906001600160a01b031681565b60006105c961121f565b600a5460ff161561060f5760405162461bcd60e51b815260206004820152600b60248201526a11d85b59481c185d5cd95960aa1b60448201526064015b60405180910390fd5b336000908152600d60205260409020541561066c5760405162461bcd60e51b815260206004820152601760248201527f557365722068617320612070656e64696e672067616d650000000000000000006044820152606401610606565b826003541115801561068557506106816109f2565b8311155b6106bd5760405162461bcd60e51b815260206004820152600960248201526815dc9bdb99c818995d60ba1b6044820152606401610606565b600b546040516323b872dd60e01b8152336004820152306024820152604481018590526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610714573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107389190611a82565b61077c5760405162461bcd60e51b8152602060048201526015602482015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b6044820152606401610606565b600a546009546002546040516305d3b1d360e41b81526004810192909252600160501b810467ffffffffffffffff16602483015261ffff811660448301526601000000000000810463ffffffff90811660648401526201000090910416608482015260009161010090046001600160a01b031690635d3b1d309060a4016020604051808303816000875af1158015610818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083c9190611a9f565b6040805160808101825233808252602080830189815242848601908152891515606086019081526000888152600c8552878120965187546001600160a01b0319166001600160a01b039091161787559251600187015590516002860155516003909401805460ff191694151594909417909355908252600d90529081208290556007805492935086929091906108d3908490611ace565b9250508190555083600460008282546108ec9190611ae1565b9091555050604080518581528415156020820152829133917f7deb2e3252b8ff2091d4a966189d94baba34e305c31019b2713a8b41beb981e9910160405180910390a3905061093a60018055565b92915050565b336001600160a01b037f000000000000000000000000271682deb8c4e0901d1a1550ad2e64d568e6990916146109ba5760405163073e64fd60e21b81523360048201526001600160a01b037f000000000000000000000000271682deb8c4e0901d1a1550ad2e64d568e69909166024820152604401610606565b6109c48282611278565b5050565b6109d0611771565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b60006064600554600454610a069190611af4565b610a109190611b21565b905090565b600e8181548110610a2557600080fd5b600091825260209091206004909102018054600182015460028301546003909301546001600160a01b038316945060ff600160a01b8404811694600160a81b90940416929086565b610a75611771565b610a7f60006117cb565b565b610a89611771565b610a968162015180611af4565b60065550565b610aa4611771565b600355565b610ab1611771565b600955565b610abe61121f565b336000908152600d602052604081205490819003610b115760405162461bcd60e51b815260206004820152601060248201526f4e6f2070656e64696e672067616d657360801b6044820152606401610606565b600a5460ff1615610b525760405162461bcd60e51b815260206004820152600b60248201526a11d85b59481c185d5cd95960aa1b6044820152606401610606565b6000818152600c602052604090206006546002820154610b729190611ace565b421015610b7e57600080fd5b600b548154600183015460405163a9059cbb60e01b81526001600160a01b039283166004820152602481019190915291169063a9059cbb906044016020604051808303816000875af1158015610bd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfc9190611a82565b50806001015460076000828254610c139190611ae1565b9091555050600181015460048054600090610c2f908490611ace565b90915550508054600182015460405190815283916001600160a01b0316907f13f70c3891bf9326a78bedbd802efd57fa4451e8b0eab22d638b4e6b7a878eaf9060200160405180910390a3506000908152600c6020908152604080832080546001600160a01b03191681556001810184905560028101849055600301805460ff19169055338352600d909152812055610a7f60018055565b610ccf611771565b600b546040516323b872dd60e01b8152336004820152306024820152604481018390526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610d26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4a9190611a82565b610d8e5760405162461bcd60e51b8152602060048201526015602482015274151bdad95b881d1c985b9cd9995c8819985a5b1959605a1b6044820152606401610606565b8060046000828254610da09190611ace565b909155505050565b600e546060906000838211610dc257509150816000610dcf565b610dcc8483611ae1565b90505b60008467ffffffffffffffff811115610dea57610dea611897565b604051908082528060200260200182016040528015610e4a57816020015b6040805160c08101825260008082526020808301829052928201819052606082018190526080820181905260a08201528252600019909201910181610e085790505b50905060005b85811015610f1457600e610e648285611ace565b81548110610e7457610e74611b35565b60009182526020918290206040805160c081018252600490930290910180546001600160a01b038116845260ff600160a01b82048116151595850195909552600160a81b9004909316151590820152600182015460608201526002820154608082015260039091015460a08201528251839083908110610ef657610ef6611b35565b60200260200101819052508080610f0c90611b4b565b915050610e50565b50949350505050565b610f25611771565b600a805460ff19168215159081179091556040519081527f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec59060200160405180910390a150565b610f74611771565b6000600855565b610f83611771565b6002805463ffffffff838116660100000000000081810269ffffffff0000000000001985161790945560408051949093049091168084526020840191909152917f7c762fcc4f45afe3829913a024ea45c617722aec34739245c1e52a7ce483e37a910160405180910390a15050565b610ffa611771565b600555565b611007611771565b6001600160a01b03811661106c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610606565b611075816117cb565b50565b611080611771565b6001600160a01b0382161561119657600b546001600160a01b0390811690831603611120576004548111156111085760405162461bcd60e51b815260206004820152602860248201527f416d6f756e74206578636565646564207468616e2072657761726420706f6f6c6044820152672062616c616e636560c01b6064820152608401610606565b806004600082825461111a9190611ae1565b90915550505b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af115801561116d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111919190611a82565b505050565b604051600090339083908381818185875af1925050503d80600081146111d8576040519150601f19603f3d011682016040523d82523d6000602084013e6111dd565b606091505b50509050806111915760405162461bcd60e51b815260206004820152600e60248201526d086c2dc4ee840e6cadcc8408aa8960931b6044820152606401610606565b6002600154036112715760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610606565b6002600155565b6000828152600c6020526040812082519091906063908490839061129e5761129e611b35565b60200260200101516112b09190611b64565b6003830154909150603282109060ff161515819003611537578260010154600760008282546112df9190611ae1565b9091555050600b54835460018501546001600160a01b039283169263a9059cbb92169061130d906002611af4565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015611358573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137c9190611a82565b50825460018085015487926001600160a01b0316917f7e6b4a1adace7895bb31b8c0d565d6afffda281eb2e96c935a837397b568f8df9185906113c0906002611af4565b60408051931515845291151560208401529082015260600160405180910390a36040805160c08101825284546001600160a01b031681526001602082018190528315159282019290925290840154600091906060820190611422906002611af4565b8152602080820189905242604092830152600e8054600181018255600091909152835160049091027fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd8101805493860151948601511515600160a81b0260ff60a81b19951515600160a01b026001600160a81b03199095166001600160a01b0390941693909317939093179390931617905560608201517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fe82015560808201517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3ff82015560a0909101517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c400909101555061171c565b82600101546007600082825461154d9190611ae1565b90915550506001830154611562906002611af4565b600460008282546115739190611ace565b909155505060018301546008805460009061158f908490611ace565b909155505082546001840154604080516000815284151560208201529081019190915286916001600160a01b0316907f7e6b4a1adace7895bb31b8c0d565d6afffda281eb2e96c935a837397b568f8df9060600160405180910390a36040805160c08101825284546001600160a01b03908116825260006020830181815285151594840194855260018089015460608601908152608086018c81524260a08801908152600e80549485018155909552955160049092027fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd81018054945198511515600160a81b0260ff60a81b19991515600160a01b026001600160a81b0319909616949097169390931793909317969096169390931790925592517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fe82015590517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3ff82015590517fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c400909101555b5050546001600160a01b03166000908152600d60209081526040808320839055938252600c905291822080546001600160a01b031916815560018101839055600281019290925550600301805460ff19169055565b6000546001600160a01b03163314610a7f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610606565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461183257600080fd5b919050565b60006020828403121561184957600080fd5b6118528261181b565b9392505050565b801515811461107557600080fd5b6000806040838503121561187a57600080fd5b82359150602083013561188c81611859565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156118c057600080fd5b8235915060208084013567ffffffffffffffff808211156118e057600080fd5b818601915086601f8301126118f457600080fd5b81358181111561190657611906611897565b8060051b604051601f19603f8301168101818110858211171561192b5761192b611897565b60405291825284820192508381018501918983111561194957600080fd5b938501935b828510156119675784358452938501939285019261194e565b8096505050505050509250929050565b60006020828403121561198957600080fd5b5035919050565b602080825282518282018190526000919060409081850190868401855b82811015611a0857815180516001600160a01b031685528681015115158786015285810151151586860152606080820151908601526080808201519086015260a0908101519085015260c090930192908501906001016119ad565b5091979650505050505050565b600060208284031215611a2757600080fd5b813561185281611859565b600060208284031215611a4457600080fd5b813563ffffffff8116811461185257600080fd5b60008060408385031215611a6b57600080fd5b611a748361181b565b946020939093013593505050565b600060208284031215611a9457600080fd5b815161185281611859565b600060208284031215611ab157600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561093a5761093a611ab8565b8181038181111561093a5761093a611ab8565b808202811582820484141761093a5761093a611ab8565b634e487b7160e01b600052601260045260246000fd5b600082611b3057611b30611b0b565b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201611b5d57611b5d611ab8565b5060010190565b600082611b7357611b73611b0b565b50069056fea26469706673582212207b85f55395e1925c951bf96df524416fed625e6d6597a2bdc99f365659cf563464736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000003260000000000000000000000003642cf76c5894b4ab51c1080b2c4f5b9ea7341060000000000000000000000000000000000000000000054b40b1f852bda000000000000000000000000000000000000000000000000000000000000000000000a
-----Decoded View---------------
Arg [0] : subscriptionId (uint64): 806
Arg [1] : _token (address): 0x3642Cf76c5894B4aB51c1080B2c4F5B9eA734106
Arg [2] : _minBet (uint256): 400000000000000000000000
Arg [3] : _MaxRewardPoolPercentage (uint256): 10
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000326
Arg [1] : 0000000000000000000000003642cf76c5894b4ab51c1080b2c4f5b9ea734106
Arg [2] : 0000000000000000000000000000000000000000000054b40b1f852bda000000
Arg [3] : 000000000000000000000000000000000000000000000000000000000000000a
Deployed Bytecode Sourcemap
21569:7372:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22523:45;;;;;;;;;;-1:-1:-1;22523:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;529:25:1;;;517:2;502:18;22523:45:0;;;;;;;;24529:863;;;;;;:::i;:::-;;:::i;16134:261::-;;;;;;;;;;-1:-1:-1;16134:261:0;;;;;:::i;:::-;;:::i;:::-;;28038:101;;;;;;;;;;-1:-1:-1;28038:101:0;;;;;:::i;:::-;;:::i;23474:112::-;;;;;;;;;;;;;:::i;22176:32::-;;;;;;;;;;;;;;;;22575:34;;;;;;;;;;-1:-1:-1;22575:34:0;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;2800:32:1;;;2782:51;;2876:14;;2869:22;2864:2;2849:18;;2842:50;2935:14;;2928:22;2908:18;;;2901:50;;;;2982:2;2967:18;;2960:34;3025:3;3010:19;;3003:35;;;;2820:3;3054:19;;3047:35;2769:3;2754:19;22575:34:0;2507:581:1;22107:22:0;;;;;;;;;;;;;;;;8540:103;;;;;;;;;;;;;:::i;28301:104::-;;;;;;;;;;-1:-1:-1;28301:104:0;;;;;:::i;:::-;;:::i;22372:17::-;;;;;;;;;;-1:-1:-1;22372:17:0;;;;;;;;;;;3258:14:1;;3251:22;3233:41;;3221:2;3206:18;22372:17:0;3093:187:1;22470:46:0;;;;;;;;;;-1:-1:-1;22470:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22470:46:0;;;;;;;;;;;;;;-1:-1:-1;;;;;3528:32:1;;;3510:51;;3592:2;3577:18;;3570:34;;;;3620:18;;;3613:34;3690:14;3683:22;3678:2;3663:18;;3656:50;3497:3;3482:19;22470:46:0;3285:427:1;27941:87:0;;;;;;;;;;-1:-1:-1;27941:87:0;;;;;:::i;:::-;;:::i;7892:::-;;;;;;;;;;-1:-1:-1;7938:7:0;7965:6;-1:-1:-1;;;;;7965:6:0;7892:87;;;-1:-1:-1;;;;;3881:32:1;;;3863:51;;3851:2;3836:18;7892:87:0;3717:203:1;22082:18:0;;;;;;;;;;;;;;;;28149:94;;;;;;;;;;-1:-1:-1;28149:94:0;;;;;:::i;:::-;;:::i;26750:575::-;;;;;;;;;;;;;:::i;22136:32::-;;;;;;;;;;;;;;;;23673:194;;;;;;;;;;-1:-1:-1;23673:194:0;;;;;:::i;:::-;;:::i;23877:569::-;;;;;;;;;;-1:-1:-1;23877:569:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;27563:116::-;;;;;;;;;;-1:-1:-1;27563:116:0;;;;;:::i;:::-;;:::i;27689:79::-;;;;;;;;;;;;;:::i;22246:22::-;;;;;;;;;;;;;;;;27335:218;;;;;;;;;;-1:-1:-1;27335:218:0;;;;;:::i;:::-;;:::i;27782:149::-;;;;;;;;;;-1:-1:-1;27782:149:0;;;;;:::i;:::-;;:::i;8798:201::-;;;;;;;;;;-1:-1:-1;8798:201:0;;;;;:::i;:::-;;:::i;28415:480::-;;;;;;;;;;-1:-1:-1;28415:480:0;;;;;:::i;:::-;;:::i;22442:19::-;;;;;;;;;;-1:-1:-1;22442:19:0;;;;-1:-1:-1;;;;;22442:19:0;;;24529:863;24609:4;5163:21;:19;:21::i;:::-;24635:5:::1;::::0;::::1;;24634:6;24626:30;;;::::0;-1:-1:-1;;;24626:30:0;;6469:2:1;24626:30:0::1;::::0;::::1;6451:21:1::0;6508:2;6488:18;;;6481:30;-1:-1:-1;;;6527:18:1;;;6520:41;6578:18;;24626:30:0::1;;;;;;;;;24689:10;24675:25;::::0;;;:13:::1;:25;::::0;;;;;:30;24667:66:::1;;;::::0;-1:-1:-1;;;24667:66:0;;6809:2:1;24667:66:0::1;::::0;::::1;6791:21:1::0;6848:2;6828:18;;;6821:30;6887:25;6867:18;;;6860:53;6930:18;;24667:66:0::1;6607:347:1::0;24667:66:0::1;24762:7;24752:6;;:17;;:40;;;;;24784:8;:6;:8::i;:::-;24773:7;:19;;24752:40;24744:62;;;::::0;-1:-1:-1;;;24744:62:0;;7161:2:1;24744:62:0::1;::::0;::::1;7143:21:1::0;7200:1;7180:18;;;7173:29;-1:-1:-1;;;7218:18:1;;;7211:39;7267:18;;24744:62:0::1;6959:332:1::0;24744:62:0::1;24825:5;::::0;:54:::1;::::0;-1:-1:-1;;;24825:54:0;;24844:10:::1;24825:54;::::0;::::1;7536:34:1::0;24864:4:0::1;7586:18:1::0;;;7579:43;7638:18;;;7631:34;;;-1:-1:-1;;;;;24825:5:0;;::::1;::::0;:18:::1;::::0;7471::1;;24825:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24817:88;;;::::0;-1:-1:-1;;;24817:88:0;;8128:2:1;24817:88:0::1;::::0;::::1;8110:21:1::0;8167:2;8147:18;;;8140:30;-1:-1:-1;;;8186:18:1;;;8179:51;8247:18;;24817:88:0::1;7926:345:1::0;24817:88:0::1;24928:11;::::0;24973:7:::1;::::0;24995:16:::1;::::0;24928:183:::1;::::0;-1:-1:-1;;;24928:183:0;;::::1;::::0;::::1;8527:25:1::0;;;;-1:-1:-1;;;24995:16:0;::::1;;;8568:18:1::0;;;8561:59;25026:20:0::1;::::0;::::1;8636:18:1::0;;;8629:47;25061:16:0;;::::1;;::::0;;::::1;8721:18:1::0;;;8714:43;25092:8:0;;;::::1;;8773:19:1::0;;;8766:44;24918:7:0::1;::::0;24928:11:::1;::::0;::::1;-1:-1:-1::0;;;;;24928:11:0::1;::::0;:30:::1;::::0;8499:19:1;;24928:183:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;25142:54;::::0;;::::1;::::0;::::1;::::0;;25151:10:::1;25142:54:::0;;;::::1;::::0;;::::1;::::0;;;25172:15:::1;25142:54:::0;;;;;;;::::1;;::::0;;;;;;-1:-1:-1;25122:17:0;;;:13:::1;:17:::0;;;;;:74;;;;-1:-1:-1;;;;;;25122:74:0::1;-1:-1:-1::0;;;;;25122:74:0;;::::1;;::::0;;;;-1:-1:-1;25122:74:0;::::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;25122:74:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;25207:25;;;:13:::1;:25:::0;;;;;:30;;;25250:11:::1;:22:::0;;25122:17;;-1:-1:-1;25142:54:0;;25250:11;;-1:-1:-1;25250:22:0::1;::::0;25142:54;;25250:22:::1;:::i;:::-;;;;;;;;25297:7;25283:10;;:21;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;25322:40:0::1;::::0;;9573:25:1;;;9641:14;;9634:22;9629:2;9614:18;;9607:50;25359:2:0;;25330:10:::1;::::0;25322:40:::1;::::0;9546:18:1;25322:40:0::1;;;;;;;25382:2:::0;-1:-1:-1;5207:20:0;4601:1;5727:22;;5544:213;5207:20;24529:863;;;;:::o;16134:261::-;16234:10;-1:-1:-1;;;;;16248:14:0;16234:28;;16230:111;;16280:53;;-1:-1:-1;;;16280:53:0;;16306:10;16280:53;;;9880:34:1;-1:-1:-1;;;;;16318:14:0;9950:15:1;9930:18;;;9923:43;9815:18;;16280:53:0;9668:304:1;16230:111:0;16347:42;16366:9;16377:11;16347:18;:42::i;:::-;16134:261;;:::o;28038:101::-;7778:13;:11;:13::i;:::-;28109:5:::1;:22:::0;;-1:-1:-1;;;;;;28109:22:0::1;-1:-1:-1::0;;;;;28109:22:0;;;::::1;::::0;;;::::1;::::0;;28038:101::o;23474:112::-;23513:4;23575:3;23551:20;;23538:10;;:33;;;;:::i;:::-;23537:41;;;;:::i;:::-;23530:48;;23474:112;:::o;22575:34::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22575:34:0;;;-1:-1:-1;22575:34:0;-1:-1:-1;;;22575:34:0;;;;;-1:-1:-1;;;22575:34:0;;;;;;;:::o;8540:103::-;7778:13;:11;:13::i;:::-;8605:30:::1;8632:1;8605:18;:30::i;:::-;8540:103::o:0;28301:104::-;7778:13;:11;:13::i;:::-;28382:15:::1;:6:::0;28391::::1;28382:15;:::i;:::-;28368:11;:29:::0;-1:-1:-1;28301:104:0:o;27941:87::-;7778:13;:11;:13::i;:::-;28004:6:::1;:16:::0;27941:87::o;28149:94::-;7778:13;:11;:13::i;:::-;28217:7:::1;:18:::0;28149:94::o;26750:575::-;5163:21;:19;:21::i;:::-;26828:10:::1;26804:7;26814:25:::0;;;:13:::1;:25;::::0;;;;;;26858:7;;;26850:36:::1;;;::::0;-1:-1:-1;;;26850:36:0;;10609:2:1;26850:36:0::1;::::0;::::1;10591:21:1::0;10648:2;10628:18;;;10621:30;-1:-1:-1;;;10667:18:1;;;10660:46;10723:18;;26850:36:0::1;10407:340:1::0;26850:36:0::1;26906:5;::::0;::::1;;26905:6;26897:30;;;::::0;-1:-1:-1;;;26897:30:0;;6469:2:1;26897:30:0::1;::::0;::::1;6451:21:1::0;6508:2;6488:18;;;6481:30;-1:-1:-1;;;6527:18:1;;;6520:41;6578:18;;26897:30:0::1;6267:335:1::0;26897:30:0::1;26938:23;26964:17:::0;;;:13:::1;:17;::::0;;;;27033:11:::1;::::0;27019::::1;::::0;::::1;::::0;:25:::1;::::0;27033:11;27019:25:::1;:::i;:::-;27000:15;:44;;26992:53;;;::::0;::::1;;27058:5;::::0;27073:11;;27058:5;27086:14;::::1;::::0;27058:43:::1;::::0;-1:-1:-1;;;27058:43:0;;-1:-1:-1;;;;;27073:11:0;;::::1;27058:43;::::0;::::1;10926:51:1::0;10993:18;;;10986:34;;;;27058:5:0;::::1;::::0;:14:::1;::::0;10899:18:1;;27058:43:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;27127:6;:14;;;27112:11;;:29;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;27166:14:0::1;::::0;::::1;::::0;27152:10:::1;:28:::0;;:10:::1;::::0;:28:::1;::::0;27166:14;;27152:28:::1;:::i;:::-;::::0;;;-1:-1:-1;;27205:11:0;;;27218:14;::::1;::::0;27198:39:::1;::::0;529:25:1;;;27234:2:0;;-1:-1:-1;;;;;27205:11:0::1;::::0;27198:39:::1;::::0;517:2:1;502:18;27198:39:0::1;;;;;;;-1:-1:-1::0;27257:17:0::1;::::0;;;:13:::1;:17;::::0;;;;;;;27250:24;;-1:-1:-1;;;;;;27250:24:0::1;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;::::1;;::::0;;-1:-1:-1;;27250:24:0::1;::::0;;27306:10:::1;27292:25:::0;;:13:::1;:25:::0;;;;;27285:32;5207:20;4601:1;5727:22;;5544:213;23673:194;7778:13;:11;:13::i;:::-;23749:5:::1;::::0;:53:::1;::::0;-1:-1:-1;;;23749:53:0;;23768:10:::1;23749:53;::::0;::::1;7536:34:1::0;23788:4:0::1;7586:18:1::0;;;7579:43;7638:18;;;7631:34;;;-1:-1:-1;;;;;23749:5:0;;::::1;::::0;:18:::1;::::0;7471::1;;23749:53:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23741:87;;;::::0;-1:-1:-1;;;23741:87:0;;8128:2:1;23741:87:0::1;::::0;::::1;8110:21:1::0;8167:2;8147:18;;;8140:30;-1:-1:-1;;;8186:18:1;;;8179:51;8247:18;;23741:87:0::1;7926:345:1::0;23741:87:0::1;23853:6;23839:10;;:20;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;23673:194:0:o;23877:569::-;23993:14;:21;23941:19;;23973:17;24055:22;;;24051:172;;-1:-1:-1;24103:12:0;-1:-1:-1;24103:12:0;24143:1;24051:172;;;24190:21;24205:6;24190:12;:21;:::i;:::-;24177:34;;24051:172;24233:31;24284:6;24267:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24267:24:0;;-1:-1:-1;;24267:24:0;;;;;;;;;;;;24233:58;;24307:6;24302:108;24323:6;24319:1;:10;24302:108;;;24368:14;24383;24396:1;24383:10;:14;:::i;:::-;24368:30;;;;;;;;:::i;:::-;;;;;;;;;;24351:47;;;;;;;;24368:30;;;;;;;24351:47;;-1:-1:-1;;;;;24351:47:0;;;;;-1:-1:-1;;;24351:47:0;;;;;;;;;;;;;-1:-1:-1;;;24351:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:14;;:11;;24363:1;;24351:14;;;;;;:::i;:::-;;;;;;:47;;;;24331:3;;;;;:::i;:::-;;;;24302:108;;;-1:-1:-1;24427:11:0;23877:569;-1:-1:-1;;;;23877:569:0:o;27563:116::-;7778:13;:11;:13::i;:::-;27623:5:::1;:13:::0;;-1:-1:-1;;27623:13:0::1;::::0;::::1;;::::0;;::::1;::::0;;;27652:19:::1;::::0;3233:41:1;;;27652:19:0::1;::::0;3221:2:1;3206:18;27652:19:0::1;;;;;;;27563:116:::0;:::o;27689:79::-;7778:13;:11;:13::i;:::-;27759:1:::1;27746:10;:14:::0;27689:79::o;27335:218::-;7778:13;:11;:13::i;:::-;27432:16:::1;::::0;;::::1;27459:27:::0;;::::1;27432:16:::0;27459:27;;::::1;-1:-1:-1::0;;27459:27:0;::::1;;::::0;;;27502:43:::1;::::0;;27432:16;;;::::1;::::0;;::::1;11502:34:1::0;;;11567:2;11552:18;;11545:43;;;;27432:16:0;27502:43:::1;::::0;11446:18:1;27502:43:0::1;;;;;;;27403:150;27335:218:::0;:::o;27782:149::-;7778:13;:11;:13::i;:::-;27876:20:::1;:47:::0;27782:149::o;8798:201::-;7778:13;:11;:13::i;:::-;-1:-1:-1;;;;;8887:22:0;::::1;8879:73;;;::::0;-1:-1:-1;;;8879:73:0;;11801:2:1;8879:73:0::1;::::0;::::1;11783:21:1::0;11840:2;11820:18;;;11813:30;11879:34;11859:18;;;11852:62;-1:-1:-1;;;11930:18:1;;;11923:36;11976:19;;8879:73:0::1;11599:402:1::0;8879:73:0::1;8963:28;8982:8;8963:18;:28::i;:::-;8798:201:::0;:::o;28415:480::-;7778:13;:11;:13::i;:::-;-1:-1:-1;;;;;28497:20:0;::::1;::::0;28493:398:::1;;28556:5;::::0;-1:-1:-1;;;;;28556:5:0;;::::1;28538:24:::0;;::::1;::::0;28534:179:::1;;28602:10;;28591:7;:21;;28583:74;;;::::0;-1:-1:-1;;;28583:74:0;;12208:2:1;28583:74:0::1;::::0;::::1;12190:21:1::0;12247:2;12227:18;;;12220:30;12286:34;12266:18;;;12259:62;-1:-1:-1;;;12337:18:1;;;12330:38;12385:19;;28583:74:0::1;12006:404:1::0;28583:74:0::1;28690:7;28676:10;;:21;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;28534:179:0::1;28718:44;::::0;-1:-1:-1;;;28718:44:0;;28742:10:::1;28718:44;::::0;::::1;10926:51:1::0;10993:18;;;10986:34;;;-1:-1:-1;;;;;28718:23:0;::::1;::::0;::::1;::::0;10899:18:1;;28718:44:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16134:261:::0;;:::o;28493:398::-:1;28799:46;::::0;28781:12:::1;::::0;28807:10:::1;::::0;28832:7;;28781:12;28799:46;28781:12;28799:46;28832:7;28807:10;28799:46:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28780:65;;;28859:7;28851:34;;;::::0;-1:-1:-1;;;28851:34:0;;12827:2:1;28851:34:0::1;::::0;::::1;12809:21:1::0;12866:2;12846:18;;;12839:30;-1:-1:-1;;;12885:18:1;;;12878:44;12939:18;;28851:34:0::1;12625:338:1::0;5243:293:0;4645:1;5377:7;;:19;5369:63;;;;-1:-1:-1;;;5369:63:0;;13170:2:1;5369:63:0;;;13152:21:1;13209:2;13189:18;;;13182:30;13248:33;13228:18;;;13221:61;13299:18;;5369:63:0;12968:355:1;5369:63:0;4645:1;5510:7;:18;5243:293::o;25402:1240::-;25529:23;25555:25;;;:13;:25;;;;;25605:15;;25555:25;;25529:23;25623:2;;25605:12;;25529:23;;25605:15;;;;:::i;:::-;;;;;;;:20;;;;:::i;:::-;25737:13;;;;25591:34;;-1:-1:-1;25719:2:0;25710:11;;;25737:13;;:23;;;;;25733:813;;25792:6;:14;;;25777:11;;:29;;;;;;;:::i;:::-;;;;-1:-1:-1;;25821:5:0;;25836:11;;25821:5;25849:14;;;-1:-1:-1;;;;;25821:5:0;;;;:14;;25836:11;;25849:16;;25864:1;25849:16;:::i;:::-;25821:45;;-1:-1:-1;;;;;;25821:45:0;;;;;;;-1:-1:-1;;;;;10944:32:1;;;25821:45:0;;;10926:51:1;10993:18;;;10986:34;10899:18;;25821:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;25900:11:0;;;25927:14;;;;25945:10;;-1:-1:-1;;;;;25900:11:0;;25886:70;;25919:6;;25927:16;;25942:1;25927:16;:::i;:::-;25886:70;;;13660:14:1;;13653:22;13635:41;;13719:14;;13712:22;13707:2;13692:18;;13685:50;13751:18;;;13744:34;13623:2;13608:18;25886:70:0;;;;;;;25999:84;;;;;;;;26010:11;;-1:-1:-1;;;;;26010:11:0;25999:84;;26010:11;25999:84;;;;;;;;;;;;;;;;26037:14;;;;25971:25;;25999:84;;;;;26037:16;;26052:1;26037:16;:::i;:::-;25999:84;;;;;;;;;26067:15;25999:84;;;;;26098:14;:28;;;;;;;-1:-1:-1;26098:28:0;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;26098:28:0;-1:-1:-1;;;;26098:28:0;;;-1:-1:-1;;;26098:28:0;-1:-1:-1;;;;;;26098:28:0;;;-1:-1:-1;;;;;26098:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25733:813:0;;;26174:6;:14;;;26159:11;;:29;;;;;;;:::i;:::-;;;;-1:-1:-1;;26217:14:0;;;;:16;;26232:1;26217:16;:::i;:::-;26203:10;;:30;;;;;;;:::i;:::-;;;;-1:-1:-1;;26262:14:0;;;;26248:10;:28;;:10;;:28;;26262:14;;26248:28;:::i;:::-;;;;-1:-1:-1;;26310:11:0;;;26338:14;;;26296:69;;;26310:11;13635:41:1;;13719:14;;13712:22;13707:2;13692:18;;13685:50;13751:18;;;13744:34;;;;26354:10:0;;-1:-1:-1;;;;;26310:11:0;;26296:69;;13623:2:1;13608:18;26296:69:0;;;;;;;26408:83;;;;;;;;26419:11;;-1:-1:-1;;;;;26419:11:0;;;26408:83;;26380:25;26408:83;;;;;;;;;;;;;;;26419:11;26447:14;;;;26408:83;;;;;;;;;;;;26475:15;26408:83;;;;;;26506:14;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;26506:28:0;-1:-1:-1;;;;26506:28:0;;;-1:-1:-1;;;26506:28:0;-1:-1:-1;;;;;;26506:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25733:813;-1:-1:-1;;26579:11:0;-1:-1:-1;;;;;26579:11:0;26565:26;;;;:13;:26;;;;;;;;26558:33;;;26609:25;;;:13;:25;;;;;26602:32;;-1:-1:-1;;;;;;26602:32:0;;;26579:11;26602:32;;;;;;;;;;;;-1:-1:-1;26602:32:0;;;;-1:-1:-1;;26602:32:0;;;25402:1240::o;8057:132::-;7938:7;7965:6;-1:-1:-1;;;;;7965:6:0;6523:10;8121:23;8113:68;;;;-1:-1:-1;;;8113:68:0;;13991:2:1;8113:68:0;;;13973:21:1;;;14010:18;;;14003:30;14069:34;14049:18;;;14042:62;14121:18;;8113:68:0;13789:356:1;9159:191:0;9233:16;9252:6;;-1:-1:-1;;;;;9269:17:0;;;-1:-1:-1;;;;;;9269:17:0;;;;;;9302:40;;9252:6;;;;;;;9302:40;;9233:16;9302:40;9222:128;9159:191;:::o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:1:o;565:118::-;651:5;644:13;637:21;630:5;627:32;617:60;;673:1;670;663:12;688:309;753:6;761;814:2;802:9;793:7;789:23;785:32;782:52;;;830:1;827;820:12;782:52;866:9;853:23;843:33;;926:2;915:9;911:18;898:32;939:28;961:5;939:28;:::i;:::-;986:5;976:15;;;688:309;;;;;:::o;1002:127::-;1063:10;1058:3;1054:20;1051:1;1044:31;1094:4;1091:1;1084:15;1118:4;1115:1;1108:15;1134:1183;1227:6;1235;1288:2;1276:9;1267:7;1263:23;1259:32;1256:52;;;1304:1;1301;1294:12;1256:52;1340:9;1327:23;1317:33;;1369:2;1422;1411:9;1407:18;1394:32;1445:18;1486:2;1478:6;1475:14;1472:34;;;1502:1;1499;1492:12;1472:34;1540:6;1529:9;1525:22;1515:32;;1585:7;1578:4;1574:2;1570:13;1566:27;1556:55;;1607:1;1604;1597:12;1556:55;1643:2;1630:16;1665:2;1661;1658:10;1655:36;;;1671:18;;:::i;:::-;1717:2;1714:1;1710:10;1749:2;1743:9;1812:2;1808:7;1803:2;1799;1795:11;1791:25;1783:6;1779:38;1867:6;1855:10;1852:22;1847:2;1835:10;1832:18;1829:46;1826:72;;;1878:18;;:::i;:::-;1914:2;1907:22;1964:18;;;1998:15;;;;-1:-1:-1;2040:11:1;;;2036:20;;;2068:19;;;2065:39;;;2100:1;2097;2090:12;2065:39;2124:11;;;;2144:142;2160:6;2155:3;2152:15;2144:142;;;2226:17;;2214:30;;2177:12;;;;2264;;;;2144:142;;;2305:6;2295:16;;;;;;;;1134:1183;;;;;:::o;2322:180::-;2381:6;2434:2;2422:9;2413:7;2409:23;2405:32;2402:52;;;2450:1;2447;2440:12;2402:52;-1:-1:-1;2473:23:1;;2322:180;-1:-1:-1;2322:180:1:o;4110:1145::-;4335:2;4387:21;;;4457:13;;4360:18;;;4479:22;;;4306:4;;4335:2;4520;;4538:18;;;;4579:15;;;4306:4;4622:607;4636:6;4633:1;4630:13;4622:607;;;4695:13;;4737:9;;-1:-1:-1;;;;;4733:35:1;4721:48;;4823:11;;;4817:18;4810:26;4803:34;4789:12;;;4782:56;4892:11;;;4886:18;4879:26;4872:34;4858:12;;;4851:56;4930:4;4974:11;;;4968:18;4954:12;;;4947:40;5010:4;5054:11;;;5048:18;5034:12;;;5027:40;4756:3;5134:11;;;5128:18;5114:12;;;5107:40;5176:4;5167:14;;;;5204:15;;;;4765:1;4651:9;4622:607;;;-1:-1:-1;5246:3:1;;4110:1145;-1:-1:-1;;;;;;;4110:1145:1:o;5260:241::-;5316:6;5369:2;5357:9;5348:7;5344:23;5340:32;5337:52;;;5385:1;5382;5375:12;5337:52;5424:9;5411:23;5443:28;5465:5;5443:28;:::i;5506:276::-;5564:6;5617:2;5605:9;5596:7;5592:23;5588:32;5585:52;;;5633:1;5630;5623:12;5585:52;5672:9;5659:23;5722:10;5715:5;5711:22;5704:5;5701:33;5691:61;;5748:1;5745;5738:12;5787:254;5855:6;5863;5916:2;5904:9;5895:7;5891:23;5887:32;5884:52;;;5932:1;5929;5922:12;5884:52;5955:29;5974:9;5955:29;:::i;:::-;5945:39;6031:2;6016:18;;;;6003:32;;-1:-1:-1;;;5787:254:1:o;7676:245::-;7743:6;7796:2;7784:9;7775:7;7771:23;7767:32;7764:52;;;7812:1;7809;7802:12;7764:52;7844:9;7838:16;7863:28;7885:5;7863:28;:::i;8821:184::-;8891:6;8944:2;8932:9;8923:7;8919:23;8915:32;8912:52;;;8960:1;8957;8950:12;8912:52;-1:-1:-1;8983:16:1;;8821:184;-1:-1:-1;8821:184:1:o;9010:127::-;9071:10;9066:3;9062:20;9059:1;9052:31;9102:4;9099:1;9092:15;9126:4;9123:1;9116:15;9142:125;9207:9;;;9228:10;;;9225:36;;;9241:18;;:::i;9272:128::-;9339:9;;;9360:11;;;9357:37;;;9374:18;;:::i;9977:168::-;10050:9;;;10081;;10098:15;;;10092:22;;10078:37;10068:71;;10119:18;;:::i;10150:127::-;10211:10;10206:3;10202:20;10199:1;10192:31;10242:4;10239:1;10232:15;10266:4;10263:1;10256:15;10282:120;10322:1;10348;10338:35;;10353:18;;:::i;:::-;-1:-1:-1;10387:9:1;;10282:120::o;11031:127::-;11092:10;11087:3;11083:20;11080:1;11073:31;11123:4;11120:1;11113:15;11147:4;11144:1;11137:15;11163:135;11202:3;11223:17;;;11220:43;;11243:18;;:::i;:::-;-1:-1:-1;11290:1:1;11279:13;;11163:135::o;13328:112::-;13360:1;13386;13376:35;;13391:18;;:::i;:::-;-1:-1:-1;13425:9:1;;13328:112::o
Swarm Source
ipfs://7b85f55395e1925c951bf96df524416fed625e6d6597a2bdc99f365659cf5634
Loading...
Loading
Loading...
Loading

Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.