Contract 0x8ac4da82c4a1e0c1578558c5c685f8ae790da5a3

 

TxHash Block Age From To Value [TxFee]
0x346f8d6cba73feea10a97059aed5c217ab23cd2ecaba9a9ffa3f556cf67716c86332511157 days 22 hrs ago0x4ece223a70f46056419957ebda1e31d5d79ff03a IN  0x8ac4da82c4a1e0c1578558c5c685f8ae790da5a30 Ether0.00034438
0xe868480459b80a1e84305550ce2ed127010e4d90e8d9ef7f8fc75d826878dc596332424157 days 22 hrs ago0x4ece223a70f46056419957ebda1e31d5d79ff03a IN  Contract Creation0 Ether0.0059510094
[ Download CSV Export 

Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
Contract Source Code Verified (Exact Match)
Contract Name: StorageMarket
Compiler Version: v0.4.25+commit.59dbf8f1
Optimization Enabled: No
Runs (Optimizer):  200


Contract Source Code
pragma solidity ^0.4.23; 
 
/*    
* Author:  Konstantin G...
* Telegram: @bunnygame
* 
* email: [email protected]
* site : http://bunnycoin.co
* @title Ownable
* @dev The Ownable contract has an owner address, and provides basic authorization control
* functions, this simplifies the implementation of "user permissions".
*/

contract Ownable {
    
    address owner;
    address ownerMoney;   
    
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
 

    /**
    * @dev The Ownable constructor sets the original `owner` of the contract to the sender
    * account.
    */    
    constructor() public {
        owner = msg.sender;
        ownerMoney = msg.sender;
    }

    /**
    * @dev Throws if called by any account other than the owner.
    */
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

 

    function transferMoney(address _add) public  onlyOwner {
        if (_add != address(0)) {
            ownerMoney = _add;
        }
    }
    
 
    function transferOwner(address _add) public onlyOwner {
        if (_add != address(0)) {
            owner = _add;
        }
    } 
      
    function getOwnerMoney() public view onlyOwner returns(address) {
        return ownerMoney;
    } 
 
}

 

/**
 * @title Whitelist
 * @dev The Whitelist contract has a whitelist of addresses, and provides basic authorization control functions.
 * @dev This simplifies the implementation of "user permissions".
 */
contract Whitelist is Ownable {
    mapping(address => bool) public whitelist;

    mapping(uint  => address)   whitelistCheck;
    uint public countAddress = 0;

    event WhitelistedAddressAdded(address addr);
    event WhitelistedAddressRemoved(address addr);
 
  /**
   * @dev Throws if called by any account that's not whitelisted.
   */
    modifier onlyWhitelisted() {
        require(whitelist[msg.sender]);
        _;
    }

    constructor() public {
            whitelist[msg.sender] = true;  
    }

  /**
   * @dev add an address to the whitelist
   * @param addr address
   * @return true if the address was added to the whitelist, false if the address was already in the whitelist
   */
    function addAddressToWhitelist(address addr) onlyWhitelisted public returns(bool success) {
        if (!whitelist[addr]) {
            whitelist[addr] = true;

            countAddress = countAddress + 1;
            whitelistCheck[countAddress] = addr;

            emit WhitelistedAddressAdded(addr);
            success = true;
        }
    }

    function getWhitelistCheck(uint key) onlyWhitelisted view public returns(address) {
        return whitelistCheck[key];
    }


    function getInWhitelist(address addr) public view returns(bool) {
        return whitelist[addr];
    }
 
    /**
    * @dev add addresses to the whitelist
    * @param addrs addresses
    * @return true if at least one address was added to the whitelist,
    * false if all addresses were already in the whitelist
    */
    function addAddressesToWhitelist(address[] addrs) onlyOwner public returns(bool success) {
        for (uint256 i = 0; i < addrs.length; i++) {
            if (addAddressToWhitelist(addrs[i])) {
                success = true;
            }
        }
    }

    /**
    * @dev remove an address from the whitelist
    * @param addr address
    * @return true if the address was removed from the whitelist,
    * false if the address wasn't in the whitelist in the first place
    */
    function removeAddressFromWhitelist(address addr) onlyOwner public returns(bool success) {
        if (whitelist[addr]) {
            whitelist[addr] = false;
            emit WhitelistedAddressRemoved(addr);
            success = true;
        }
    }

    /**
    * @dev remove addresses from the whitelist
    * @param addrs addresses
    * @return true if at least one address was removed from the whitelist,
    * false if all addresses weren't in the whitelist in the first place
    */
    function removeAddressesFromWhitelist(address[] addrs) onlyOwner public returns(bool success) {
        for (uint256 i = 0; i < addrs.length; i++) {
            if (removeAddressFromWhitelist(addrs[i])) {
                success = true;
            }
        }
    }
}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}
 
