ETH Price: $2,515.82 (-0.28%)

Contract

0x8abe0a9b8A1C8a003354E61F3ed8befdeb7D2CEc
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer59113602018-07-05 18:23:522311 days ago1530815032IN
Fake_Phishing201480
0 ETH0.0037222245
Transfer59112892018-07-05 18:05:132311 days ago1530813913IN
Fake_Phishing201480
0 ETH0.0047001956
Transfer58702462018-06-28 17:28:282318 days ago1530206908IN
Fake_Phishing201480
0 ETH0.000419665
Burn Unsold58593492018-06-26 20:22:252319 days ago1530044545IN
Fake_Phishing201480
0 ETH0.000061313
Set Bonus58593242018-06-26 20:16:082319 days ago1530044168IN
Fake_Phishing201480
0 ETH0.000125883
Approve Dividend...58593112018-06-26 20:12:482319 days ago1530043968IN
Fake_Phishing201480
0 ETH0.000470113
Send58592462018-06-26 19:54:572319 days ago1530042897IN
Fake_Phishing201480
0 ETH0.000200672
Send58589672018-06-26 18:42:072319 days ago1530038527IN
Fake_Phishing201480
0 ETH0.000802168
Approve58588542018-06-26 18:16:082320 days ago1530036968IN
Fake_Phishing201480
0 ETH0.0009163820
Send58588492018-06-26 18:14:372320 days ago1530036877IN
Fake_Phishing201480
0 ETH0.0004368
Transfer From58588342018-06-26 18:10:312320 days ago1530036631IN
Fake_Phishing201480
0 ETH0.000179597
Approve58587372018-06-26 17:47:322320 days ago1530035252IN
Fake_Phishing201480
0 ETH0.0008247418
Send58587292018-06-26 17:44:522320 days ago1530035092IN
Fake_Phishing201480
0 ETH0.000802688
Send58587272018-06-26 17:43:572320 days ago1530035037IN
Fake_Phishing201480
0 ETH0.00016917
Send58587202018-06-26 17:42:362320 days ago1530034956IN
Fake_Phishing201480
0 ETH0.000702347
Send58587132018-06-26 17:41:282320 days ago1530034888IN
Fake_Phishing201480
0 ETH0.000120795
Send58586862018-06-26 17:37:142320 days ago1530034634IN
Fake_Phishing201480
0 ETH0.000501355
0x6060604058586752018-06-26 17:33:092320 days ago1530034389IN
 Contract Creation
0 ETH0.0126785411

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xC16b542f...c3e357cA6
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
IceRockMining

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-01-19
*/

pragma solidity ^0.4.18;

library itMaps {

    /* itMapAddressUint
         address =>  Uint
    */
    struct entryAddressUint {
    // Equal to the index of the key of this item in keys, plus 1.
    uint keyIndex;
    uint value;
    }

    struct itMapAddressUint {
    mapping(address => entryAddressUint) data;
    address[] keys;
    }

    function insert(itMapAddressUint storage self, address key, uint value) internal returns (bool replaced) {
        entryAddressUint storage e = self.data[key];
        e.value = value;
        if (e.keyIndex > 0) {
            return true;
        } else {
            e.keyIndex = ++self.keys.length;
            self.keys[e.keyIndex - 1] = key;
            return false;
        }
    }

    function remove(itMapAddressUint storage self, address key) internal returns (bool success) {
        entryAddressUint storage e = self.data[key];
        if (e.keyIndex == 0)
        return false;

        if (e.keyIndex <= self.keys.length) {
            // Move an existing element into the vacated key slot.
            self.data[self.keys[self.keys.length - 1]].keyIndex = e.keyIndex;
            self.keys[e.keyIndex - 1] = self.keys[self.keys.length - 1];
            self.keys.length -= 1;
            delete self.data[key];
            return true;
        }
    }

    function destroy(itMapAddressUint storage self) internal  {
        for (uint i; i<self.keys.length; i++) {
            delete self.data[ self.keys[i]];
        }
        delete self.keys;
        return ;
    }

    function contains(itMapAddressUint storage self, address key) internal constant returns (bool exists) {
        return self.data[key].keyIndex > 0;
    }

    function size(itMapAddressUint storage self) internal constant returns (uint) {
        return self.keys.length;
    }

    function get(itMapAddressUint storage self, address key) internal constant returns (uint) {
        return self.data[key].value;
    }

    function getKeyByIndex(itMapAddressUint storage self, uint idx) internal constant returns (address) {
        return self.keys[idx];
    }

    function getValueByIndex(itMapAddressUint storage self, uint idx) internal constant returns (uint) {
        return self.data[self.keys[idx]].value;
    }
}

