Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
0
Holders
223
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 0 Decimals)
Balance
507,998,639,856,748,804Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
NovaStaking
Compiler Version
v0.4.25+commit.59dbf8f1
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-10-11 */ pragma solidity ^0.4.23; // @title SafeMath // @dev Math operations with safety checks that throw on error library SafeMath { // @dev Multiplies two numbers, throws on overflow. function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { // Gas optimization: this is cheaper than asserting 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (a == 0) { return 0; } c = a * b; require(c / a == b, "mul failed"); return c; } // @dev Integer division of two numbers, truncating the quotient. function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 // uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return a / b; } // @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a, "sub fail"); return a - b; } // @dev Adds two numbers, throws on overflow. function add(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a + b; require(c >= a, "add fail"); return c; } } // @title ERC20 interface // @dev see https://github.com/ethereum/EIPs/issues/20 contract iERC20 { function allowance(address owner, address spender) public view returns (uint256); function transferFrom(address from, address to, uint256 value) public returns (bool); function approve(address spender, uint256 value) public returns (bool); function totalSupply() public view returns (uint256); function balanceOf(address who) public view returns (uint256); function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 tokens); event Approval(address indexed tokenOwner, address indexed spender, uint256 tokens); } // @title iNovaStaking // @dev The interface for cross-contract calls to the Nova Staking contract // @author Dragon Foundry (https://www.nvt.gg) // (c) 2018 Dragon Foundry LLC. All Rights Reserved. This code is not open source. contract iNovaStaking { function balanceOf(address _owner) public view returns (uint256); } // @title iNovaGame // @dev The interface for cross-contract calls to the Nova Game contract // @author Dragon Foundry (https://www.nvt.gg) // (c) 2018 Dragon Foundry LLC. All Rights Reserved. This code is not open source. contract iNovaGame { function isAdminForGame(uint _game, address account) external view returns(bool); // List of all games tracked by the Nova Game contract uint[] public games; } // @title NovaMasterAccess // @dev NovaMasterAccess contract for controlling access to Nova Token contract functions // @author Dragon Foundry (https://www.nvt.gg) // (c) 2018 Dragon Foundry LLC. All Rights Reserved. This code is not open source. contract NovaMasterAccess { using SafeMath for uint256; event OwnershipTransferred(address previousOwner, address newOwner); event PromotedGame(uint game, bool isPromoted, string json); event SuppressedGame(uint game, bool isSuppressed); // Reference to the address of the Nova Token ERC20 contract iERC20 public nvtContract; // Reference to the address of the Nova Game contract iNovaGame public gameContract; // The Owner can perform all admin tasks. address public owner; // The Recovery account can change the Owner account. address public recoveryAddress; // @dev The original `owner` of the contract is the contract creator. constructor() internal { owner = msg.sender; } // @dev Access control modifier to limit access to the Owner account modifier onlyOwner() { require(msg.sender == owner); _; } // @dev Access control modifier to limit access to the Recovery account modifier onlyRecovery() { require(msg.sender == recoveryAddress); _; } // @dev Assigns a new address to act as the Owner. // @notice Can only be called by the recovery account // @param _newOwner The address of the new Owner function setOwner(address _newOwner) external onlyRecovery { require(_newOwner != address(0)); require(_newOwner != recoveryAddress); owner = _newOwner; emit OwnershipTransferred(owner, _newOwner); } // @dev Assigns a new address to act as the Recovery address. // @notice Can only be called by the Owner account // @param _newRecovery The address of the new Recovery account function setRecovery(address _newRecovery) external onlyOwner { require(_newRecovery != address(0)); require(_newRecovery != owner); recoveryAddress = _newRecovery; } // @dev Adds or removes a game from the list of promoted games // @param _game - the game to be promoted // @param _isPromoted - true for promoted, false for not // @param _json - A json string to be used to display promotional information function setPromotedGame(uint _game, bool _isPromoted, string _json) external onlyOwner { uint gameId = gameContract.games(_game); require(gameId == _game, "gameIds must match"); emit PromotedGame(_game, _isPromoted, _isPromoted ? _json : ""); } // @dev Adds or removes a game from the list of suppressed games. // Suppressed games won't show up on the site, but can still be interacted with // by users. // @param _game - the game to be promoted // @param _isSuppressed - true for suppressed, false for not function setSuppressedGame(uint _game, bool _isSuppressed) external onlyOwner { uint gameId = gameContract.games(_game); require(gameId == _game, "gameIds must match"); emit SuppressedGame(_game, _isSuppressed); } } // @title ERC20 Sidechain manager imlpementation // @dev Utility contract that manages Ethereum and ERC-20 tokens transferred in from the main chain // @dev Can manage any number of tokens // @author Dragon Foundry (https://www.nvt.gg) // (c) 2018 Dragon Foundry LLC. All Rights Reserved. This code is not open source. contract NovaStakingBase is NovaMasterAccess, iNovaStaking { using SafeMath for uint256; uint public constant WEEK_ZERO_START = 1538352000; // 10/1/2018 @ 00:00:00 uint public constant SECONDS_PER_WEEK = 604800; // The Nova Token balances of all games and users on the system mapping(address => uint) public balances; // The number of Nova Tokens stored as income each week mapping(uint => uint) public storedNVTbyWeek; // @dev Access control modifier to limit access to game admin accounts modifier onlyGameAdmin(uint _game) { require(gameContract.isAdminForGame(_game, msg.sender)); _; } // @dev Used on deployment to link the Staking and Game contracts. // @param _gameContract - the address of a valid GameContract instance function linkContracts(address _gameContract) external onlyOwner { gameContract = iNovaGame(_gameContract); } event Transfer(address indexed from, address indexed to, uint256 value); event Balance(address account, uint256 value); event StoredNVT(uint week, uint stored); // @dev Gets the balance of the specified address. // @param _owner The address to query the the balance of. // @returns An uint256 representing the amount owned by the passed address. function balanceOf(address _owner) public view returns (uint256) { return balances[_owner]; } // Internal transfer of ERC20 tokens to complete payment of an auction. // @param _from The address which you want to send tokens from // @param _to The address which you want to transfer to // @param _value The amout of tokens to be transferred function _transfer(address _from, address _to, uint _value) internal { require(_from != _to, "can't transfer to yourself"); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); emit Transfer(_from, _to, _value); emit Balance(_from, balances[_from]); emit Balance(_to, balances[_to]); } // @dev Gets the current week, as calculated by this smart contract // @returns uint - the current week function getCurrentWeek() external view returns(uint) { return _getCurrentWeek(); } // @dev Internal function to calculate the current week // @returns uint - the current week function _getCurrentWeek() internal view returns(uint) { return (now - WEEK_ZERO_START) / SECONDS_PER_WEEK; } } // @title Nova Stake Management // @dev NovaStakeManagement contract for managing stakes and game balances // @author Dragon Foundry (https://www.nvt.gg) // (c) 2018 Dragon Foundry LLC. All Rights Reserved. This code is not open source. contract NovaStakeManagement is NovaStakingBase { // Emitted whenever a user or game takes a payout from the system event Payout(address indexed staker, uint amount, uint endWeek); // Emitted whenever a user's stake is increased or decreased. event ChangeStake(uint week, uint indexed game, address indexed staker, uint prevStake, uint newStake, uint accountStake, uint gameStake, uint totalStake); // @dev Tracks current stake levels for all accounts and games. // Tracks separately for accounts by game, accounts, games, and the total stake on the system // Mapping(Game => Mapping(Account => Stake)) mapping(uint => mapping(address => uint)) public gameAccountStaked; // Mapping(Account => Stake) mapping(address => uint) public accountStaked; // Mapping(Game => Stake) mapping(uint => uint) public gameStaked; // Stake uint public totalStaked; // @dev Tracks stakes by week for accounts and games. Each is updated when a user changes their stake. // These can be zero if they haven't been updated during the current week, so "zero" // just means "look at the week before", as no stakes have been changed. // When setting a stake to zero, the system records a "1". This is safe, because it's stored // with 18 significant digits, and the calculation // Mapping(Week => Mapping(Game => Mapping(Account => Stake))) mapping(uint => mapping(uint => mapping(address => uint))) public weekGameAccountStakes; // Mapping(Week => Mapping(Account => Stake)) mapping(uint => mapping(address => uint)) public weekAccountStakes; // Mapping(Week => Mapping(Game => Stake)) mapping(uint => mapping(uint => uint)) public weekGameStakes; // Mapping(Week => Stake) mapping(uint => uint) public weekTotalStakes; // The last week that an account took a payout. Used for calculating the remaining payout for the account mapping(address => uint) public lastPayoutWeekByAccount; // The last week that a game took a payout. Used for calculating the remaining payout for the game mapping(uint => uint) public lastPayoutWeekByGame; // Tracks the amount of income the system has taken in. // All income is paid out to games (50%) and stakers (50%) mapping(uint => uint) public weeklyIncome; constructor() public { weekTotalStakes[_getCurrentWeek() - 1] = 1; } // @dev Sets the sender's stake on a game to an amount. // @param _game - the game to increase or decrease the sender's stake on // @param _newStake - The new stake value. Can be an increase or decrease, // but must be different than their current stake, and lower than their staking balance. function setStake(uint _game, uint _newStake) public { uint currentStake = gameAccountStaked[_game][msg.sender]; if (currentStake < _newStake) { increaseStake(_game, _newStake - currentStake); } else if (currentStake > _newStake) { decreaseStake(_game, currentStake - _newStake); } } // @dev Increases the sender's stake on a game by an amount. // @param _game - the game to increase the sender's stake on // @param _increase - The increase must be non-zero, and less than // or equal to the user's available staking balance function increaseStake(uint _game, uint _increase) public returns(uint newStake) { require(_increase > 0, "Must be a non-zero change"); // Take the payment uint newBalance = balances[msg.sender].sub(_increase); balances[msg.sender] = newBalance; emit Balance(msg.sender, newBalance); uint prevStake = gameAccountStaked[_game][msg.sender]; newStake = prevStake.add(_increase); uint gameStake = gameStaked[_game].add(_increase); uint accountStake = accountStaked[msg.sender].add(_increase); uint totalStake = totalStaked.add(_increase); _storeStakes(_game, msg.sender, prevStake, newStake, gameStake, accountStake, totalStake); } // @dev Decreases the sender's stake on a game by an amount. // @param _game - the game to decrease the sender's stake on // @param _decrease - The decrease must be non-zero, and less than or equal to the user's stake on the game function decreaseStake(uint _game, uint _decrease) public returns(uint newStake) { require(_decrease > 0, "Must be a non-zero change"); uint newBalance = balances[msg.sender].add(_decrease); balances[msg.sender] = newBalance; emit Balance(msg.sender, newBalance); uint prevStake = gameAccountStaked[_game][msg.sender]; newStake = prevStake.sub(_decrease); uint gameStake = gameStaked[_game].sub(_decrease); uint accountStake = accountStaked[msg.sender].sub(_decrease); uint totalStake = totalStaked.sub(_decrease); _storeStakes(_game, msg.sender, prevStake, newStake, gameStake, accountStake, totalStake); } // @dev Lets a staker collect the current payout for all their stakes. // @param _numberOfWeeks - the number of weeks to collect. Set to 0 to collect all weeks. // @returns _payout - the total payout over all the collected weeks function collectPayout(uint _numberOfWeeks) public returns(uint _payout) { uint startWeek = lastPayoutWeekByAccount[msg.sender]; require(startWeek > 0, "must be a valid start week"); uint endWeek = _getEndWeek(startWeek, _numberOfWeeks); require(startWeek < endWeek, "must be at least one week to pay out"); uint lastWeekStake; for (uint i = startWeek; i < endWeek; i++) { // Get the stake for the week. Use the last week's stake if the stake hasn't changed uint weeklyStake = weekAccountStakes[i][msg.sender] == 0 ? lastWeekStake : weekAccountStakes[i][msg.sender]; lastWeekStake = weeklyStake; uint weekStake = _getWeekTotalStake(i); uint storedNVT = storedNVTbyWeek[i]; uint weeklyPayout = storedNVT > 1 && weeklyStake > 1 && weekStake > 1 ? weeklyStake.mul(storedNVT) / weekStake / 2 : 0; _payout = _payout.add(weeklyPayout); } // If the weekly stake for the end week is not set, set it to the // last week's stake, to ensure we know what to pay out. // This works even if the end week is the current week; the value // will be overwritten if necessary by future stake changes if(weekAccountStakes[endWeek][msg.sender] == 0) { weekAccountStakes[endWeek][msg.sender] = lastWeekStake; } // Always update the last payout week lastPayoutWeekByAccount[msg.sender] = endWeek; _transfer(address(this), msg.sender, _payout); emit Payout(msg.sender, _payout, endWeek); } // @dev Lets a game admin collect the current payout for their game. // @param _game - the game to collect // @param _numberOfWeeks - the number of weeks to collect. Set to 0 to collect all weeks. // @returns _payout - the total payout over all the collected weeks function collectGamePayout(uint _game, uint _numberOfWeeks) external onlyGameAdmin(_game) returns(uint _payout) { uint week = lastPayoutWeekByGame[_game]; require(week > 0, "must be a valid start week"); uint endWeek = _getEndWeek(week, _numberOfWeeks); require(week < endWeek, "must be at least one week to pay out"); uint lastWeekStake; for (week; week < endWeek; week++) { // Get the stake for the week. Use the last week's stake if the stake hasn't changed uint weeklyStake = weekGameStakes[week][_game] == 0 ? lastWeekStake : weekGameStakes[week][_game]; lastWeekStake = weeklyStake; uint weekStake = _getWeekTotalStake(week); uint storedNVT = storedNVTbyWeek[week]; uint weeklyPayout = storedNVT > 1 && weeklyStake > 1 && weekStake > 1 ? weeklyStake.mul(storedNVT) / weekStake / 2 : 0; _payout = _payout.add(weeklyPayout); } // If the weekly stake for the end week is not set, set it to // the last week's stake, to ensure we know what to pay out // This works even if the end week is the current week; the value // will be overwritten if necessary by future stake changes if(weekGameStakes[endWeek][_game] == 0) { weekGameStakes[endWeek][_game] = lastWeekStake; } // Always update the last payout week lastPayoutWeekByGame[_game] = endWeek; _transfer(address(this), address(_game), _payout); emit Payout(address(_game), _payout, endWeek); } // @dev Internal function to calculate the game, account, and total stakes on a stake change // @param _game - the game to be staked on // @param _staker - the account doing the staking // @param _prevStake - the previous stake of the staker on that game // @param _newStake - the newly updated stake of the staker on that game // @param _gameStake - the new total stake for the game // @param _accountStake - the new total stake for the staker's account // @param _totalStake - the new total stake for the system as a whole function _storeStakes(uint _game, address _staker, uint _prevStake, uint _newStake, uint _gameStake, uint _accountStake, uint _totalStake) internal { uint _currentWeek = _getCurrentWeek(); gameAccountStaked[_game][msg.sender] = _newStake; gameStaked[_game] = _gameStake; accountStaked[msg.sender] = _accountStake; totalStaked = _totalStake; // Each of these stores the weekly stake as "1" if it's been set to 0. // This tracks the difference between "not set this week" and "set to zero this week" weekGameAccountStakes[_currentWeek][_game][_staker] = _newStake > 0 ? _newStake : 1; weekAccountStakes[_currentWeek][_staker] = _accountStake > 0 ? _accountStake : 1; weekGameStakes[_currentWeek][_game] = _gameStake > 0 ? _gameStake : 1; weekTotalStakes[_currentWeek] = _totalStake > 0 ? _totalStake : 1; // Get the last payout week; set it to this week if there hasn't been a week. // This lets the user iterate payouts correctly. if(lastPayoutWeekByAccount[_staker] == 0) { lastPayoutWeekByAccount[_staker] = _currentWeek - 1; if (lastPayoutWeekByGame[_game] == 0) { lastPayoutWeekByGame[_game] = _currentWeek - 1; } } emit ChangeStake(_currentWeek, _game, _staker, _prevStake, _newStake, _accountStake, _gameStake, _totalStake); } // @dev Internal function to get the total stake for a given week // @notice This updates the stored values for intervening weeks, // as that's more efficient at 100 or more users // @param _week - the week in which to calculate the total stake // @returns _stake - the total stake in that week function _getWeekTotalStake(uint _week) internal returns(uint _stake) { _stake = weekTotalStakes[_week]; if(_stake == 0) { uint backWeek = _week; while(_stake == 0) { backWeek--; _stake = weekTotalStakes[backWeek]; } weekTotalStakes[_week] = _stake; } } // @dev Internal function to get the end week based on start, number of weeks, and current week // @param _startWeek - the start of the range // @param _numberOfWeeks - the length of the range // @returns endWeek - either the current week, or the end of the range // @notice This throws if it tries to get a week range longer than the current week function _getEndWeek(uint _startWeek, uint _numberOfWeeks) internal view returns(uint endWeek) { uint _currentWeek = _getCurrentWeek(); require(_startWeek < _currentWeek, "must get at least one week"); endWeek = _numberOfWeeks == 0 ? _currentWeek : _startWeek + _numberOfWeeks; require(endWeek <= _currentWeek, "can't get more than the current week"); } } // @title NovaToken ERC20 contract // @dev ERC20 management contract, designed to make using ERC-20 tokens easier // @author Dragon Foundry (https://www.nvt.gg) // (c) 2018 Dragon Foundry LLC. All Rights Reserved. This code is not open source. contract NovaStaking is NovaStakeManagement { event Deposit(address account, uint256 amount, uint256 balance); event Withdrawal(address account, uint256 amount, uint256 balance); // @dev Constructor creates a reference to the NFT ownership contract // and verifies the manager cut is in the valid range. // @param _nvtContract - address of the mainnet NovaToken contract constructor(iERC20 _nvtContract) public { nvtContract = _nvtContract; } // @dev Allows a user to deposit NVT through approveAndCall. // @notice Other methods of sending NVT to this contract will still work, but will result in you losing your NVT. // @param _sender is the original sender of the message // @param _amount is the amount of NVT that was approved // @param _contract is the contract that sent the approval; we check to be sure it's the NVT contract // @param _data is the data that is passed in along with the call. It's not used here function receiveApproval(address _sender, uint _amount, address _contract, bytes _data) public { require(_data.length == 0, "you must pass no data"); require(_contract == address(nvtContract), "sending from a non-NVT contract is not allowed"); // Track the transferred NVT uint newBalance = balances[_sender].add(_amount); balances[_sender] = newBalance; emit Balance(_sender, newBalance); emit Deposit(_sender, _amount, newBalance); // Transfer the NVT to this require(nvtContract.transferFrom(_sender, address(this), _amount), "must successfully transfer"); } function receiveNVT(uint _amount, uint _week) external { require(_week >= _getCurrentWeek(), "Current Week must be equal or greater"); uint totalDonation = weeklyIncome[_week].add(_amount); weeklyIncome[_week] = totalDonation; uint stored = storedNVTbyWeek[_week].add(_amount); storedNVTbyWeek[_week] = stored; emit StoredNVT(_week, stored); // transfer the donation _transfer(msg.sender, address(this), _amount); } // @dev Allows a user to withdraw some or all of their NVT stored in this contract // @param _sender is the original sender of the message // @param _amount is the amount of NVT to be withdrawn. Withdraw(0) will withdraw all. // @returns true if successful, false if unsuccessful, but will most throw on most failures function withdraw(uint amount) external { uint withdrawalAmount = amount > 0 ? amount : balances[msg.sender]; require(withdrawalAmount > 0, "Can't withdraw - zero balance"); uint newBalance = balances[msg.sender].sub(withdrawalAmount); balances[msg.sender] = newBalance; emit Withdrawal(msg.sender, withdrawalAmount, newBalance); emit Balance(msg.sender, newBalance); nvtContract.transfer(msg.sender, withdrawalAmount); } // @dev Add more ERC-20 tokens to a game. Can be used to fund games with Nova Tokens for card creation // @param _game - the # of the game to add tokens to // @param _tokensToToAdd - the number of Nova Tokens to transfer from the calling account function addNVTtoGame(uint _game, uint _tokensToToAdd) external onlyGameAdmin(_game) { // Take the funding, and apply it to the GAME's address (a fake ETH address...) _transfer(msg.sender, address(_game), _tokensToToAdd); } // @dev Withdraw earned (or funded) Nova Tokens from a game. // @param _game - the # of the game to add tokens to // @param _tokensToWithdraw - the number of NVT to transfer from the game to the calling account function withdrawNVTfromGame(uint _game, uint _tokensToWithdraw) external onlyGameAdmin(_game) { // Take the NVT funds from the game, and apply them to the game admin's address _transfer(address(_game), msg.sender, _tokensToWithdraw); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"lastPayoutWeekByGame","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_game","type":"uint256"},{"name":"_newStake","type":"uint256"}],"name":"setStake","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_game","type":"uint256"},{"name":"_decrease","type":"uint256"}],"name":"decreaseStake","outputs":[{"name":"newStake","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"WEEK_ZERO_START","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"gameStaked","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_game","type":"uint256"},{"name":"_numberOfWeeks","type":"uint256"}],"name":"collectGamePayout","outputs":[{"name":"_payout","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_game","type":"uint256"},{"name":"_isSuppressed","type":"bool"}],"name":"setSuppressedGame","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"weekTotalStakes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"lastPayoutWeekByAccount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"gameAccountStaked","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"storedNVTbyWeek","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCurrentWeek","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_numberOfWeeks","type":"uint256"}],"name":"collectPayout","outputs":[{"name":"_payout","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"recoveryAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_game","type":"uint256"},{"name":"_isPromoted","type":"bool"},{"name":"_json","type":"string"}],"name":"setPromotedGame","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_week","type":"uint256"}],"name":"receiveNVT","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalStaked","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SECONDS_PER_WEEK","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_gameContract","type":"address"}],"name":"linkContracts","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sender","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_contract","type":"address"},{"name":"_data","type":"bytes"}],"name":"receiveApproval","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"weekAccountStakes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"weeklyIncome","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"weekGameStakes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_game","type":"uint256"},{"name":"_tokensToToAdd","type":"uint256"}],"name":"addNVTtoGame","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_game","type":"uint256"},{"name":"_increase","type":"uint256"}],"name":"increaseStake","outputs":[{"name":"newStake","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nvtContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"accountStaked","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"gameContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"weekGameAccountStakes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newRecovery","type":"address"}],"name":"setRecovery","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_game","type":"uint256"},{"name":"_tokensToWithdraw","type":"uint256"}],"name":"withdrawNVTfromGame","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_nvtContract","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"balance","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"balance","type":"uint256"}],"name":"Withdrawal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"staker","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"endWeek","type":"uint256"}],"name":"Payout","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"week","type":"uint256"},{"indexed":true,"name":"game","type":"uint256"},{"indexed":true,"name":"staker","type":"address"},{"indexed":false,"name":"prevStake","type":"uint256"},{"indexed":false,"name":"newStake","type":"uint256"},{"indexed":false,"name":"accountStake","type":"uint256"},{"indexed":false,"name":"gameStake","type":"uint256"},{"indexed":false,"name":"totalStake","type":"uint256"}],"name":"ChangeStake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Balance","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"week","type":"uint256"},{"indexed":false,"name":"stored","type":"uint256"}],"name":"StoredNVT","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"previousOwner","type":"address"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"game","type":"uint256"},{"indexed":false,"name":"isPromoted","type":"bool"},{"indexed":false,"name":"json","type":"string"}],"name":"PromotedGame","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"game","type":"uint256"},{"indexed":false,"name":"isSuppressed","type":"bool"}],"name":"SuppressedGame","type":"event"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516020806122cb833981016040525160028054600160a060020a031916331790556001600d60008261004c640100000000610086810204565b03815260208101919091526040016000908120919091558054600160a060020a031916600160a060020a0392909216919091179055610096565b62093a8042635bb1637f19010490565b612226806100a56000396000f3006080604052600436106101c15763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166309e201cc81146101c657806313af4035146101f05780631cf73c131461021357806324d86f001461022e57806327e235e3146102495780632e1a7d4d1461026a5780632ed3aae31461028257806335e748fb1461029757806341f36984146102af57806346ba6f61146102ca578063535cd529146102e7578063639c5d36146102ff578063644b2b9f146103205780636d6ad2df146103445780636eb227ce1461035c5780636fe5091e1461037157806370a0823114610389578063710eb26c146103aa5780637850f0a4146103db5780637b2643f214610405578063817b1cd21461042057806384ae2a74146104355780638c25f54e1461044a5780638da5cb5b1461046b5780638f4ffcb1146104805780639ec40d2c146104f0578063a976db9b14610514578063ad88db611461052c578063b3c185a714610547578063bec10cde14610562578063cada4b191461057d578063cbac0d0a14610592578063d3f33009146105b3578063da9c7d93146105c8578063f0d85c89146105ef578063f90f11b714610610575b600080fd5b3480156101d257600080fd5b506101de60043561062b565b60408051918252519081900360200190f35b3480156101fc57600080fd5b50610211600160a060020a036004351661063d565b005b34801561021f57600080fd5b506102116004356024356106f2565b34801561023a57600080fd5b506101de600435602435610741565b34801561025557600080fd5b506101de600160a060020a036004351661089e565b34801561027657600080fd5b506102116004356108b0565b34801561028e57600080fd5b506101de610a69565b3480156102a357600080fd5b506101de600435610a71565b3480156102bb57600080fd5b506101de600435602435610a83565b3480156102d657600080fd5b506102116004356024351515610daa565b3480156102f357600080fd5b506101de600435610ef1565b34801561030b57600080fd5b506101de600160a060020a0360043516610f03565b34801561032c57600080fd5b506101de600435600160a060020a0360243516610f15565b34801561035057600080fd5b506101de600435610f32565b34801561036857600080fd5b506101de610f44565b34801561037d57600080fd5b506101de600435610f53565b34801561039557600080fd5b506101de600160a060020a03600435166111c7565b3480156103b657600080fd5b506103bf6111e2565b60408051600160a060020a039092168252519081900360200190f35b3480156103e757600080fd5b506102116004803590602480351515916044359182019101356111f1565b34801561041157600080fd5b506102116004356024356113f4565b34801561042c57600080fd5b506101de611525565b34801561044157600080fd5b506101de61152b565b34801561045657600080fd5b50610211600160a060020a0360043516611532565b34801561047757600080fd5b506103bf611578565b34801561048c57600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261021194600160a060020a038135811695602480359660443590931695369560849492019181908401838280828437509497506115879650505050505050565b3480156104fc57600080fd5b506101de600435600160a060020a036024351661181d565b34801561052057600080fd5b506101de60043561183a565b34801561053857600080fd5b506101de60043560243561184c565b34801561055357600080fd5b50610211600435602435611869565b34801561056e57600080fd5b506101de600435602435611917565b34801561058957600080fd5b506103bf611a58565b34801561059e57600080fd5b506101de600160a060020a0360043516611a67565b3480156105bf57600080fd5b506103bf611a79565b3480156105d457600080fd5b506101de600435602435600160a060020a0360443516611a88565b3480156105fb57600080fd5b50610211600160a060020a0360043516611aab565b34801561061c57600080fd5b50610211600435602435611b21565b600f6020526000908152604090205481565b600354600160a060020a0316331461065457600080fd5b600160a060020a038116151561066957600080fd5b600354600160a060020a038281169116141561068457600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038381169182179283905560408051939091168352602083019190915280517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09281900390910190a150565b6000828152600660209081526040808320338452909152902054818110156107265761072083828403611917565b5061073c565b8181111561073c5761073a83838303610741565b505b505050565b6000808080808080871161079f576040805160e560020a62461bcd02815260206004820152601960248201527f4d7573742062652061206e6f6e2d7a65726f206368616e676500000000000000604482015290519081900360640190fd5b336000908152600460205260409020546107bf908863ffffffff611bcf16565b336000818152600460209081526040918290208490558151928352820183905280519297506000805160206121db83398151915292918290030190a160008881526006602090815260408083203384529091529020549350610827848863ffffffff611c3016565b600089815260086020526040902054909650610849908863ffffffff611c3016565b3360009081526007602052604090205490935061086c908863ffffffff611c3016565b600954909250610882908863ffffffff611c3016565b905061089388338689878787611c90565b505050505092915050565b60046020526000908152604090205481565b600080600083116108d057336000908152600460205260409020546108d2565b825b91506000821161092c576040805160e560020a62461bcd02815260206004820152601d60248201527f43616e2774207769746864726177202d207a65726f2062616c616e6365000000604482015290519081900360640190fd5b3360009081526004602052604090205461094c908363ffffffff611c3016565b3360008181526004602090815260409182902084905581519283528201859052818101839052519192507fdf273cb619d95419a9cd0ec88123a0538c85064229baa6363788f743fff90deb919081900360600190a1604080513381526020810183905281516000805160206121db833981519152929181900390910190a160008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018690529051600160a060020a039092169263a9059cbb926044808401936020939083900390910190829087803b158015610a3857600080fd5b505af1158015610a4c573d6000803e3d6000fd5b505050506040513d6020811015610a6257600080fd5b5050505050565b635bb1638081565b60086020526000908152604090205481565b600154604080517fdded5dd800000000000000000000000000000000000000000000000000000000815260048101859052336024820152905160009283928392839283928392839283928c92600160a060020a039092169163dded5dd89160448082019260209290919082900301818887803b158015610b0257600080fd5b505af1158015610b16573d6000803e3d6000fd5b505050506040513d6020811015610b2c57600080fd5b50511515610b3957600080fd5b60008b8152600f602052604081205498508811610ba0576040805160e560020a62461bcd02815260206004820152601a60248201527f6d75737420626520612076616c6964207374617274207765656b000000000000604482015290519081900360640190fd5b610baa888b611e68565b9650868810610c28576040805160e560020a62461bcd028152602060048201526024808201527f6d757374206265206174206c65617374206f6e65207765656b20746f2070617960448201527f206f757400000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b86881015610d00576000888152600c602090815260408083208e845290915290205415610c6e576000888152600c602090815260408083208e8452909152902054610c70565b855b9450849550610c7e88611f62565b6000898152600560205260409020549094509250600183118015610ca25750600185115b8015610cae5750600184115b610cb9576000610ce1565b600284610ccc878663ffffffff611fb516565b811515610cd557fe5b04811515610cdf57fe5b045b9150610cf3898363ffffffff611bcf16565b9850600190970196610c28565b6000878152600c602090815260408083208e84529091529020541515610d3d576000878152600c602090815260408083208e845290915290208690555b60008b8152600f60205260409020879055610d59308c8b61202c565b604080518a8152602081018990528151600160a060020a038e16927f634235fcf5af0adbca1a405ec65f6f6c08f55e1f379c2c45cd10f23cb29e0e31928290030190a2505050505050505092915050565b600254600090600160a060020a03163314610dc457600080fd5b600154604080517f117a5b90000000000000000000000000000000000000000000000000000000008152600481018690529051600160a060020a039092169163117a5b90916024808201926020929091908290030181600087803b158015610e2b57600080fd5b505af1158015610e3f573d6000803e3d6000fd5b505050506040513d6020811015610e5557600080fd5b50519050828114610eb0576040805160e560020a62461bcd02815260206004820152601260248201527f67616d65496473206d757374206d617463680000000000000000000000000000604482015290519081900360640190fd5b60408051848152831515602082015281517f5b4957968986533a98fe0578e9917f978928aec1a9b5f937bd2d1ccbd3afb099929181900390910190a1505050565b600d6020526000908152604090205481565b600e6020526000908152604090205481565b600660209081526000928352604080842090915290825290205481565b60056020526000908152604090205481565b6000610f4e6121ca565b905090565b336000908152600e602052604081205481808080808080808811610fc1576040805160e560020a62461bcd02815260206004820152601a60248201527f6d75737420626520612076616c6964207374617274207765656b000000000000604482015290519081900360640190fd5b610fcb888b611e68565b9650868810611049576040805160e560020a62461bcd028152602060048201526024808201527f6d757374206265206174206c65617374206f6e65207765656b20746f2070617960448201527f206f757400000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b8794505b86851015611125576000858152600b6020908152604080832033845290915290205415611093576000858152600b60209081526040808320338452909152902054611095565b855b93508395506110a385611f62565b60008681526005602052604090205490935091506001821180156110c75750600184115b80156110d35750600183115b6110de576000611106565b6002836110f1868563ffffffff611fb516565b8115156110fa57fe5b0481151561110457fe5b045b9050611118898263ffffffff611bcf16565b985060019094019361104d565b6000878152600b602090815260408083203384529091529020541515611162576000878152600b6020908152604080832033845290915290208690555b336000818152600e602052604090208890556111809030908b61202c565b604080518a815260208101899052815133927f634235fcf5af0adbca1a405ec65f6f6c08f55e1f379c2c45cd10f23cb29e0e31928290030190a25050505050505050919050565b600160a060020a031660009081526004602052604090205490565b600354600160a060020a031681565b600254600090600160a060020a0316331461120b57600080fd5b600154604080517f117a5b90000000000000000000000000000000000000000000000000000000008152600481018890529051600160a060020a039092169163117a5b90916024808201926020929091908290030181600087803b15801561127257600080fd5b505af1158015611286573d6000803e3d6000fd5b505050506040513d602081101561129c57600080fd5b505190508481146112f7576040805160e560020a62461bcd02815260206004820152601260248201527f67616d65496473206d757374206d617463680000000000000000000000000000604482015290519081900360640190fd5b7f8728f0c0bc2db13d2866769cb2ad18639ecbe8bc0585443df1d158bc56a65cc985858661133357604080516020810190915260008152611364565b85858080601f0160208091040260200160405190810160405280939291908181526020018383808284375050505050505b604051808481526020018315151515815260200180602001828103825283818151815260200191508051906020019080838360005b838110156113b1578181015183820152602001611399565b50505050905090810190601f1680156113de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050505050565b6000806113ff6121ca565b83101561147c576040805160e560020a62461bcd02815260206004820152602560248201527f43757272656e74205765656b206d75737420626520657175616c206f7220677260448201527f6561746572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008381526010602052604090205461149b908563ffffffff611bcf16565b600084815260106020908152604080832084905560059091529020549092506114ca908563ffffffff611bcf16565b600084815260056020908152604091829020839055815186815290810183905281519293507ff94b2162733d4f2db563a9c01ce4072fdefdc683f58d7e171662cec2f1bc3e67929081900390910190a161073a33308661202c565b60095481565b62093a8081565b600254600160a060020a0316331461154957600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600254600160a060020a031681565b8051600090156115e1576040805160e560020a62461bcd02815260206004820152601560248201527f796f75206d7573742070617373206e6f20646174610000000000000000000000604482015290519081900360640190fd5b600054600160a060020a0384811691161461166c576040805160e560020a62461bcd02815260206004820152602e60248201527f73656e64696e672066726f6d2061206e6f6e2d4e565420636f6e74726163742060448201527f6973206e6f7420616c6c6f776564000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038516600090815260046020526040902054611695908563ffffffff611bcf16565b600160a060020a0386166000818152600460209081526040918290208490558151928352820183905280519293506000805160206121db83398151915292918290030190a160408051600160a060020a03871681526020810186905280820183905290517f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360600190a160008054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015230602483015260448201899052915191909216926323b872dd92606480820193602093909283900390910190829087803b15801561179b57600080fd5b505af11580156117af573d6000803e3d6000fd5b505050506040513d60208110156117c557600080fd5b50511515610a62576040805160e560020a62461bcd02815260206004820152601a60248201527f6d757374207375636365737366756c6c79207472616e73666572000000000000604482015290519081900360640190fd5b600b60209081526000928352604080842090915290825290205481565b60106020526000908152604090205481565b600c60209081526000928352604080842090915290825290205481565b600154604080517fdded5dd80000000000000000000000000000000000000000000000000000000081526004810185905233602482015290518492600160a060020a03169163dded5dd89160448083019260209291908290030181600087803b1580156118d557600080fd5b505af11580156118e9573d6000803e3d6000fd5b505050506040513d60208110156118ff57600080fd5b5051151561190c57600080fd5b61073c33848461202c565b60008080808080808711611975576040805160e560020a62461bcd02815260206004820152601960248201527f4d7573742062652061206e6f6e2d7a65726f206368616e676500000000000000604482015290519081900360640190fd5b33600090815260046020526040902054611995908863ffffffff611c3016565b336000818152600460209081526040918290208490558151928352820183905280519297506000805160206121db83398151915292918290030190a1600088815260066020908152604080832033845290915290205493506119fd848863ffffffff611bcf16565b600089815260086020526040902054909650611a1f908863ffffffff611bcf16565b33600090815260076020526040902054909350611a42908863ffffffff611bcf16565b600954909250610882908863ffffffff611bcf16565b600054600160a060020a031681565b60076020526000908152604090205481565b600154600160a060020a031681565b600a60209081526000938452604080852082529284528284209052825290205481565b600254600160a060020a03163314611ac257600080fd5b600160a060020a0381161515611ad757600080fd5b600254600160a060020a0382811691161415611af257600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154604080517fdded5dd80000000000000000000000000000000000000000000000000000000081526004810185905233602482015290518492600160a060020a03169163dded5dd89160448083019260209291908290030181600087803b158015611b8d57600080fd5b505af1158015611ba1573d6000803e3d6000fd5b505050506040513d6020811015611bb757600080fd5b50511515611bc457600080fd5b61073c83338461202c565b81810182811015611c2a576040805160e560020a62461bcd02815260206004820152600860248201527f616464206661696c000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b92915050565b600082821115611c8a576040805160e560020a62461bcd02815260206004820152600860248201527f737562206661696c000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b6000611c9a6121ca565b6000898152600660209081526040808320338085529083528184208a90558c84526008835281842089905583526007909152812085905560098490559091508511611ce6576001611ce8565b845b6000828152600a602090815260408083208c84528252808320600160a060020a038c1684529091528120919091558311611d23576001611d25565b825b6000828152600b60209081526040808320600160a060020a038c1684529091528120919091558411611d58576001611d5a565b835b6000828152600c602090815260408083208c84529091528120919091558211611d84576001611d86565b815b6000828152600d6020908152604080832093909355600160a060020a038a168252600e905220541515611dfc57600160a060020a0387166000908152600e60209081526040808320600019850190558a8352600f9091529020541515611dfc576000888152600f60205260409020600019820190555b6040805182815260208101889052808201879052606081018590526080810186905260a081018490529051600160a060020a038916918a917f4f93859f92d0225eddd0aa4e2264bc8f2c792a8a7ebd5592875a33d3aee0220d9181900360c00190a35050505050505050565b600080611e736121ca565b9050808410611ecc576040805160e560020a62461bcd02815260206004820152601a60248201527f6d75737420676574206174206c65617374206f6e65207765656b000000000000604482015290519081900360640190fd5b8215611eda57828401611edc565b805b915080821115611f5b576040805160e560020a62461bcd028152602060048201526024808201527f63616e277420676574206d6f7265207468616e207468652063757272656e742060448201527f7765656b00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b5092915050565b6000818152600d602052604081205490811515611faf5750815b811515611f9d57600019016000818152600d60205260409020549150611f7c565b6000838152600d602052604090208290555b50919050565b6000821515611fc657506000611c2a565b50818102818382811515611fd657fe5b0414611c2a576040805160e560020a62461bcd02815260206004820152600a60248201527f6d756c206661696c656400000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038381169083161415612090576040805160e560020a62461bcd02815260206004820152601a60248201527f63616e2774207472616e7366657220746f20796f757273656c66000000000000604482015290519081900360640190fd5b600160a060020a0383166000908152600460205260409020546120b9908263ffffffff611c3016565b600160a060020a0380851660009081526004602052604080822093909355908416815220546120ee908263ffffffff611bcf16565b600160a060020a0380841660008181526004602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3600160a060020a0383166000818152600460209081526040918290205482519384529083015280516000805160206121db8339815191529281900390910190a1600160a060020a0382166000818152600460209081526040918290205482519384529083015280516000805160206121db8339815191529281900390910190a1505050565b62093a8042635bb1637f190104905600134e340554ff8a7d64280a2a28b982df554e2595e5bf45cd39368f31099172a6a165627a7a7230582097fd233605a4d632faad84b940eee57f324707b285a890a2e4d48d63b955bc24002900000000000000000000000009d8b66c48424324b25754a873e290cae5dca439
Deployed Bytecode
0x6080604052600436106101c15763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166309e201cc81146101c657806313af4035146101f05780631cf73c131461021357806324d86f001461022e57806327e235e3146102495780632e1a7d4d1461026a5780632ed3aae31461028257806335e748fb1461029757806341f36984146102af57806346ba6f61146102ca578063535cd529146102e7578063639c5d36146102ff578063644b2b9f146103205780636d6ad2df146103445780636eb227ce1461035c5780636fe5091e1461037157806370a0823114610389578063710eb26c146103aa5780637850f0a4146103db5780637b2643f214610405578063817b1cd21461042057806384ae2a74146104355780638c25f54e1461044a5780638da5cb5b1461046b5780638f4ffcb1146104805780639ec40d2c146104f0578063a976db9b14610514578063ad88db611461052c578063b3c185a714610547578063bec10cde14610562578063cada4b191461057d578063cbac0d0a14610592578063d3f33009146105b3578063da9c7d93146105c8578063f0d85c89146105ef578063f90f11b714610610575b600080fd5b3480156101d257600080fd5b506101de60043561062b565b60408051918252519081900360200190f35b3480156101fc57600080fd5b50610211600160a060020a036004351661063d565b005b34801561021f57600080fd5b506102116004356024356106f2565b34801561023a57600080fd5b506101de600435602435610741565b34801561025557600080fd5b506101de600160a060020a036004351661089e565b34801561027657600080fd5b506102116004356108b0565b34801561028e57600080fd5b506101de610a69565b3480156102a357600080fd5b506101de600435610a71565b3480156102bb57600080fd5b506101de600435602435610a83565b3480156102d657600080fd5b506102116004356024351515610daa565b3480156102f357600080fd5b506101de600435610ef1565b34801561030b57600080fd5b506101de600160a060020a0360043516610f03565b34801561032c57600080fd5b506101de600435600160a060020a0360243516610f15565b34801561035057600080fd5b506101de600435610f32565b34801561036857600080fd5b506101de610f44565b34801561037d57600080fd5b506101de600435610f53565b34801561039557600080fd5b506101de600160a060020a03600435166111c7565b3480156103b657600080fd5b506103bf6111e2565b60408051600160a060020a039092168252519081900360200190f35b3480156103e757600080fd5b506102116004803590602480351515916044359182019101356111f1565b34801561041157600080fd5b506102116004356024356113f4565b34801561042c57600080fd5b506101de611525565b34801561044157600080fd5b506101de61152b565b34801561045657600080fd5b50610211600160a060020a0360043516611532565b34801561047757600080fd5b506103bf611578565b34801561048c57600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261021194600160a060020a038135811695602480359660443590931695369560849492019181908401838280828437509497506115879650505050505050565b3480156104fc57600080fd5b506101de600435600160a060020a036024351661181d565b34801561052057600080fd5b506101de60043561183a565b34801561053857600080fd5b506101de60043560243561184c565b34801561055357600080fd5b50610211600435602435611869565b34801561056e57600080fd5b506101de600435602435611917565b34801561058957600080fd5b506103bf611a58565b34801561059e57600080fd5b506101de600160a060020a0360043516611a67565b3480156105bf57600080fd5b506103bf611a79565b3480156105d457600080fd5b506101de600435602435600160a060020a0360443516611a88565b3480156105fb57600080fd5b50610211600160a060020a0360043516611aab565b34801561061c57600080fd5b50610211600435602435611b21565b600f6020526000908152604090205481565b600354600160a060020a0316331461065457600080fd5b600160a060020a038116151561066957600080fd5b600354600160a060020a038281169116141561068457600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038381169182179283905560408051939091168352602083019190915280517f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09281900390910190a150565b6000828152600660209081526040808320338452909152902054818110156107265761072083828403611917565b5061073c565b8181111561073c5761073a83838303610741565b505b505050565b6000808080808080871161079f576040805160e560020a62461bcd02815260206004820152601960248201527f4d7573742062652061206e6f6e2d7a65726f206368616e676500000000000000604482015290519081900360640190fd5b336000908152600460205260409020546107bf908863ffffffff611bcf16565b336000818152600460209081526040918290208490558151928352820183905280519297506000805160206121db83398151915292918290030190a160008881526006602090815260408083203384529091529020549350610827848863ffffffff611c3016565b600089815260086020526040902054909650610849908863ffffffff611c3016565b3360009081526007602052604090205490935061086c908863ffffffff611c3016565b600954909250610882908863ffffffff611c3016565b905061089388338689878787611c90565b505050505092915050565b60046020526000908152604090205481565b600080600083116108d057336000908152600460205260409020546108d2565b825b91506000821161092c576040805160e560020a62461bcd02815260206004820152601d60248201527f43616e2774207769746864726177202d207a65726f2062616c616e6365000000604482015290519081900360640190fd5b3360009081526004602052604090205461094c908363ffffffff611c3016565b3360008181526004602090815260409182902084905581519283528201859052818101839052519192507fdf273cb619d95419a9cd0ec88123a0538c85064229baa6363788f743fff90deb919081900360600190a1604080513381526020810183905281516000805160206121db833981519152929181900390910190a160008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018690529051600160a060020a039092169263a9059cbb926044808401936020939083900390910190829087803b158015610a3857600080fd5b505af1158015610a4c573d6000803e3d6000fd5b505050506040513d6020811015610a6257600080fd5b5050505050565b635bb1638081565b60086020526000908152604090205481565b600154604080517fdded5dd800000000000000000000000000000000000000000000000000000000815260048101859052336024820152905160009283928392839283928392839283928c92600160a060020a039092169163dded5dd89160448082019260209290919082900301818887803b158015610b0257600080fd5b505af1158015610b16573d6000803e3d6000fd5b505050506040513d6020811015610b2c57600080fd5b50511515610b3957600080fd5b60008b8152600f602052604081205498508811610ba0576040805160e560020a62461bcd02815260206004820152601a60248201527f6d75737420626520612076616c6964207374617274207765656b000000000000604482015290519081900360640190fd5b610baa888b611e68565b9650868810610c28576040805160e560020a62461bcd028152602060048201526024808201527f6d757374206265206174206c65617374206f6e65207765656b20746f2070617960448201527f206f757400000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b86881015610d00576000888152600c602090815260408083208e845290915290205415610c6e576000888152600c602090815260408083208e8452909152902054610c70565b855b9450849550610c7e88611f62565b6000898152600560205260409020549094509250600183118015610ca25750600185115b8015610cae5750600184115b610cb9576000610ce1565b600284610ccc878663ffffffff611fb516565b811515610cd557fe5b04811515610cdf57fe5b045b9150610cf3898363ffffffff611bcf16565b9850600190970196610c28565b6000878152600c602090815260408083208e84529091529020541515610d3d576000878152600c602090815260408083208e845290915290208690555b60008b8152600f60205260409020879055610d59308c8b61202c565b604080518a8152602081018990528151600160a060020a038e16927f634235fcf5af0adbca1a405ec65f6f6c08f55e1f379c2c45cd10f23cb29e0e31928290030190a2505050505050505092915050565b600254600090600160a060020a03163314610dc457600080fd5b600154604080517f117a5b90000000000000000000000000000000000000000000000000000000008152600481018690529051600160a060020a039092169163117a5b90916024808201926020929091908290030181600087803b158015610e2b57600080fd5b505af1158015610e3f573d6000803e3d6000fd5b505050506040513d6020811015610e5557600080fd5b50519050828114610eb0576040805160e560020a62461bcd02815260206004820152601260248201527f67616d65496473206d757374206d617463680000000000000000000000000000604482015290519081900360640190fd5b60408051848152831515602082015281517f5b4957968986533a98fe0578e9917f978928aec1a9b5f937bd2d1ccbd3afb099929181900390910190a1505050565b600d6020526000908152604090205481565b600e6020526000908152604090205481565b600660209081526000928352604080842090915290825290205481565b60056020526000908152604090205481565b6000610f4e6121ca565b905090565b336000908152600e602052604081205481808080808080808811610fc1576040805160e560020a62461bcd02815260206004820152601a60248201527f6d75737420626520612076616c6964207374617274207765656b000000000000604482015290519081900360640190fd5b610fcb888b611e68565b9650868810611049576040805160e560020a62461bcd028152602060048201526024808201527f6d757374206265206174206c65617374206f6e65207765656b20746f2070617960448201527f206f757400000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b8794505b86851015611125576000858152600b6020908152604080832033845290915290205415611093576000858152600b60209081526040808320338452909152902054611095565b855b93508395506110a385611f62565b60008681526005602052604090205490935091506001821180156110c75750600184115b80156110d35750600183115b6110de576000611106565b6002836110f1868563ffffffff611fb516565b8115156110fa57fe5b0481151561110457fe5b045b9050611118898263ffffffff611bcf16565b985060019094019361104d565b6000878152600b602090815260408083203384529091529020541515611162576000878152600b6020908152604080832033845290915290208690555b336000818152600e602052604090208890556111809030908b61202c565b604080518a815260208101899052815133927f634235fcf5af0adbca1a405ec65f6f6c08f55e1f379c2c45cd10f23cb29e0e31928290030190a25050505050505050919050565b600160a060020a031660009081526004602052604090205490565b600354600160a060020a031681565b600254600090600160a060020a0316331461120b57600080fd5b600154604080517f117a5b90000000000000000000000000000000000000000000000000000000008152600481018890529051600160a060020a039092169163117a5b90916024808201926020929091908290030181600087803b15801561127257600080fd5b505af1158015611286573d6000803e3d6000fd5b505050506040513d602081101561129c57600080fd5b505190508481146112f7576040805160e560020a62461bcd02815260206004820152601260248201527f67616d65496473206d757374206d617463680000000000000000000000000000604482015290519081900360640190fd5b7f8728f0c0bc2db13d2866769cb2ad18639ecbe8bc0585443df1d158bc56a65cc985858661133357604080516020810190915260008152611364565b85858080601f0160208091040260200160405190810160405280939291908181526020018383808284375050505050505b604051808481526020018315151515815260200180602001828103825283818151815260200191508051906020019080838360005b838110156113b1578181015183820152602001611399565b50505050905090810190601f1680156113de5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050505050565b6000806113ff6121ca565b83101561147c576040805160e560020a62461bcd02815260206004820152602560248201527f43757272656e74205765656b206d75737420626520657175616c206f7220677260448201527f6561746572000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008381526010602052604090205461149b908563ffffffff611bcf16565b600084815260106020908152604080832084905560059091529020549092506114ca908563ffffffff611bcf16565b600084815260056020908152604091829020839055815186815290810183905281519293507ff94b2162733d4f2db563a9c01ce4072fdefdc683f58d7e171662cec2f1bc3e67929081900390910190a161073a33308661202c565b60095481565b62093a8081565b600254600160a060020a0316331461154957600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600254600160a060020a031681565b8051600090156115e1576040805160e560020a62461bcd02815260206004820152601560248201527f796f75206d7573742070617373206e6f20646174610000000000000000000000604482015290519081900360640190fd5b600054600160a060020a0384811691161461166c576040805160e560020a62461bcd02815260206004820152602e60248201527f73656e64696e672066726f6d2061206e6f6e2d4e565420636f6e74726163742060448201527f6973206e6f7420616c6c6f776564000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038516600090815260046020526040902054611695908563ffffffff611bcf16565b600160a060020a0386166000818152600460209081526040918290208490558151928352820183905280519293506000805160206121db83398151915292918290030190a160408051600160a060020a03871681526020810186905280820183905290517f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159181900360600190a160008054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015230602483015260448201899052915191909216926323b872dd92606480820193602093909283900390910190829087803b15801561179b57600080fd5b505af11580156117af573d6000803e3d6000fd5b505050506040513d60208110156117c557600080fd5b50511515610a62576040805160e560020a62461bcd02815260206004820152601a60248201527f6d757374207375636365737366756c6c79207472616e73666572000000000000604482015290519081900360640190fd5b600b60209081526000928352604080842090915290825290205481565b60106020526000908152604090205481565b600c60209081526000928352604080842090915290825290205481565b600154604080517fdded5dd80000000000000000000000000000000000000000000000000000000081526004810185905233602482015290518492600160a060020a03169163dded5dd89160448083019260209291908290030181600087803b1580156118d557600080fd5b505af11580156118e9573d6000803e3d6000fd5b505050506040513d60208110156118ff57600080fd5b5051151561190c57600080fd5b61073c33848461202c565b60008080808080808711611975576040805160e560020a62461bcd02815260206004820152601960248201527f4d7573742062652061206e6f6e2d7a65726f206368616e676500000000000000604482015290519081900360640190fd5b33600090815260046020526040902054611995908863ffffffff611c3016565b336000818152600460209081526040918290208490558151928352820183905280519297506000805160206121db83398151915292918290030190a1600088815260066020908152604080832033845290915290205493506119fd848863ffffffff611bcf16565b600089815260086020526040902054909650611a1f908863ffffffff611bcf16565b33600090815260076020526040902054909350611a42908863ffffffff611bcf16565b600954909250610882908863ffffffff611bcf16565b600054600160a060020a031681565b60076020526000908152604090205481565b600154600160a060020a031681565b600a60209081526000938452604080852082529284528284209052825290205481565b600254600160a060020a03163314611ac257600080fd5b600160a060020a0381161515611ad757600080fd5b600254600160a060020a0382811691161415611af257600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154604080517fdded5dd80000000000000000000000000000000000000000000000000000000081526004810185905233602482015290518492600160a060020a03169163dded5dd89160448083019260209291908290030181600087803b158015611b8d57600080fd5b505af1158015611ba1573d6000803e3d6000fd5b505050506040513d6020811015611bb757600080fd5b50511515611bc457600080fd5b61073c83338461202c565b81810182811015611c2a576040805160e560020a62461bcd02815260206004820152600860248201527f616464206661696c000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b92915050565b600082821115611c8a576040805160e560020a62461bcd02815260206004820152600860248201527f737562206661696c000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b50900390565b6000611c9a6121ca565b6000898152600660209081526040808320338085529083528184208a90558c84526008835281842089905583526007909152812085905560098490559091508511611ce6576001611ce8565b845b6000828152600a602090815260408083208c84528252808320600160a060020a038c1684529091528120919091558311611d23576001611d25565b825b6000828152600b60209081526040808320600160a060020a038c1684529091528120919091558411611d58576001611d5a565b835b6000828152600c602090815260408083208c84529091528120919091558211611d84576001611d86565b815b6000828152600d6020908152604080832093909355600160a060020a038a168252600e905220541515611dfc57600160a060020a0387166000908152600e60209081526040808320600019850190558a8352600f9091529020541515611dfc576000888152600f60205260409020600019820190555b6040805182815260208101889052808201879052606081018590526080810186905260a081018490529051600160a060020a038916918a917f4f93859f92d0225eddd0aa4e2264bc8f2c792a8a7ebd5592875a33d3aee0220d9181900360c00190a35050505050505050565b600080611e736121ca565b9050808410611ecc576040805160e560020a62461bcd02815260206004820152601a60248201527f6d75737420676574206174206c65617374206f6e65207765656b000000000000604482015290519081900360640190fd5b8215611eda57828401611edc565b805b915080821115611f5b576040805160e560020a62461bcd028152602060048201526024808201527f63616e277420676574206d6f7265207468616e207468652063757272656e742060448201527f7765656b00000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b5092915050565b6000818152600d602052604081205490811515611faf5750815b811515611f9d57600019016000818152600d60205260409020549150611f7c565b6000838152600d602052604090208290555b50919050565b6000821515611fc657506000611c2a565b50818102818382811515611fd657fe5b0414611c2a576040805160e560020a62461bcd02815260206004820152600a60248201527f6d756c206661696c656400000000000000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038381169083161415612090576040805160e560020a62461bcd02815260206004820152601a60248201527f63616e2774207472616e7366657220746f20796f757273656c66000000000000604482015290519081900360640190fd5b600160a060020a0383166000908152600460205260409020546120b9908263ffffffff611c3016565b600160a060020a0380851660009081526004602052604080822093909355908416815220546120ee908263ffffffff611bcf16565b600160a060020a0380841660008181526004602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3600160a060020a0383166000818152600460209081526040918290205482519384529083015280516000805160206121db8339815191529281900390910190a1600160a060020a0382166000818152600460209081526040918290205482519384529083015280516000805160206121db8339815191529281900390910190a1505050565b62093a8042635bb1637f190104905600134e340554ff8a7d64280a2a28b982df554e2595e5bf45cd39368f31099172a6a165627a7a7230582097fd233605a4d632faad84b940eee57f324707b285a890a2e4d48d63b955bc240029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000009d8b66c48424324b25754a873e290cae5dca439
-----Decoded View---------------
Arg [0] : _nvtContract (address): 0x09D8b66C48424324b25754A873e290caE5dca439
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000009d8b66c48424324b25754a873e290cae5dca439
Swarm Source
bzzr://97fd233605a4d632faad84b940eee57f324707b285a890a2e4d48d63b955bc24
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.