contract StorageMarket  is Whitelist {

  using SafeMath for uint256;
 
    // the last cost of a sold seal
    uint public lastmoney = 0;   
    uint public lastBunny = 0;   
    uint public countBunny = 0;   


    bool public pause = false; 

    // how many a bunny
    mapping (uint32 => uint) public bunnyCost;

    event AddCost(uint32 bunnyId, uint money);
    event DeleteCost(uint32 bunnyId);

    function setPause() public onlyWhitelisted {
        pause = !pause;
    }

    function isPauseSave() public  view returns(bool){
        return !pause;
    }


    function setBunnyCost(uint32 _bunnyID, uint _money) external onlyWhitelisted {
        require(isPauseSave());
        lastmoney = _money;   
        lastBunny = _bunnyID;  
        bunnyCost[_bunnyID] = _money;
        if (bunnyCost[_bunnyID] == 0) { 
            countBunny = countBunny.add(1);
        }
        emit AddCost(_bunnyID, _money);
    }
    
    function getBunnyCost(uint32 _bunnyID) public view returns (uint money) {
        return bunnyCost[_bunnyID];
    }

    function deleteBunnyCost(uint32 _bunnyID) external onlyWhitelisted { 
        require(isPauseSave()); 
        bunnyCost[_bunnyID] = 0;
        if (bunnyCost[_bunnyID] != 0) { 
            countBunny = countBunny.sub(1);
            emit DeleteCost(_bunnyID); 
        }
    }
 
}

Contract ABI
[{"constant":false,"inputs":[{"name":"_bunnyID","type":"uint32"},{"name":"_money","type":"uint256"}],"name":"setBunnyCost","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint32"}],"name":"bunnyCost","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addrs","type":"address[]"}],"name":"removeAddressesFromWhitelist","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"removeAddressFromWhitelist","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getInWhitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"countAddress","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_add","type":"address"}],"name":"transferOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getOwnerMoney","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_bunnyID","type":"uint32"}],"name":"getBunnyCost","outputs":[{"name":"money","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastmoney","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isPauseSave","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"addAddressToWhitelist","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pause","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"key","type":"uint256"}],"name":"getWhitelistCheck","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_add","type":"address"}],"name":"transferMoney","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"lastBunny","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_bunnyID","type":"uint32"}],"name":"deleteBunnyCost","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"setPause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"countBunny","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addrs","type":"address[]"}],"name":"addAddressesToWhitelist","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bunnyId","type":"uint32"},{"indexed":false,"name":"money","type":"uint256"}],"name":"AddCost","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"bunnyId","type":"uint32"}],"name":"DeleteCost","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"}],"name":"WhitelistedAddressAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"}],"name":"WhitelistedAddressRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