contract ERC20 {
    function totalSupply() public constant returns (uint256 supply);
    function balanceOf(address who) public constant returns (uint value);
    function allowance(address owner, address spender) public constant returns (uint _allowance);

    function transfer(address to, uint value) public returns (bool ok);
    function transferFrom(address from, address to, uint value) public returns (bool ok);
    function approve(address spender, uint value) public returns (bool ok);

    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
}

contract IceRockMining is ERC20{
    using itMaps for itMaps.itMapAddressUint;


    uint256 initialSupply = 20000000;
    string public constant name = "ICE ROCK MINING";
    string public constant symbol = "ROCK2";
    uint currentUSDExchangeRate = 1340;
    uint bonus = 0;
    uint priceUSD = 1;
    address IceRockMiningAddress;

    itMaps.itMapAddressUint balances;


    mapping (address => mapping (address => uint256)) allowed;
    mapping (address => uint256) approvedDividends;

    event Burned(address indexed from, uint amount);
    event DividendsTransfered(address to, uint amount);


    modifier onlyOwner {
        if (msg.sender == IceRockMiningAddress) {
            _;
        }
    }

    function totalSupply() public constant returns (uint256) {
        return initialSupply;
    }

    function balanceOf(address tokenHolder) public view returns (uint256 balance) {
        return balances.get(tokenHolder);
    }

    function allowance(address owner, address spender) public constant returns (uint256) {
        return allowed[owner][spender];
    }


    function transfer(address to, uint value) public returns (bool success) {
        if (balances.get(msg.sender) >= value && value > 0) {

            balances.insert(msg.sender, balances.get(msg.sender)-value);

            if (balances.contains(to)) {
                balances.insert(to, balances.get(to)+value);
            }
            else {
                balances.insert(to, value);
            }

            Transfer(msg.sender, to, value);

            return true;

        } else return false;
    }

    function transferFrom(address from, address to, uint256 value) public returns (bool success) {
        if (balances.get(from) >= value && allowed[from][msg.sender] >= value && value > 0) {

            uint amountToInsert = value;

            if (balances.contains(to))
            amountToInsert = amountToInsert+balances.get(to);

            balances.insert(to, amountToInsert);
            balances.insert(from, balances.get(from) - value);
            allowed[from][msg.sender] = allowed[from][msg.sender] - value;
            Transfer(from, to, value);
            return true;
        } else
        return false;
    }

    function approve(address spender, uint value) public returns (bool success) {
        if ((value != 0) && (balances.get(msg.sender) >= value)){
            allowed[msg.sender][spender] = value;
            Approval(msg.sender, spender, value);
            return true;
        } else{
            return false;
        }
    }

    function IceRockMining() public {
        IceRockMiningAddress = msg.sender;
        balances.insert(IceRockMiningAddress, initialSupply);
    }

    function setCurrentExchangeRate (uint rate) public onlyOwner{
        currentUSDExchangeRate = rate;
    }

    function setBonus (uint value) public onlyOwner{
        bonus = value;
    }

    function send(address addr, uint amount) public onlyOwner {
        sendp(addr, amount);
    }

    function sendp(address addr, uint amount) internal {
        require(addr != IceRockMiningAddress);
        require(amount > 0);
        require (balances.get(IceRockMiningAddress)>=amount);


        if (balances.contains(addr)) {
            balances.insert(addr, balances.get(addr)+amount);
        }
        else {
            balances.insert(addr, amount);
        }

        balances.insert(IceRockMiningAddress, balances.get(IceRockMiningAddress)-amount);
        Transfer(IceRockMiningAddress, addr, amount);
    }

    function () public payable{
        uint amountInUSDollars = msg.value * currentUSDExchangeRate / 10**18;
        uint valueToPass = amountInUSDollars / priceUSD;
        valueToPass = (valueToPass * (100 + bonus))/100;

        if (balances.get(IceRockMiningAddress) >= valueToPass) {
            if (balances.contains(msg.sender)) {
                balances.insert(msg.sender, balances.get(msg.sender)+valueToPass);
            }
            else {
                balances.insert(msg.sender, valueToPass);
            }
            balances.insert(IceRockMiningAddress, balances.get(IceRockMiningAddress)-valueToPass);
            Transfer(IceRockMiningAddress, msg.sender, valueToPass);
        }
    }

    function approveDividends (uint totalDividendsAmount) public onlyOwner {
        uint256 dividendsPerToken = totalDividendsAmount*10**18 / initialSupply;
        for (uint256 i = 0; i<balances.size(); i += 1) {
            address tokenHolder = balances.getKeyByIndex(i);
            if (balances.get(tokenHolder)>0)
            approvedDividends[tokenHolder] = balances.get(tokenHolder)*dividendsPerToken;
        }
    }

    function burnUnsold() public onlyOwner returns (bool success) {
        uint burningAmount = balances.get(IceRockMiningAddress);
        initialSupply -= burningAmount;
        balances.insert(IceRockMiningAddress, 0);
        Burned(IceRockMiningAddress, burningAmount);
        return true;
    }

    function approvedDividendsOf(address tokenHolder) public view returns (uint256) {
        return approvedDividends[tokenHolder];
    }

    function transferAllDividends() public onlyOwner{
        for (uint256 i = 0; i< balances.size(); i += 1) {
            address tokenHolder = balances.getKeyByIndex(i);
            if (approvedDividends[tokenHolder] > 0)
            {
                tokenHolder.transfer(approvedDividends[tokenHolder]);
                DividendsTransfered (tokenHolder, approvedDividends[tokenHolder]);
                approvedDividends[tokenHolder] = 0;
            }
        }
    }

    function withdraw(uint amount) public onlyOwner{
        IceRockMiningAddress.transfer(amount);
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"setBonus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenHolder","type":"address"}],"name":"approvedDividendsOf","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":false,"inputs":[],"name":"transferAllDividends","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenHolder","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"rate","type":"uint256"}],"name":"setCurrentExchangeRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"totalDividendsAmount","type":"uint256"}],"name":"approveDividends","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"burnUnsold","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"amount","type":"uint256"}],"name":"send","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Burned","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"DividendsTransfered","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":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]

