More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 333 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Rescue | 20063795 | 235 days ago | IN | 0 ETH | 0.00234395 | ||||
Rescue | 18712983 | 424 days ago | IN | 0 ETH | 0.00579812 | ||||
Rescue | 18095739 | 510 days ago | IN | 0 ETH | 0.00528211 | ||||
Rescue | 18010795 | 522 days ago | IN | 0 ETH | 0.00456283 | ||||
Rescue | 17973757 | 527 days ago | IN | 0 ETH | 0.00175683 | ||||
Rescue | 17744910 | 559 days ago | IN | 0 ETH | 0.00312764 | ||||
Rescue | 17459282 | 600 days ago | IN | 0 ETH | 0.0021788 | ||||
Rescue | 17430346 | 604 days ago | IN | 0 ETH | 0.00422482 | ||||
Rescue | 17293817 | 623 days ago | IN | 0 ETH | 0.00799272 | ||||
Rescue | 17135703 | 645 days ago | IN | 0 ETH | 0.01237062 | ||||
Rescue | 17118181 | 648 days ago | IN | 0 ETH | 0.01765121 | ||||
Rescue | 17061199 | 656 days ago | IN | 0 ETH | 0.00731083 | ||||
Rescue | 17037566 | 659 days ago | IN | 0 ETH | 0.00249302 | ||||
Rescue | 17036407 | 659 days ago | IN | 0 ETH | 0.01183207 | ||||
Rescue | 17032301 | 660 days ago | IN | 0 ETH | 0.00199981 | ||||
Rescue | 16997622 | 665 days ago | IN | 0 ETH | 0.00973992 | ||||
Rescue | 16978242 | 667 days ago | IN | 0 ETH | 0.00354366 | ||||
Rescue | 16956390 | 671 days ago | IN | 0 ETH | 0.01049777 | ||||
Rescue | 16951032 | 671 days ago | IN | 0 ETH | 0.00637855 | ||||
Rescue | 16949162 | 672 days ago | IN | 0 ETH | 0.00863986 | ||||
Rescue | 16940433 | 673 days ago | IN | 0 ETH | 0.00294548 | ||||
Rescue | 16930586 | 674 days ago | IN | 0 ETH | 0.03476078 | ||||
Rescue | 16929236 | 674 days ago | IN | 0 ETH | 0.00273196 | ||||
Rescue | 16926649 | 675 days ago | IN | 0 ETH | 0.00232295 | ||||
Rescue | 16921952 | 675 days ago | IN | 0 ETH | 0.00440836 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Pytheas
Compiler Version
v0.8.11+commit.d7f03943
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.0; import "@openzeppelin/contracts/security/Pausable.sol"; import "./interfaces/IERC721TokenReciever.sol"; import "./interfaces/IPytheas.sol"; import "./interfaces/IOrbitalBlockade.sol"; import "./interfaces/IShatteredEON.sol"; import "./interfaces/IMasterStaker.sol"; import "./interfaces/IColonist.sol"; import "./interfaces/IRAW.sol"; import "./interfaces/IRandomizer.sol"; contract Pytheas is IPytheas, IERC721TokenReceiver, Pausable { // struct to store a stake's token, sOwner, and earning values struct Stake { uint16 tokenId; uint80 value; address sOwner; } event ColonistStaked( address indexed sOwner, uint256 indexed tokenId, uint256 value ); event ColonistClaimed( uint256 indexed tokenId, bool indexed unstaked, uint256 earned ); event Metamorphosis(address indexed addr, uint256 indexed tokenId); // reference to the Colonist NFT contract IColonist public colonistNFT; // reference to the game logic contract IShatteredEON public shattered; // reference to the masterStaker contract IMasterStaker public masterStaker; // reference to orbital blockade to retrieve information on staked pirates IOrbitalBlockade public orbital; // reference to the $rEON contract for minting $rEON earnings IRAW public raw; // reference to Randomizer IRandomizer public randomizer; // maps tokenId to stake mapping(uint256 => Stake) private pytheas; // address => used in allowing system communication between contracts mapping(address => bool) private admins; // colonist earn 2700 $rEON per day uint256 public constant DAILY_rEON_RATE = 2700; // colonist must have 2 days worth of $rEON to unstake or else they're still down in the mines uint256 public constant MINIMUM_TO_EXIT = 2 days; // pirates take a 20% tax on all $rEON claimed uint256 public constant rEON_CLAIM_TAX_PERCENTAGE = 20; // there will only ever be (roughly) 3.125 billion (half of the total supply) rEON earned through staking; uint256 public constant MAXIMUM_GLOBAL_rEON = 3125000000; // colonistStaked uint256 public numColonistStaked; // amount of $rEON earned so far uint256 public totalRawEonEarned; // the last time $rEON was claimed uint256 private lastClaimTimestamp; //allowed to call owner functions address public auth; // emergency rescue to allow unstaking without any checks but without $rEON bool public rescueEnabled; constructor() { _pause(); auth = msg.sender; admins[msg.sender] = true; } modifier noCheaters() { uint256 size = 0; address acc = msg.sender; assembly { size := extcodesize(acc) } require( admins[msg.sender] || (msg.sender == tx.origin && size == 0), "you're trying to cheat!" ); _; } modifier onlyOwner() { require(msg.sender == auth); _; } /** CRITICAL TO SETUP */ modifier requireContractsSet() { require( address(colonistNFT) != address(0) && address(raw) != address(0) && address(orbital) != address(0) && address(shattered) != address(0) && address(masterStaker) != address(0) && address(randomizer) != address(0), "Contracts not set" ); _; } function setContracts( address _colonistNFT, address _raw, address _orbital, address _shattered, address _masterStaker, address _rand ) external onlyOwner { colonistNFT = IColonist(_colonistNFT); raw = IRAW(_raw); orbital = IOrbitalBlockade(_orbital); shattered = IShatteredEON(_shattered); masterStaker = IMasterStaker(_masterStaker); randomizer = IRandomizer(_rand); } /** STAKING */ /** * adds Colonists to pytheas and crew * @param account the address of the staker * @param tokenIds the IDs of the Colonists to stake */ function addColonistToPytheas(address account, uint16[] calldata tokenIds) external override whenNotPaused noCheaters { require(account == tx.origin); for (uint256 i = 0; i < tokenIds.length; i++) { if (msg.sender == address(masterStaker)) { require( colonistNFT.isOwner(tokenIds[i]) == account, "Not Colonist Owner" ); colonistNFT.transferFrom(account, address(this), tokenIds[i]); } else if (msg.sender != address(shattered)) { // dont do this step if its a mint + stake require( colonistNFT.isOwner(tokenIds[i]) == msg.sender, "Not Colonist Owner" ); colonistNFT.transferFrom( msg.sender, address(this), tokenIds[i] ); } else if (tokenIds[i] == 0) { continue; // there may be gaps in the array for stolen tokens } _addColonistToPytheas(account, tokenIds[i]); } } /** * adds a single Colonist to pytheas * @param account the address of the staker * @param tokenId the ID of the Colonist to add to pytheas */ function _addColonistToPytheas(address account, uint256 tokenId) internal _updateEarnings { pytheas[tokenId] = Stake({ sOwner: account, tokenId: uint16(tokenId), value: uint80(block.timestamp) }); numColonistStaked += 1; emit ColonistStaked(account, tokenId, block.timestamp); } /** CLAIMING / UNSTAKING */ /** * realize $rEON earnings and optionally unstake tokens from Pytheas / Crew * to unstake a Colonist it will require it has 2 days worth of $rEON unclaimed * @param tokenIds the IDs of the tokens to claim earnings from * @param unstake whether or not to unstake ALL of the tokens listed in tokenIds */ function claimColonistFromPytheas( address account, uint16[] calldata tokenIds, bool unstake ) external whenNotPaused _updateEarnings noCheaters { uint256 owed = 0; for (uint256 i = 0; i < tokenIds.length; i++) { owed += _claimColonistFromPytheas(account, tokenIds[i], unstake); } if (owed == 0) { return; } raw.mint(1, owed, account); } /** external function to see the amount of raw eon a colonist has mined */ function calculateRewards(uint256 tokenId) external view returns (uint256 owed) { Stake memory stake = pytheas[tokenId]; if (totalRawEonEarned < MAXIMUM_GLOBAL_rEON) { owed = ((block.timestamp - stake.value) * DAILY_rEON_RATE) / 1 days; } else if (stake.value > lastClaimTimestamp) { owed = 0; // $rEON production stopped already } else { owed = ((lastClaimTimestamp - stake.value) * DAILY_rEON_RATE) / 1 days; // stop earning additional $rEON if it's all been earned } } /** * realize $rEON earnings for a single Colonist and optionally unstake it * if not unstaking, pay a 20% tax to the staked Pirates * if unstaking, there is a 50% chance all $rEON is stolen * @param tokenId the ID of the Colonist to claim earnings from * @param unstake whether or not to unstake the Colonist * @return owed - the amount of $rEON earned */ function _claimColonistFromPytheas( address account, uint256 tokenId, bool unstake ) internal returns (uint256 owed) { Stake memory stake = pytheas[tokenId]; require(stake.sOwner == account, "Not Owner"); require( !(unstake && block.timestamp - stake.value < MINIMUM_TO_EXIT), "Your shift isn't over!" ); if (totalRawEonEarned < MAXIMUM_GLOBAL_rEON) { owed = ((block.timestamp - stake.value) * DAILY_rEON_RATE) / 1 days; } else if (stake.value > lastClaimTimestamp) { owed = 0; // $rEON production stopped already } else { owed = ((lastClaimTimestamp - stake.value) * DAILY_rEON_RATE) / 1 days; // stop earning additional $rEON if it's all been earned } if (unstake) { if (randomizer.random(tokenId) & 1 == 1) { // 50% chance of all $rEON stolen orbital.payPirateTax(owed); owed = 0; } delete pytheas[tokenId]; numColonistStaked -= 1; // Always transfer last to guard against reentrance colonistNFT.safeTransferFrom(address(this), account, tokenId, ""); // send back colonist } else { orbital.payPirateTax((owed * rEON_CLAIM_TAX_PERCENTAGE) / 100); // percentage tax to staked pirates owed = (owed * (100 - rEON_CLAIM_TAX_PERCENTAGE)) / 100; // remainder goes to Colonist sOwner pytheas[tokenId] = Stake({ sOwner: account, tokenId: uint16(tokenId), value: uint80(block.timestamp) }); // reset stake } emit ColonistClaimed(tokenId, unstake, owed); } // To be worthy of joining the pirates one must be // willing to risk it all, used to handle the colonist // token burn when making an attempt to join the pirates function handleJoinPirates(address addr, uint16 tokenId) external override noCheaters { require(admins[msg.sender]); Stake memory stake = pytheas[tokenId]; require(stake.sOwner == addr, "Pytheas: Not Owner"); delete pytheas[tokenId]; colonistNFT.burn(tokenId); emit Metamorphosis(addr, tokenId); } function payUp( uint16 tokenId, uint256 amtMined, address addr ) external override _updateEarnings { require(admins[msg.sender]); uint256 minusTax = 0; minusTax += _piratesLife(tokenId, amtMined, addr); if (minusTax == 0) { return; } raw.mint(1, minusTax, addr); } /** * external admin only function to get the amount owed to a colonist * for use whem making a pirate attempt @param account the account that owns the colonist @param tokenId the ID of the colonist who is mining */ function getColonistMined(address account, uint16 tokenId) external view override returns (uint256 minedAmt) { require(admins[msg.sender]); uint256 mined = 0; mined += colonistDues(account, tokenId); return mined; } /** * internal function to calculate the amount a colonist * is owed for their mining attempts; * for use with making a pirate attempt; @param addr the owner of the colonist @param tokenId the ID of the colonist who is mining */ function colonistDues(address addr, uint16 tokenId) internal view returns (uint256 mined) { Stake memory stake = pytheas[tokenId]; require(stake.sOwner == addr, "Not Owner"); if (totalRawEonEarned < MAXIMUM_GLOBAL_rEON) { mined = ((block.timestamp - stake.value) * DAILY_rEON_RATE) / 1 days; } else if (stake.value > lastClaimTimestamp) { mined = 0; // $rEON production stopped already } else { mined = ((lastClaimTimestamp - stake.value) * DAILY_rEON_RATE) / 1 days; // stop earning additional $rEON if it's all been earned } } /* Realizes gained rEON on a failed pirate attempt and always pays pirate tax */ function _piratesLife( uint16 tokenId, uint256 amtMined, address addr ) internal returns (uint256 owed) { Stake memory stake = pytheas[tokenId]; require(stake.sOwner == addr, "Pytheas: Not Owner"); // tax amount sent to pirates uint256 pirateTax = (amtMined * rEON_CLAIM_TAX_PERCENTAGE) / 100; orbital.payPirateTax(pirateTax); // remainder after pirate tax goes to Colonist //sOwner who made the pirate attempt owed = (amtMined - pirateTax); // reset stake pytheas[tokenId] = Stake({ sOwner: addr, tokenId: uint16(tokenId), value: uint80(block.timestamp) }); emit ColonistClaimed(tokenId, false, owed); } /** * emergency unstake tokens * @param tokenIds the IDs of the tokens to claim earnings from */ function rescue(uint256[] calldata tokenIds) external noCheaters { require(rescueEnabled, "Rescue Not Enabled"); uint256 tokenId; Stake memory stake; for (uint256 i = 0; i < tokenIds.length; i++) { tokenId = tokenIds[i]; stake = pytheas[tokenId]; require(stake.sOwner == msg.sender, "Not Owner"); delete pytheas[tokenId]; numColonistStaked -= 1; colonistNFT.safeTransferFrom( address(this), msg.sender, tokenId, "" ); // send back Colonist emit ColonistClaimed(tokenId, true, 0); } } /** ACCOUNTING */ /** * tracks $rEON earnings to ensure it stops once 6.5 billion is eclipsed */ modifier _updateEarnings() { if (totalRawEonEarned < MAXIMUM_GLOBAL_rEON) { totalRawEonEarned += ((block.timestamp - lastClaimTimestamp) * numColonistStaked * DAILY_rEON_RATE) / 1 days; lastClaimTimestamp = block.timestamp; } _; } //Admin /** * allows owner to enable "rescue mode" * simplifies accounting, prioritizes tokens out in emergency */ function setRescueEnabled(bool _enabled) external onlyOwner { rescueEnabled = _enabled; } /** * enables owner to pause / unpause contract */ function setPaused(bool _paused) external requireContractsSet onlyOwner { if (_paused) _pause(); else _unpause(); } /** * enables an address to mint / burn * @param addr the address to enable */ function addAdmin(address addr) external onlyOwner { admins[addr] = true; } /** * disables an address from minting / burning * @param addr the address to disbale */ function removeAdmin(address addr) external onlyOwner { admins[addr] = false; } function transferOwnership(address newOwner) external onlyOwner { auth = newOwner; } //READ ONLY function onERC721Received( address, address from, uint256, bytes calldata ) external pure override returns (bytes4) { require(from == address(0x0), "Only EOA"); return IERC721TokenReceiver.onERC721Received.selector; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ abstract contract Pausable is Context { /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); bool private _paused; /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { require(!paused(), "Pausable: paused"); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { require(paused(), "Pausable: not paused"); _; } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.0; interface IColonist { // struct to store each Colonist's traits struct Colonist { bool isColonist; uint8 background; uint8 body; uint8 shirt; uint8 jacket; uint8 jaw; uint8 eyes; uint8 hair; uint8 held; uint8 gen; } struct HColonist { uint8 Legendary; } function transferFrom( address from, address to, uint256 tokenId ) external; function safeTransferFrom( address from, address to, uint256 tokenId, bytes memory _data ) external; function safeTransferFrom( address from, address to, uint256 tokenId ) external; function isOwner(uint256 tokenId) external view returns (address); function minted() external returns (uint16); function totalCir() external returns (uint256); function _mintColonist(address recipient, uint256 seed) external; function _mintToHonors(address recipient, uint256 seed) external; function _mintHonors(address recipient, uint8 id) external; function burn(uint256 tokenId) external; function getMaxTokens() external view returns (uint256); function getPaidTokens() external view returns (uint256); function getTokenTraitsColonist(uint256 tokenId) external view returns (Colonist memory); function getTokenTraitsHonors(uint256 tokenId) external view returns (HColonist memory); function tokenNameByIndex(uint256 index) external view returns (string memory); function hasBeenNamed(uint256 tokenId) external view returns (bool); function nameColonist(uint256 tokenId, string memory newName) external; }
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.11; /// @notice A generic interface for a contract which properly accepts ERC721 tokens. /// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC721.sol) interface IERC721TokenReceiver { function onERC721Received( address operator, address from, uint256 id, bytes calldata data ) external returns (bytes4); }
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.0; interface IMasterStaker { function masterStake( uint16[] calldata colonistTokenIds, uint16[] calldata pirateTokenIds ) external; function masterUnstake( uint16[] calldata colonistTokenIds, uint16[] calldata pirateTokenIds ) external; function masterClaim( uint16[] calldata colonistTokenIds, uint16[] calldata pirateTokenIds ) external; }
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.0; interface IOrbitalBlockade { function addPiratesToCrew(address account, uint16[] calldata tokenIds) external; function claimPiratesFromCrew(address account, uint16[] calldata tokenIds, bool unstake) external; function payPirateTax(uint256 amount) external; function randomPirateOwner(uint256 seed) external view returns (address); }
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.0; interface IPytheas { function addColonistToPytheas(address account, uint16[] calldata tokenIds) external; function claimColonistFromPytheas(address account, uint16[] calldata tokenIds, bool unstake) external; function getColonistMined(address account, uint16 tokenId) external returns (uint256); function handleJoinPirates(address addr, uint16 tokenId) external; function payUp( uint16 tokenId, uint256 amtMined, address addr ) external; }
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.0; interface IRAW { function getBalance( address account, uint256 id ) external returns(uint256); function mint( uint256 typeId, uint256 qty, address recipient ) external; function burn( uint256 typeId, uint256 qty, address burnFrom ) external; function updateMintBurns( uint256 typeId, uint256 mintQty, uint256 burnQty ) external; function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes memory data ) external; function safeBatchTransferFrom( address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data ) external; }
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.0; interface IRandomizer { function random(uint256) external returns (uint256); }
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.0; interface IShatteredEON {}
{ "evmVersion": "london", "libraries": {}, "metadata": { "bytecodeHash": "ipfs", "useLiteralContent": true }, "optimizer": { "details": { "constantOptimizer": true, "cse": true, "deduplicate": true, "inliner": true, "jumpdestRemover": true, "orderLiterals": true, "peephole": true, "yul": true, "yulDetails": { "optimizerSteps": "dhfoDgvulfnTUtnIf", "stackAllocation": true } }, "runs": 2000 }, "remappings": [], "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":true,"internalType":"bool","name":"unstaked","type":"bool"},{"indexed":false,"internalType":"uint256","name":"earned","type":"uint256"}],"name":"ColonistClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sOwner","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"ColonistStaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Metamorphosis","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"DAILY_rEON_RATE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAXIMUM_GLOBAL_rEON","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINIMUM_TO_EXIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"addAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint16[]","name":"tokenIds","type":"uint16[]"}],"name":"addColonistToPytheas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"auth","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"calculateRewards","outputs":[{"internalType":"uint256","name":"owed","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint16[]","name":"tokenIds","type":"uint16[]"},{"internalType":"bool","name":"unstake","type":"bool"}],"name":"claimColonistFromPytheas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"colonistNFT","outputs":[{"internalType":"contract IColonist","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint16","name":"tokenId","type":"uint16"}],"name":"getColonistMined","outputs":[{"internalType":"uint256","name":"minedAmt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint16","name":"tokenId","type":"uint16"}],"name":"handleJoinPirates","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"masterStaker","outputs":[{"internalType":"contract IMasterStaker","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"numColonistStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"orbital","outputs":[{"internalType":"contract IOrbitalBlockade","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"tokenId","type":"uint16"},{"internalType":"uint256","name":"amtMined","type":"uint256"},{"internalType":"address","name":"addr","type":"address"}],"name":"payUp","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rEON_CLAIM_TAX_PERCENTAGE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"randomizer","outputs":[{"internalType":"contract IRandomizer","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"raw","outputs":[{"internalType":"contract IRAW","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"removeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"rescue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_colonistNFT","type":"address"},{"internalType":"address","name":"_raw","type":"address"},{"internalType":"address","name":"_orbital","type":"address"},{"internalType":"address","name":"_shattered","type":"address"},{"internalType":"address","name":"_masterStaker","type":"address"},{"internalType":"address","name":"_rand","type":"address"}],"name":"setContracts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_paused","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setRescueEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shattered","outputs":[{"internalType":"contract IShatteredEON","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRawEonEarned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506000805460ff19169055620000266200005a565b600b80546001600160a01b031916339081179091556000908152600760205260409020805460ff1916600117905562000140565b60005460ff1615620000895760405162461bcd60e51b81526004016200008090620000d8565b60405180910390fd5b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258620000bf3390565b604051620000ce919062000130565b60405180910390a1565b602080825281016200010781601081526f14185d5cd8589b194e881c185d5cd95960821b602082015260400190565b92915050565b60006001600160a01b03821662000107565b6200012a816200010d565b82525050565b602081016200010782846200011f565b61263780620001506000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80637048027511610104578063af85f70f116100a2578063d3ea435011610071578063d3ea4350146103c3578063de9375f2146103d6578063f10fb584146103f6578063f2fde38b1461040957600080fd5b8063af85f70f1461037f578063c096a63214610392578063c7015321146103a5578063d3db0273146103b057600080fd5b806383d9df97116100de57806383d9df97146103475780638c2b4d8e146103505780639c58144614610363578063a33a7c5b1461036c57600080fd5b80637048027514610318578063765310081461032b57806383c495ee1461033e57600080fd5b806324b044c01161017157806339db714f1161014b57806339db714f146102b55780635c975abb146102e7578063651c82e9146102f25780636a3ef0571461030557600080fd5b806324b044c0146102905780633780f17a146102a357806337a386b9146102ab57600080fd5b80631785f53c116101ad5780631785f53c1461023257806321d0b7ae1461024557806322ba0432146102655780632463a55a1461027d57600080fd5b8063150b7a02146101d457806316527231146101fd57806316c38b3c1461021d575b600080fd5b6101e76101e2366004611d02565b61041c565b6040516101f49190611db0565b60405180910390f35b600354610210906001600160a01b031681565b6040516101f49190611e00565b61023061022b366004611e21565b610479565b005b610230610240366004611e42565b610546565b610258610253366004611e78565b61057e565b6040516101f49190611ebb565b6000546102109061010090046001600160a01b031681565b61023061028b366004611ec9565b6105ba565b600254610210906001600160a01b031681565b610258601481565b6102586202a30081565b600b546102da9074010000000000000000000000000000000000000000900460ff1681565b6040516101f49190611f5b565b60005460ff166102da565b600154610210906001600160a01b031681565b610230610313366004611fb4565b61067a565b610230610326366004611e42565b6108b6565b610230610339366004611e21565b6108f1565b61025860085481565b61025860095481565b61023061035e366004611e78565b610952565b610258610a8c81565b61023061037a366004611ffc565b610b01565b61023061038d36600461204c565b610c25565b600454610210906001600160a01b031681565b61025863ba43b74081565b6102306103be3660046120bc565b610de1565b6102586103d1366004612118565b61114d565b600b546103e9906001600160a01b031681565b6040516101f49190612142565b600554610210906001600160a01b031681565b610230610417366004611e42565b61124e565b60006001600160a01b0385161561044e5760405162461bcd60e51b815260040161044590612184565b60405180910390fd5b507f150b7a020000000000000000000000000000000000000000000000000000000095945050505050565b60005461010090046001600160a01b0316158015906104a257506004546001600160a01b031615155b80156104b857506003546001600160a01b031615155b80156104ce57506001546001600160a01b031615155b80156104e457506002546001600160a01b031615155b80156104fa57506005546001600160a01b031615155b6105165760405162461bcd60e51b8152600401610445906121c6565b600b546001600160a01b0316331461052d57600080fd5b801561053e5761053b61129f565b50565b61053b61130e565b600b546001600160a01b0316331461055d57600080fd5b6001600160a01b03166000908152600760205260409020805460ff19169055565b3360009081526007602052604081205460ff1661059a57600080fd5b60006105a68484611361565b6105b090826121ec565b9150505b92915050565b600b546001600160a01b031633146105d157600080fd5b600080546001600160a01b03978816610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909116179055600480549587167fffffffffffffffffffffffff0000000000000000000000000000000000000000968716179055600380549487169486169490941790935560018054928616928516929092179091556002805491851691841691909117905560058054919093169116179055565b33600081815260076020526040902054813b919060ff16806106a4575033321480156106a4575081155b6106c05760405162461bcd60e51b815260040161044590612236565b600b5474010000000000000000000000000000000000000000900460ff166106fa5760405162461bcd60e51b815260040161044590612278565b6040805160608101825260008082526020820181905291810182905260005b858110156108ad5786868281811061073357610733612288565b602090810292909201356000818152600684526040908190208151606081018352905461ffff8116825262010000810469ffffffffffffffffffff1695820195909552600160601b9094046001600160a01b03169084018190529095509193505033146107b25760405162461bcd60e51b8152600401610445906122d0565b600083815260066020526040812081905560088054600192906107d69084906122e0565b90915550506000546040517fb88d4fde0000000000000000000000000000000000000000000000000000000081526101009091046001600160a01b03169063b88d4fde9061082c903090339088906004016122f7565b600060405180830381600087803b15801561084657600080fd5b505af115801561085a573d6000803e3d6000fd5b5050505060011515837f1c2985fbd233f9b6141083d73ae8f22c8135bc2de7985e543828014469b08f126000604051610893919061234d565b60405180910390a3806108a58161235b565b915050610719565b50505050505050565b600b546001600160a01b031633146108cd57600080fd5b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b600b546001600160a01b0316331461090857600080fd5b600b805491151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b33600081815260076020526040902054813b919060ff168061097c5750333214801561097c575081155b6109985760405162461bcd60e51b815260040161044590612236565b3360009081526007602052604090205460ff166109b457600080fd5b61ffff80841660009081526006602090815260409182902082516060810184529054938416815269ffffffffffffffffffff62010000850416918101919091526001600160a01b03600160601b909304831691810182905291861614610a2c5760405162461bcd60e51b8152600401610445906123a8565b61ffff8416600090815260066020526040808220829055905490517f42966c680000000000000000000000000000000000000000000000000000000081526101009091046001600160a01b0316906342966c6890610a8e9087906004016123d1565b600060405180830381600087803b158015610aa857600080fd5b505af1158015610abc573d6000803e3d6000fd5b505060405161ffff871692506001600160a01b03881691507f23a4178dc186c4281ca53068d605699f78ec28f44189092fba852eebd2d5d76490600090a35050505050565b63ba43b7406009541015610b605762015180610a8c600854600a5442610b2791906122e0565b610b3191906123df565b610b3b91906123df565b610b459190612414565b60096000828254610b5691906121ec565b909155505042600a555b3360009081526007602052604090205460ff16610b7c57600080fd5b6000610b8984848461148b565b610b9390826121ec565b905080610ba05750505050565b600480546040517fe7d3fe6b0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169163e7d3fe6b91610bed916001918691889101612428565b600060405180830381600087803b158015610c0757600080fd5b505af1158015610c1b573d6000803e3d6000fd5b5050505050505050565b60005460ff1615610c485760405162461bcd60e51b81526004016104459061248a565b63ba43b7406009541015610ca75762015180610a8c600854600a5442610c6e91906122e0565b610c7891906123df565b610c8291906123df565b610c8c9190612414565b60096000828254610c9d91906121ec565b909155505042600a555b33600081815260076020526040902054813b919060ff1680610cd157503332148015610cd1575081155b610ced5760405162461bcd60e51b815260040161044590612236565b6000805b85811015610d4c57610d2e88888884818110610d0f57610d0f612288565b9050602002016020810190610d24919061249a565b61ffff168761167c565b610d3890836121ec565b915080610d448161235b565b915050610cf1565b5080610d585750610dd9565b600480546040517fe7d3fe6b0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169163e7d3fe6b91610da59160019186918d9101612428565b600060405180830381600087803b158015610dbf57600080fd5b505af1158015610dd3573d6000803e3d6000fd5b50505050505b505050505050565b60005460ff1615610e045760405162461bcd60e51b81526004016104459061248a565b33600081815260076020526040902054813b919060ff1680610e2e57503332148015610e2e575081155b610e4a5760405162461bcd60e51b815260040161044590612236565b6001600160a01b0385163214610e5f57600080fd5b60005b83811015610dd9576002546001600160a01b0316331415610fd5576000546001600160a01b03808816916101009004166339c7639c878785818110610ea957610ea9612288565b9050602002016020810190610ebe919061249a565b6040518263ffffffff1660e01b8152600401610eda91906123d1565b602060405180830381865afa158015610ef7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1b91906124c6565b6001600160a01b031614610f415760405162461bcd60e51b815260040161044590612519565b60005461010090046001600160a01b03166323b872dd8730888886818110610f6b57610f6b612288565b9050602002016020810190610f80919061249a565b6040518463ffffffff1660e01b8152600401610f9e93929190612529565b600060405180830381600087803b158015610fb857600080fd5b505af1158015610fcc573d6000803e3d6000fd5b50505050611107565b6001546001600160a01b031633146110d357600054339061010090046001600160a01b03166339c7639c87878581811061101157611011612288565b9050602002016020810190611026919061249a565b6040518263ffffffff1660e01b815260040161104291906123d1565b602060405180830381865afa15801561105f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108391906124c6565b6001600160a01b0316146110a95760405162461bcd60e51b815260040161044590612519565b60005461010090046001600160a01b03166323b872dd3330888886818110610f6b57610f6b612288565b8484828181106110e5576110e5612288565b90506020020160208101906110fa919061249a565b61ffff166111075761113b565b61113b8686868481811061111d5761111d612288565b9050602002016020810190611132919061249a565b61ffff16611b21565b806111458161235b565b915050610e62565b60008181526006602090815260408083208151606081018352905461ffff8116825262010000810469ffffffffffffffffffff1693820193909352600160601b9092046001600160a01b03169082015260095463ba43b74011156111e95762015180610a8c826020015169ffffffffffffffffffff16426111ce91906122e0565b6111d891906123df565b6111e29190612414565b9150611248565b600a54816020015169ffffffffffffffffffff16111561120c5760009150611248565b62015180610a8c826020015169ffffffffffffffffffff16600a5461123191906122e0565b61123b91906123df565b6112459190612414565b91505b50919050565b600b546001600160a01b0316331461126557600080fd5b600b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60005460ff16156112c25760405162461bcd60e51b81526004016104459061248a565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586112f73390565b6040516113049190612142565b60405180910390a1565b60005460ff166113305760405162461bcd60e51b815260040161044590612583565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336112f7565b61ffff808216600090815260066020908152604080832081516060810183529054948516815269ffffffffffffffffffff62010000860416928101929092526001600160a01b03600160601b909404841690820181905291929091908516146113dc5760405162461bcd60e51b8152600401610445906122d0565b63ba43b74060095410156114285762015180610a8c826020015169ffffffffffffffffffff164261140d91906122e0565b61141791906123df565b6114219190612414565b9150611484565b600a54816020015169ffffffffffffffffffff16111561144b5760009150611484565b62015180610a8c826020015169ffffffffffffffffffff16600a5461147091906122e0565b61147a91906123df565b6105b09190612414565b5092915050565b61ffff808416600090815260066020908152604080832081516060810183529054948516815269ffffffffffffffffffff62010000860416928101929092526001600160a01b03600160601b909404841690820181905291929091908416146115065760405162461bcd60e51b8152600401610445906123a8565b600060646115156014876123df565b61151f9190612414565b6003546040517fa10595d10000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063a10595d190611569908490600401611ebb565b600060405180830381600087803b15801561158357600080fd5b505af1158015611597573d6000803e3d6000fd5b5050505080856115a791906122e0565b6040805160608101825261ffff808a1680835269ffffffffffffffffffff42811660208086019182526001600160a01b03808d16878901908152600086815260069093528883209751885494519151909216600160601b026bffffffffffffffffffffffff9190951662010000026bffffffffffffffffffffffff199094169190961617919091179390931617909255915192955090917f1c2985fbd233f9b6141083d73ae8f22c8135bc2de7985e543828014469b08f129061166b908790611ebb565b60405180910390a350509392505050565b60008281526006602090815260408083208151606081018352905461ffff8116825269ffffffffffffffffffff62010000820416938201939093526001600160a01b03600160601b9093048316918101829052918616146116ef5760405162461bcd60e51b8152600401610445906122d0565b82801561171957506202a300816020015169ffffffffffffffffffff164261171791906122e0565b105b156117365760405162461bcd60e51b8152600401610445906125c5565b63ba43b74060095410156117825762015180610a8c826020015169ffffffffffffffffffff164261176791906122e0565b61177191906123df565b61177b9190612414565b91506117e1565b600a54816020015169ffffffffffffffffffff1611156117a557600091506117e1565b62015180610a8c826020015169ffffffffffffffffffff16600a546117ca91906122e0565b6117d491906123df565b6117de9190612414565b91505b82156119af576005546040517fb863bd370000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063b863bd3790611830908790600401611ebb565b6020604051808303816000875af115801561184f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187391906125e0565b600116600114156118fe576003546040517fa10595d10000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063a10595d1906118c7908590600401611ebb565b600060405180830381600087803b1580156118e157600080fd5b505af11580156118f5573d6000803e3d6000fd5b50505050600091505b600084815260066020526040812081905560088054600192906119229084906122e0565b90915550506000546040517fb88d4fde0000000000000000000000000000000000000000000000000000000081526101009091046001600160a01b03169063b88d4fde90611978903090899089906004016122f7565b600060405180830381600087803b15801561199257600080fd5b505af11580156119a6573d6000803e3d6000fd5b50505050611ade565b6003546001600160a01b031663a10595d160646119cd6014866123df565b6119d79190612414565b6040518263ffffffff1660e01b81526004016119f39190611ebb565b600060405180830381600087803b158015611a0d57600080fd5b505af1158015611a21573d6000803e3d6000fd5b50505050606460146064611a3591906122e0565b611a3f90846123df565b611a499190612414565b6040805160608101825261ffff87811682524269ffffffffffffffffffff90811660208085019182526001600160a01b038c811686880190815260008d8152600690935296909120945185549251965194166bffffffffffffffffffffffff1990921691909117620100009590921694909402176bffffffffffffffffffffffff16600160601b919093160291909117905591505b821515847f1c2985fbd233f9b6141083d73ae8f22c8135bc2de7985e543828014469b08f1284604051611b119190611ebb565b60405180910390a3509392505050565b63ba43b7406009541015611b805762015180610a8c600854600a5442611b4791906122e0565b611b5191906123df565b611b5b91906123df565b611b659190612414565b60096000828254611b7691906121ec565b909155505042600a555b6040805160608101825261ffff808416825269ffffffffffffffffffff42811660208085019182526001600160a01b03808916868801908152600089815260069093529682209551865493519751909116600160601b026bffffffffffffffffffffffff9790941662010000026bffffffffffffffffffffffff1990931694169390931717939093169290921790556008805460019290611c229084906121ec565b9250508190555080826001600160a01b03167f2b0c57bc9ee0e1fb27b985c9453637992f5ed5b1b8f7b4e8d5f0b5d7d425280942604051611c639190611ebb565b60405180910390a35050565b60006001600160a01b0382166105b4565b611c8981611c6f565b811461053b57600080fd5b80356105b481611c80565b80611c89565b80356105b481611c9f565b60008083601f840112611cc557611cc5600080fd5b50813567ffffffffffffffff811115611ce057611ce0600080fd5b602083019150836001820283011115611cfb57611cfb600080fd5b9250929050565b600080600080600060808688031215611d1d57611d1d600080fd5b6000611d298888611c94565b9550506020611d3a88828901611c94565b9450506040611d4b88828901611ca5565b935050606086013567ffffffffffffffff811115611d6b57611d6b600080fd5b611d7788828901611cb0565b92509250509295509295909350565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b82525050565b602081016105b48284611d86565b60006105b46001600160a01b038316611dd5565b90565b6001600160a01b031690565b60006105b482611dbe565b60006105b482611de1565b611daa81611dec565b602081016105b48284611df7565b801515611c89565b80356105b481611e0e565b600060208284031215611e3657611e36600080fd5b60006105b08484611e16565b600060208284031215611e5757611e57600080fd5b60006105b08484611c94565b61ffff8116611c89565b80356105b481611e63565b60008060408385031215611e8e57611e8e600080fd5b6000611e9a8585611c94565b9250506020611eab85828601611e6d565b9150509250929050565b80611daa565b602081016105b48284611eb5565b60008060008060008060c08789031215611ee557611ee5600080fd5b6000611ef18989611c94565b9650506020611f0289828a01611c94565b9550506040611f1389828a01611c94565b9450506060611f2489828a01611c94565b9350506080611f3589828a01611c94565b92505060a0611f4689828a01611c94565b9150509295509295509295565b801515611daa565b602081016105b48284611f53565b60008083601f840112611f7e57611f7e600080fd5b50813567ffffffffffffffff811115611f9957611f99600080fd5b602083019150836020820283011115611cfb57611cfb600080fd5b60008060208385031215611fca57611fca600080fd5b823567ffffffffffffffff811115611fe457611fe4600080fd5b611ff085828601611f69565b92509250509250929050565b60008060006060848603121561201457612014600080fd5b60006120208686611e6d565b935050602061203186828701611ca5565b925050604061204286828701611c94565b9150509250925092565b6000806000806060858703121561206557612065600080fd5b60006120718787611c94565b945050602085013567ffffffffffffffff81111561209157612091600080fd5b61209d87828801611f69565b935093505060406120b087828801611e16565b91505092959194509250565b6000806000604084860312156120d4576120d4600080fd5b60006120e08686611c94565b935050602084013567ffffffffffffffff81111561210057612100600080fd5b61210c86828701611f69565b92509250509250925092565b60006020828403121561212d5761212d600080fd5b60006105b08484611ca5565b611daa81611c6f565b602081016105b48284612139565b60088152602081017f4f6e6c7920454f41000000000000000000000000000000000000000000000000815290505b60200190565b602080825281016105b481612150565b60118152602081017f436f6e747261637473206e6f74207365740000000000000000000000000000008152905061217e565b602080825281016105b481612194565b634e487b7160e01b600052601160045260246000fd5b600082198211156121ff576121ff6121d6565b500190565b60178152602081017f796f7527726520747279696e6720746f206368656174210000000000000000008152905061217e565b602080825281016105b481612204565b60128152602081017f526573637565204e6f7420456e61626c656400000000000000000000000000008152905061217e565b602080825281016105b481612246565b634e487b7160e01b600052603260045260246000fd5b60098152602081017f4e6f74204f776e657200000000000000000000000000000000000000000000008152905061217e565b602080825281016105b48161229e565b6000828210156122f2576122f26121d6565b500390565b608081016123058286612139565b6123126020830185612139565b61231f6040830184611eb5565b8181036060830152600081526020810195945050505050565b60006105b4611dd28381565b611daa81612338565b602081016105b48284612344565b600060001982141561236f5761236f6121d6565b5060010190565b60128152602081017f507974686561733a204e6f74204f776e657200000000000000000000000000008152905061217e565b602080825281016105b481612376565b60006105b4611dd261ffff841681565b611daa816123b8565b602081016105b482846123c8565b60008160001904831182151516156123f9576123f96121d6565b500290565b634e487b7160e01b600052601260045260246000fd5b600082612423576124236123fe565b500490565b606081016124368286612344565b6124436020830185611eb5565b6124506040830184612139565b949350505050565b60108152602081017f5061757361626c653a20706175736564000000000000000000000000000000008152905061217e565b602080825281016105b481612458565b6000602082840312156124af576124af600080fd5b60006105b08484611e6d565b80516105b481611c80565b6000602082840312156124db576124db600080fd5b60006105b084846124bb565b60128152602081017f4e6f7420436f6c6f6e697374204f776e657200000000000000000000000000008152905061217e565b602080825281016105b4816124e7565b606081016125378286612139565b6125446020830185612139565b61245060408301846123c8565b60148152602081017f5061757361626c653a206e6f74207061757365640000000000000000000000008152905061217e565b602080825281016105b481612551565b60168152602081017f596f75722073686966742069736e2774206f76657221000000000000000000008152905061217e565b602080825281016105b481612593565b80516105b481611c9f565b6000602082840312156125f5576125f5600080fd5b60006105b084846125d556fea2646970667358221220869583cb7b8bf5aa5793e83d59cfddd89da10430f22a296afb8d8fbc0c33591d64736f6c634300080b0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c80637048027511610104578063af85f70f116100a2578063d3ea435011610071578063d3ea4350146103c3578063de9375f2146103d6578063f10fb584146103f6578063f2fde38b1461040957600080fd5b8063af85f70f1461037f578063c096a63214610392578063c7015321146103a5578063d3db0273146103b057600080fd5b806383d9df97116100de57806383d9df97146103475780638c2b4d8e146103505780639c58144614610363578063a33a7c5b1461036c57600080fd5b80637048027514610318578063765310081461032b57806383c495ee1461033e57600080fd5b806324b044c01161017157806339db714f1161014b57806339db714f146102b55780635c975abb146102e7578063651c82e9146102f25780636a3ef0571461030557600080fd5b806324b044c0146102905780633780f17a146102a357806337a386b9146102ab57600080fd5b80631785f53c116101ad5780631785f53c1461023257806321d0b7ae1461024557806322ba0432146102655780632463a55a1461027d57600080fd5b8063150b7a02146101d457806316527231146101fd57806316c38b3c1461021d575b600080fd5b6101e76101e2366004611d02565b61041c565b6040516101f49190611db0565b60405180910390f35b600354610210906001600160a01b031681565b6040516101f49190611e00565b61023061022b366004611e21565b610479565b005b610230610240366004611e42565b610546565b610258610253366004611e78565b61057e565b6040516101f49190611ebb565b6000546102109061010090046001600160a01b031681565b61023061028b366004611ec9565b6105ba565b600254610210906001600160a01b031681565b610258601481565b6102586202a30081565b600b546102da9074010000000000000000000000000000000000000000900460ff1681565b6040516101f49190611f5b565b60005460ff166102da565b600154610210906001600160a01b031681565b610230610313366004611fb4565b61067a565b610230610326366004611e42565b6108b6565b610230610339366004611e21565b6108f1565b61025860085481565b61025860095481565b61023061035e366004611e78565b610952565b610258610a8c81565b61023061037a366004611ffc565b610b01565b61023061038d36600461204c565b610c25565b600454610210906001600160a01b031681565b61025863ba43b74081565b6102306103be3660046120bc565b610de1565b6102586103d1366004612118565b61114d565b600b546103e9906001600160a01b031681565b6040516101f49190612142565b600554610210906001600160a01b031681565b610230610417366004611e42565b61124e565b60006001600160a01b0385161561044e5760405162461bcd60e51b815260040161044590612184565b60405180910390fd5b507f150b7a020000000000000000000000000000000000000000000000000000000095945050505050565b60005461010090046001600160a01b0316158015906104a257506004546001600160a01b031615155b80156104b857506003546001600160a01b031615155b80156104ce57506001546001600160a01b031615155b80156104e457506002546001600160a01b031615155b80156104fa57506005546001600160a01b031615155b6105165760405162461bcd60e51b8152600401610445906121c6565b600b546001600160a01b0316331461052d57600080fd5b801561053e5761053b61129f565b50565b61053b61130e565b600b546001600160a01b0316331461055d57600080fd5b6001600160a01b03166000908152600760205260409020805460ff19169055565b3360009081526007602052604081205460ff1661059a57600080fd5b60006105a68484611361565b6105b090826121ec565b9150505b92915050565b600b546001600160a01b031633146105d157600080fd5b600080546001600160a01b03978816610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909116179055600480549587167fffffffffffffffffffffffff0000000000000000000000000000000000000000968716179055600380549487169486169490941790935560018054928616928516929092179091556002805491851691841691909117905560058054919093169116179055565b33600081815260076020526040902054813b919060ff16806106a4575033321480156106a4575081155b6106c05760405162461bcd60e51b815260040161044590612236565b600b5474010000000000000000000000000000000000000000900460ff166106fa5760405162461bcd60e51b815260040161044590612278565b6040805160608101825260008082526020820181905291810182905260005b858110156108ad5786868281811061073357610733612288565b602090810292909201356000818152600684526040908190208151606081018352905461ffff8116825262010000810469ffffffffffffffffffff1695820195909552600160601b9094046001600160a01b03169084018190529095509193505033146107b25760405162461bcd60e51b8152600401610445906122d0565b600083815260066020526040812081905560088054600192906107d69084906122e0565b90915550506000546040517fb88d4fde0000000000000000000000000000000000000000000000000000000081526101009091046001600160a01b03169063b88d4fde9061082c903090339088906004016122f7565b600060405180830381600087803b15801561084657600080fd5b505af115801561085a573d6000803e3d6000fd5b5050505060011515837f1c2985fbd233f9b6141083d73ae8f22c8135bc2de7985e543828014469b08f126000604051610893919061234d565b60405180910390a3806108a58161235b565b915050610719565b50505050505050565b600b546001600160a01b031633146108cd57600080fd5b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b600b546001600160a01b0316331461090857600080fd5b600b805491151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b33600081815260076020526040902054813b919060ff168061097c5750333214801561097c575081155b6109985760405162461bcd60e51b815260040161044590612236565b3360009081526007602052604090205460ff166109b457600080fd5b61ffff80841660009081526006602090815260409182902082516060810184529054938416815269ffffffffffffffffffff62010000850416918101919091526001600160a01b03600160601b909304831691810182905291861614610a2c5760405162461bcd60e51b8152600401610445906123a8565b61ffff8416600090815260066020526040808220829055905490517f42966c680000000000000000000000000000000000000000000000000000000081526101009091046001600160a01b0316906342966c6890610a8e9087906004016123d1565b600060405180830381600087803b158015610aa857600080fd5b505af1158015610abc573d6000803e3d6000fd5b505060405161ffff871692506001600160a01b03881691507f23a4178dc186c4281ca53068d605699f78ec28f44189092fba852eebd2d5d76490600090a35050505050565b63ba43b7406009541015610b605762015180610a8c600854600a5442610b2791906122e0565b610b3191906123df565b610b3b91906123df565b610b459190612414565b60096000828254610b5691906121ec565b909155505042600a555b3360009081526007602052604090205460ff16610b7c57600080fd5b6000610b8984848461148b565b610b9390826121ec565b905080610ba05750505050565b600480546040517fe7d3fe6b0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169163e7d3fe6b91610bed916001918691889101612428565b600060405180830381600087803b158015610c0757600080fd5b505af1158015610c1b573d6000803e3d6000fd5b5050505050505050565b60005460ff1615610c485760405162461bcd60e51b81526004016104459061248a565b63ba43b7406009541015610ca75762015180610a8c600854600a5442610c6e91906122e0565b610c7891906123df565b610c8291906123df565b610c8c9190612414565b60096000828254610c9d91906121ec565b909155505042600a555b33600081815260076020526040902054813b919060ff1680610cd157503332148015610cd1575081155b610ced5760405162461bcd60e51b815260040161044590612236565b6000805b85811015610d4c57610d2e88888884818110610d0f57610d0f612288565b9050602002016020810190610d24919061249a565b61ffff168761167c565b610d3890836121ec565b915080610d448161235b565b915050610cf1565b5080610d585750610dd9565b600480546040517fe7d3fe6b0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169163e7d3fe6b91610da59160019186918d9101612428565b600060405180830381600087803b158015610dbf57600080fd5b505af1158015610dd3573d6000803e3d6000fd5b50505050505b505050505050565b60005460ff1615610e045760405162461bcd60e51b81526004016104459061248a565b33600081815260076020526040902054813b919060ff1680610e2e57503332148015610e2e575081155b610e4a5760405162461bcd60e51b815260040161044590612236565b6001600160a01b0385163214610e5f57600080fd5b60005b83811015610dd9576002546001600160a01b0316331415610fd5576000546001600160a01b03808816916101009004166339c7639c878785818110610ea957610ea9612288565b9050602002016020810190610ebe919061249a565b6040518263ffffffff1660e01b8152600401610eda91906123d1565b602060405180830381865afa158015610ef7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1b91906124c6565b6001600160a01b031614610f415760405162461bcd60e51b815260040161044590612519565b60005461010090046001600160a01b03166323b872dd8730888886818110610f6b57610f6b612288565b9050602002016020810190610f80919061249a565b6040518463ffffffff1660e01b8152600401610f9e93929190612529565b600060405180830381600087803b158015610fb857600080fd5b505af1158015610fcc573d6000803e3d6000fd5b50505050611107565b6001546001600160a01b031633146110d357600054339061010090046001600160a01b03166339c7639c87878581811061101157611011612288565b9050602002016020810190611026919061249a565b6040518263ffffffff1660e01b815260040161104291906123d1565b602060405180830381865afa15801561105f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108391906124c6565b6001600160a01b0316146110a95760405162461bcd60e51b815260040161044590612519565b60005461010090046001600160a01b03166323b872dd3330888886818110610f6b57610f6b612288565b8484828181106110e5576110e5612288565b90506020020160208101906110fa919061249a565b61ffff166111075761113b565b61113b8686868481811061111d5761111d612288565b9050602002016020810190611132919061249a565b61ffff16611b21565b806111458161235b565b915050610e62565b60008181526006602090815260408083208151606081018352905461ffff8116825262010000810469ffffffffffffffffffff1693820193909352600160601b9092046001600160a01b03169082015260095463ba43b74011156111e95762015180610a8c826020015169ffffffffffffffffffff16426111ce91906122e0565b6111d891906123df565b6111e29190612414565b9150611248565b600a54816020015169ffffffffffffffffffff16111561120c5760009150611248565b62015180610a8c826020015169ffffffffffffffffffff16600a5461123191906122e0565b61123b91906123df565b6112459190612414565b91505b50919050565b600b546001600160a01b0316331461126557600080fd5b600b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60005460ff16156112c25760405162461bcd60e51b81526004016104459061248a565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586112f73390565b6040516113049190612142565b60405180910390a1565b60005460ff166113305760405162461bcd60e51b815260040161044590612583565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa336112f7565b61ffff808216600090815260066020908152604080832081516060810183529054948516815269ffffffffffffffffffff62010000860416928101929092526001600160a01b03600160601b909404841690820181905291929091908516146113dc5760405162461bcd60e51b8152600401610445906122d0565b63ba43b74060095410156114285762015180610a8c826020015169ffffffffffffffffffff164261140d91906122e0565b61141791906123df565b6114219190612414565b9150611484565b600a54816020015169ffffffffffffffffffff16111561144b5760009150611484565b62015180610a8c826020015169ffffffffffffffffffff16600a5461147091906122e0565b61147a91906123df565b6105b09190612414565b5092915050565b61ffff808416600090815260066020908152604080832081516060810183529054948516815269ffffffffffffffffffff62010000860416928101929092526001600160a01b03600160601b909404841690820181905291929091908416146115065760405162461bcd60e51b8152600401610445906123a8565b600060646115156014876123df565b61151f9190612414565b6003546040517fa10595d10000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063a10595d190611569908490600401611ebb565b600060405180830381600087803b15801561158357600080fd5b505af1158015611597573d6000803e3d6000fd5b5050505080856115a791906122e0565b6040805160608101825261ffff808a1680835269ffffffffffffffffffff42811660208086019182526001600160a01b03808d16878901908152600086815260069093528883209751885494519151909216600160601b026bffffffffffffffffffffffff9190951662010000026bffffffffffffffffffffffff199094169190961617919091179390931617909255915192955090917f1c2985fbd233f9b6141083d73ae8f22c8135bc2de7985e543828014469b08f129061166b908790611ebb565b60405180910390a350509392505050565b60008281526006602090815260408083208151606081018352905461ffff8116825269ffffffffffffffffffff62010000820416938201939093526001600160a01b03600160601b9093048316918101829052918616146116ef5760405162461bcd60e51b8152600401610445906122d0565b82801561171957506202a300816020015169ffffffffffffffffffff164261171791906122e0565b105b156117365760405162461bcd60e51b8152600401610445906125c5565b63ba43b74060095410156117825762015180610a8c826020015169ffffffffffffffffffff164261176791906122e0565b61177191906123df565b61177b9190612414565b91506117e1565b600a54816020015169ffffffffffffffffffff1611156117a557600091506117e1565b62015180610a8c826020015169ffffffffffffffffffff16600a546117ca91906122e0565b6117d491906123df565b6117de9190612414565b91505b82156119af576005546040517fb863bd370000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063b863bd3790611830908790600401611ebb565b6020604051808303816000875af115801561184f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187391906125e0565b600116600114156118fe576003546040517fa10595d10000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063a10595d1906118c7908590600401611ebb565b600060405180830381600087803b1580156118e157600080fd5b505af11580156118f5573d6000803e3d6000fd5b50505050600091505b600084815260066020526040812081905560088054600192906119229084906122e0565b90915550506000546040517fb88d4fde0000000000000000000000000000000000000000000000000000000081526101009091046001600160a01b03169063b88d4fde90611978903090899089906004016122f7565b600060405180830381600087803b15801561199257600080fd5b505af11580156119a6573d6000803e3d6000fd5b50505050611ade565b6003546001600160a01b031663a10595d160646119cd6014866123df565b6119d79190612414565b6040518263ffffffff1660e01b81526004016119f39190611ebb565b600060405180830381600087803b158015611a0d57600080fd5b505af1158015611a21573d6000803e3d6000fd5b50505050606460146064611a3591906122e0565b611a3f90846123df565b611a499190612414565b6040805160608101825261ffff87811682524269ffffffffffffffffffff90811660208085019182526001600160a01b038c811686880190815260008d8152600690935296909120945185549251965194166bffffffffffffffffffffffff1990921691909117620100009590921694909402176bffffffffffffffffffffffff16600160601b919093160291909117905591505b821515847f1c2985fbd233f9b6141083d73ae8f22c8135bc2de7985e543828014469b08f1284604051611b119190611ebb565b60405180910390a3509392505050565b63ba43b7406009541015611b805762015180610a8c600854600a5442611b4791906122e0565b611b5191906123df565b611b5b91906123df565b611b659190612414565b60096000828254611b7691906121ec565b909155505042600a555b6040805160608101825261ffff808416825269ffffffffffffffffffff42811660208085019182526001600160a01b03808916868801908152600089815260069093529682209551865493519751909116600160601b026bffffffffffffffffffffffff9790941662010000026bffffffffffffffffffffffff1990931694169390931717939093169290921790556008805460019290611c229084906121ec565b9250508190555080826001600160a01b03167f2b0c57bc9ee0e1fb27b985c9453637992f5ed5b1b8f7b4e8d5f0b5d7d425280942604051611c639190611ebb565b60405180910390a35050565b60006001600160a01b0382166105b4565b611c8981611c6f565b811461053b57600080fd5b80356105b481611c80565b80611c89565b80356105b481611c9f565b60008083601f840112611cc557611cc5600080fd5b50813567ffffffffffffffff811115611ce057611ce0600080fd5b602083019150836001820283011115611cfb57611cfb600080fd5b9250929050565b600080600080600060808688031215611d1d57611d1d600080fd5b6000611d298888611c94565b9550506020611d3a88828901611c94565b9450506040611d4b88828901611ca5565b935050606086013567ffffffffffffffff811115611d6b57611d6b600080fd5b611d7788828901611cb0565b92509250509295509295909350565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b82525050565b602081016105b48284611d86565b60006105b46001600160a01b038316611dd5565b90565b6001600160a01b031690565b60006105b482611dbe565b60006105b482611de1565b611daa81611dec565b602081016105b48284611df7565b801515611c89565b80356105b481611e0e565b600060208284031215611e3657611e36600080fd5b60006105b08484611e16565b600060208284031215611e5757611e57600080fd5b60006105b08484611c94565b61ffff8116611c89565b80356105b481611e63565b60008060408385031215611e8e57611e8e600080fd5b6000611e9a8585611c94565b9250506020611eab85828601611e6d565b9150509250929050565b80611daa565b602081016105b48284611eb5565b60008060008060008060c08789031215611ee557611ee5600080fd5b6000611ef18989611c94565b9650506020611f0289828a01611c94565b9550506040611f1389828a01611c94565b9450506060611f2489828a01611c94565b9350506080611f3589828a01611c94565b92505060a0611f4689828a01611c94565b9150509295509295509295565b801515611daa565b602081016105b48284611f53565b60008083601f840112611f7e57611f7e600080fd5b50813567ffffffffffffffff811115611f9957611f99600080fd5b602083019150836020820283011115611cfb57611cfb600080fd5b60008060208385031215611fca57611fca600080fd5b823567ffffffffffffffff811115611fe457611fe4600080fd5b611ff085828601611f69565b92509250509250929050565b60008060006060848603121561201457612014600080fd5b60006120208686611e6d565b935050602061203186828701611ca5565b925050604061204286828701611c94565b9150509250925092565b6000806000806060858703121561206557612065600080fd5b60006120718787611c94565b945050602085013567ffffffffffffffff81111561209157612091600080fd5b61209d87828801611f69565b935093505060406120b087828801611e16565b91505092959194509250565b6000806000604084860312156120d4576120d4600080fd5b60006120e08686611c94565b935050602084013567ffffffffffffffff81111561210057612100600080fd5b61210c86828701611f69565b92509250509250925092565b60006020828403121561212d5761212d600080fd5b60006105b08484611ca5565b611daa81611c6f565b602081016105b48284612139565b60088152602081017f4f6e6c7920454f41000000000000000000000000000000000000000000000000815290505b60200190565b602080825281016105b481612150565b60118152602081017f436f6e747261637473206e6f74207365740000000000000000000000000000008152905061217e565b602080825281016105b481612194565b634e487b7160e01b600052601160045260246000fd5b600082198211156121ff576121ff6121d6565b500190565b60178152602081017f796f7527726520747279696e6720746f206368656174210000000000000000008152905061217e565b602080825281016105b481612204565b60128152602081017f526573637565204e6f7420456e61626c656400000000000000000000000000008152905061217e565b602080825281016105b481612246565b634e487b7160e01b600052603260045260246000fd5b60098152602081017f4e6f74204f776e657200000000000000000000000000000000000000000000008152905061217e565b602080825281016105b48161229e565b6000828210156122f2576122f26121d6565b500390565b608081016123058286612139565b6123126020830185612139565b61231f6040830184611eb5565b8181036060830152600081526020810195945050505050565b60006105b4611dd28381565b611daa81612338565b602081016105b48284612344565b600060001982141561236f5761236f6121d6565b5060010190565b60128152602081017f507974686561733a204e6f74204f776e657200000000000000000000000000008152905061217e565b602080825281016105b481612376565b60006105b4611dd261ffff841681565b611daa816123b8565b602081016105b482846123c8565b60008160001904831182151516156123f9576123f96121d6565b500290565b634e487b7160e01b600052601260045260246000fd5b600082612423576124236123fe565b500490565b606081016124368286612344565b6124436020830185611eb5565b6124506040830184612139565b949350505050565b60108152602081017f5061757361626c653a20706175736564000000000000000000000000000000008152905061217e565b602080825281016105b481612458565b6000602082840312156124af576124af600080fd5b60006105b08484611e6d565b80516105b481611c80565b6000602082840312156124db576124db600080fd5b60006105b084846124bb565b60128152602081017f4e6f7420436f6c6f6e697374204f776e657200000000000000000000000000008152905061217e565b602080825281016105b4816124e7565b606081016125378286612139565b6125446020830185612139565b61245060408301846123c8565b60148152602081017f5061757361626c653a206e6f74207061757365640000000000000000000000008152905061217e565b602080825281016105b481612551565b60168152602081017f596f75722073686966742069736e2774206f76657221000000000000000000008152905061217e565b602080825281016105b481612593565b80516105b481611c9f565b6000602082840312156125f5576125f5600080fd5b60006105b084846125d556fea2646970667358221220869583cb7b8bf5aa5793e83d59cfddd89da10430f22a296afb8d8fbc0c33591d64736f6c634300080b0033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.