Contract Creation Code
608060405260006004556000600555600060065560006007556000600860006101000a81548160ff021916908315150217905550336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506112848061011b6000396000f30060806040526004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806318997b3f1461012257806320ad6c7f1461015f57806324953eaa146101a6578063286dd3f514610224578063336968f11461027f57806342154e9c146102da5780634fb2e45d14610305578063625101d514610348578063650746901461039f5780636f00ad8a146103e65780637878b66a146104115780637b9417c8146104405780638456cb591461049b57806386c6c011146104ca57806386ce9835146105375780638dadd6f41461057a5780639a16be46146105a55780639b19251a146105d8578063d431b1ac14610633578063d7816b7d1461064a578063e2ec6ec314610675575b600080fd5b34801561012e57600080fd5b5061015d600480360381019080803563ffffffff169060200190929190803590602001909291905050506106f3565b005b34801561016b57600080fd5b50610190600480360381019080803563ffffffff16906020019092919050505061082a565b6040518082815260200191505060405180910390f35b3480156101b257600080fd5b5061020a60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610842565b604051808215151515815260200191505060405180910390f35b34801561023057600080fd5b50610265600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108eb565b604051808215151515815260200191505060405180910390f35b34801561028b57600080fd5b506102c0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a5f565b604051808215151515815260200191505060405180910390f35b3480156102e657600080fd5b506102ef610ab5565b6040518082815260200191505060405180910390f35b34801561031157600080fd5b50610346600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610abb565b005b34801561035457600080fd5b5061035d610b90565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103ab57600080fd5b506103d0600480360381019080803563ffffffff169060200190929190505050610c15565b6040518082815260200191505060405180910390f35b3480156103f257600080fd5b506103fb610c3e565b6040518082815260200191505060405180910390f35b34801561041d57600080fd5b50610426610c44565b604051808215151515815260200191505060405180910390f35b34801561044c57600080fd5b50610481600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c5c565b604051808215151515815260200191505060405180910390f35b3480156104a757600080fd5b506104b0610e2e565b604051808215151515815260200191505060405180910390f35b3480156104d657600080fd5b506104f560048036038101908080359060200190929190505050610e41565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561054357600080fd5b50610578600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ed6565b005b34801561058657600080fd5b5061058f610fac565b6040518082815260200191505060405180910390f35b3480156105b157600080fd5b506105d6600480360381019080803563ffffffff169060200190929190505050610fb2565b005b3480156105e457600080fd5b50610619600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110ce565b604051808215151515815260200191505060405180910390f35b34801561063f57600080fd5b506106486110ee565b005b34801561065657600080fd5b5061065f611172565b6040518082815260200191505060405180910390f35b34801561068157600080fd5b506106d960048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611178565b604051808215151515815260200191505060405180910390f35b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561074b57600080fd5b610753610c44565b151561075e57600080fd5b806005819055508163ffffffff1660068190555080600960008463ffffffff1663ffffffff168152602001908152602001600020819055506000600960008463ffffffff1663ffffffff1681526020019081526020016000205414156107db576107d4600160075461122190919063ffffffff16565b6007819055505b7f45beea53d17c8914bf07db1451c4893db371796cd613c8cfef40b8d9f328c5dc8282604051808363ffffffff1663ffffffff1681526020018281526020019250505060405180910390a15050565b60096020528060005260406000206000915090505481565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108a057600080fd5b600090505b82518110156108e5576108ce83828151811015156108bf57fe5b906020019060200201516108eb565b156108d857600191505b80806001019150506108a5565b50919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561094857600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610a5a576000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507ff1abf01a1043b7c244d128e8595cf0c1d10743b022b03a02dffd8ca3bf729f5a82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1600190505b919050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60045481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b1657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515610b8d57806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bed57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600960008363ffffffff1663ffffffff168152602001908152602001600020549050919050565b60055481565b6000600860009054906101000a900460ff1615905090565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610cb657600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610e29576001600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600454016004819055508160036000600454815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fd1bba68c128cc3f427e5831b3c6f99f480b6efa6b9e80c757768f6124158cc3f82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1600190505b919050565b600860009054906101000a900460ff1681565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610e9b57600080fd5b6003600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f3157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515610fa95780600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b60065481565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561100a57600080fd5b611012610c44565b151561101d57600080fd5b6000600960008363ffffffff1663ffffffff168152602001908152602001600020819055506000600960008363ffffffff1663ffffffff168152602001908152602001600020541415156110cb57611081600160075461123f90919063ffffffff16565b6007819055507f4b1b32f6b4fb88482afbd4e495a6534013083b0f84775d0fe65fea7b32c733c481604051808263ffffffff1663ffffffff16815260200191505060405180910390a15b50565b60026020528060005260406000206000915054906101000a900460ff1681565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561114657600080fd5b600860009054906101000a900460ff1615600860006101000a81548160ff021916908315150217905550565b60075481565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111d657600080fd5b600090505b825181101561121b5761120483828151811015156111f557fe5b90602001906020020151610c5c565b1561120e57600191505b80806001019150506111db565b50919050565b600080828401905083811015151561123557fe5b8091505092915050565b600082821115151561124d57fe5b8183039050929150505600a165627a7a72305820c80c1eaee88c0946d650686cf807b1f665d8d6249ba77e186537a717c90c1f8a0029


   Swarm Source:
bzzr://c80c1eaee88c0946d650686cf807b1f665d8d6249ba77e186537a717c90c1f8a
Block Age transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.