Deployed Bytecode

0x6060604052600436106100e55763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461020f578063095ea7b3146102995780630b98f975146102cf57806318160ddd146102e757806323b872dd1461030c57806326ea74e2146103345780632e1a7d4d146103535780633deaa2971461036957806370a082311461037c57806386485cdf1461039b57806395d89b41146103b1578063a9059cbb146103c4578063b4f2dc7d146103e6578063b52a5851146103fc578063d0679d341461040f578063dd62ed3e14610431575b600080670de0b6b3a764000060015434028115156100ff57fe5b0491506003548281151561010f57fe5b0490506064600254606401820281151561012557fe5b6004549190049150819061014a90600590600160a060020a031663ffffffff61045616565b1061020b5761016060053363ffffffff61047916565b156101915761018b338261017b60058363ffffffff61045616565b600592910163ffffffff61049616565b506101a5565b6101a36005338363ffffffff61049616565b505b6004546101d890600160a060020a0316826101c760058363ffffffff61045616565b60059291900363ffffffff61049616565b50600454600160a060020a033381169116600080516020610d1b8339815191528360405190815260200160405180910390a35b5050005b341561021a57600080fd5b610222610536565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561025e578082015183820152602001610246565b50505050905090810190601f16801561028b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102a457600080fd5b6102bb600160a060020a036004351660243561056d565b604051901515815260200160405180910390f35b34156102da57600080fd5b6102e5600435610603565b005b34156102f257600080fd5b6102fa610623565b60405190815260200160405180910390f35b341561031757600080fd5b6102bb600160a060020a036004358116906024351660443561062a565b341561033f57600080fd5b6102fa600160a060020a0360043516610740565b341561035e57600080fd5b6102e560043561075b565b341561037457600080fd5b6102e56107a5565b341561038757600080fd5b6102fa600160a060020a03600435166108d3565b34156103a657600080fd5b6102e56004356108e6565b34156103bc57600080fd5b610222610902565b34156103cf57600080fd5b6102bb600160a060020a0360043516602435610939565b34156103f157600080fd5b6102e56004356109fa565b341561040757600080fd5b6102bb610ab4565b341561041a57600080fd5b6102e5600160a060020a0360043516602435610b64565b341561043c57600080fd5b6102fa600160a060020a0360043581169060243516610b85565b600160a060020a0381166000908152602083905260409020600101545b92915050565b600160a060020a0316600090815260209190915260408120541190565b600160a060020a0382166000908152602084905260408120600181018390558054829011156104c8576001915061052e565b84600101805460010190816104dd9190610cd7565b8082556001860180548692600019019081106104f557fe5b60009182526020822001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03939093169290921790915591505b509392505050565b60408051908101604052600f81527f49434520524f434b204d494e494e470000000000000000000000000000000000602082015281565b6000811580159061058e57508161058b60053363ffffffff61045616565b10155b156105fb57600160a060020a03338116600081815260076020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a3506001610473565b506000610473565b60045433600160a060020a03908116911614156106205760028190555b50565b6000545b90565b6000808261063f60058763ffffffff61045616565b101580156106745750600160a060020a0380861660009081526007602090815260408083203390941683529290522054839010155b80156106805750600083115b1561073757508161069860058563ffffffff61047916565b156106b0576106ae60058563ffffffff61045616565b015b6106c26005858363ffffffff61049616565b506106d985846101c760058363ffffffff61045616565b50600160a060020a0385811660008181526007602090815260408083203386168452909152908190208054879003905591861691600080516020610d1b8339815191529086905190815260200160405180910390a36001915061052e565b6000915061052e565b600160a060020a031660009081526008602052604090205490565b60045433600160a060020a039081169116141561062057600454600160a060020a031681156108fc0282604051600060405180830381858888f19350505050151561062057600080fd5b600454600090819033600160a060020a03908116911614156108cf57600091505b6107d06005610bb0565b8210156108cf576107e860058363ffffffff610bb716565b600160a060020a0381166000908152600860205260408120549192509011156108c457600160a060020a038116600081815260086020526040908190205480156108fc029151600060405180830381858888f19350505050151561084b57600080fd5b600160a060020a03811660009081526008602052604090819020547f9717b2ae855611c348fbbb879a1f7a5a266b20bd91cd3bbaf968ef458588eed99183919051600160a060020a03909216825260208201526040908101905180910390a1600160a060020a0381166000908152600860205260408120555b6001820191506107c6565b5050565b600061047360058363ffffffff61045616565b60045433600160a060020a039081169116141561062057600155565b60408051908101604052600581527f524f434b32000000000000000000000000000000000000000000000000000000602082015281565b60008161094d60053363ffffffff61045616565b1015801561095b5750600082115b156105fb5761097633836101c760058363ffffffff61045616565b5061098860058463ffffffff61047916565b156109a9576109a3838361017b60058363ffffffff61045616565b506109bd565b6109bb6005848463ffffffff61049616565b505b82600160a060020a031633600160a060020a0316600080516020610d1b8339815191528460405190815260200160405180910390a3506001610473565b6004546000908190819033600160a060020a0390811691161415610aae5760005484670de0b6b3a764000002811515610a2f57fe5b049250600091505b610a416005610bb0565b821015610aae57610a5960058363ffffffff610bb716565b90506000610a6e60058363ffffffff61045616565b1115610aa35782610a8660058363ffffffff61045616565b600160a060020a0383166000908152600860205260409020910290555b600182019150610a37565b50505050565b600454600090819033600160a060020a0390811691161415610b6057600454610aee90600590600160a060020a031663ffffffff61045616565b600080548290038155600454919250610b1b91600591600160a060020a039091169063ffffffff61049616565b50600454600160a060020a03167f696de425f79f4a40bc6d2122ca50507f0efbeabbff86a84871b7196ab8ea8df78260405190815260200160405180910390a2600191505b5090565b60045433600160a060020a03908116911614156108cf576108cf8282610be6565b600160a060020a03918216600090815260076020908152604080832093909416825291909152205490565b6001015490565b60008260010182815481101515610bca57fe5b600091825260209091200154600160a060020a03169392505050565b600454600160a060020a0383811691161415610c0157600080fd5b60008111610c0e57600080fd5b6004548190610c2e90600590600160a060020a031663ffffffff61045616565b1015610c3957600080fd5b610c4a60058363ffffffff61047916565b15610c6b57610c65828261017b60058363ffffffff61045616565b50610c7f565b610c7d6005838363ffffffff61049616565b505b600454610ca190600160a060020a0316826101c760058363ffffffff61045616565b50600454600160a060020a038084169116600080516020610d1b8339815191528360405190815260200160405180910390a35050565b815481835581811511610cfb57600083815260209020610cfb918101908301610d00565b505050565b61062791905b80821115610b605760008155600101610d065600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a7230582074542cd91454a45bd8516bd955edac36b5cb8bd794e894a7ef1f218ad7c1d5620029

Swarm Source

bzzr://74542cd91454a45bd8516bd955edac36b5cb8bd794e894a7ef1f218ad7c1d562

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.