ETH Price: $2,153.10 (+0.61%)

Contract

0xb2b140f098D2a1e71AC5F70cb896bB32F80E97f2
 

Overview

ETH Balance

0.2117373875 ETH

Eth Value

$455.89 (@ $2,153.10/ETH)

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Enter167747572023-03-07 6:51:231109 days ago1678171883IN
0xb2b140f0...2F80E97f2
0 ETH0.0017918620.80832952
Enter167604512023-03-05 6:34:231111 days ago1677998063IN
0xb2b140f0...2F80E97f2
0 ETH0.0017029519.77586315
Enter167522352023-03-04 2:52:231113 days ago1677898343IN
0xb2b140f0...2F80E97f2
0 ETH0.0014095316.36842484
Transfer167402482023-03-02 10:19:591114 days ago1677752399IN
0xb2b140f0...2F80E97f2
0.2 ETH0.0003890718.47919399
Enter167401802023-03-02 10:06:111114 days ago1677751571IN
0xb2b140f0...2F80E97f2
0 ETH0.0019083522.16099936
Spin167367652023-03-01 22:34:111115 days ago1677710051IN
0xb2b140f0...2F80E97f2
0 ETH0.0010920130.0342128
Enter167366332023-03-01 22:07:231115 days ago1677708443IN
0xb2b140f0...2F80E97f2
0 ETH0.0025884230.05845871
Enter167365092023-03-01 21:42:231115 days ago1677706943IN
0xb2b140f0...2F80E97f2
0 ETH0.0011228928.76119761
Enter167364702023-03-01 21:34:351115 days ago1677706475IN
0xb2b140f0...2F80E97f2
0 ETH0.0025713329.8600355
Enter167363782023-03-01 21:16:111115 days ago1677705371IN
0xb2b140f0...2F80E97f2
0 ETH0.0025618529.7498963
Enter167363242023-03-01 21:05:231115 days ago1677704723IN
0xb2b140f0...2F80E97f2
0 ETH0.0026440930.70493793
Enter167344942023-03-01 14:55:111115 days ago1677682511IN
0xb2b140f0...2F80E97f2
0 ETH0.0029678134.46422657
Enter167154582023-02-26 22:44:591118 days ago1677451499IN
0xb2b140f0...2F80E97f2
0 ETH0.0021038824.43166177
Enter167146472023-02-26 20:00:591118 days ago1677441659IN
0xb2b140f0...2F80E97f2
0 ETH0.002372727.55341014
Enter167127982023-02-26 13:46:591118 days ago1677419219IN
0xb2b140f0...2F80E97f2
0 ETH0.0016294618.92240707
Enter167115802023-02-26 9:40:471118 days ago1677404447IN
0xb2b140f0...2F80E97f2
0 ETH0.0007068118.10406411
Enter167115782023-02-26 9:40:231118 days ago1677404423IN
0xb2b140f0...2F80E97f2
0 ETH0.0016434219.08447018
Enter167099152023-02-26 4:04:471119 days ago1677384287IN
0xb2b140f0...2F80E97f2
0 ETH0.0016268318.89186599
Enter167050442023-02-25 11:36:351119 days ago1677324995IN
0xb2b140f0...2F80E97f2
0 ETH0.0016231818.84947628
Enter167049462023-02-25 11:16:471119 days ago1677323807IN
0xb2b140f0...2F80E97f2
0 ETH0.0019057122.1303711
Enter167048092023-02-25 10:49:111119 days ago1677322151IN
0xb2b140f0...2F80E97f2
0 ETH0.0017736920.59734498
Enter167018262023-02-25 0:45:471120 days ago1677285947IN
0xb2b140f0...2F80E97f2
0 ETH0.0020485923.78957546
Enter166901682023-02-23 9:20:471121 days ago1677144047IN
0xb2b140f0...2F80E97f2
0 ETH0.0011442229.30744079
Enter166901682023-02-23 9:20:471121 days ago1677144047IN
0xb2b140f0...2F80E97f2
0 ETH0.0025237529.30744079
Enter166899612023-02-23 8:38:231121 days ago1677141503IN
0xb2b140f0...2F80E97f2
0 ETH0.0011524127.54211904
View all transactions

Latest 17 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer177490822023-07-22 13:51:47972 days ago1690033907
0xb2b140f0...2F80E97f2
0.00033 ETH
Transfer177485102023-07-22 11:56:11972 days ago1690026971
0xb2b140f0...2F80E97f2
0.0002475 ETH
Transfer177485102023-07-22 11:56:11972 days ago1690026971
0xb2b140f0...2F80E97f2
0.000285 ETH
Transfer177485102023-07-22 11:56:11972 days ago1690026971
0xb2b140f0...2F80E97f2
0.00033 ETH
Transfer177484642023-07-22 11:46:59972 days ago1690026419
0xb2b140f0...2F80E97f2
0.000225 ETH
Transfer176790962023-07-12 17:56:47982 days ago1689184607
0xb2b140f0...2F80E97f2
0.0005175 ETH
Transfer176789102023-07-12 17:18:23982 days ago1689182303
0xb2b140f0...2F80E97f2
0.0005175 ETH
Transfer176787012023-07-12 16:35:35982 days ago1689179735
0xb2b140f0...2F80E97f2
0.0004875 ETH
Transfer176780592023-07-12 14:24:59982 days ago1689171899
0xb2b140f0...2F80E97f2
0.0004425 ETH
Transfer176771322023-07-12 11:17:59982 days ago1689160679
0xb2b140f0...2F80E97f2
0.000675 ETH
Transfer176770572023-07-12 11:02:47982 days ago1689159767
0xb2b140f0...2F80E97f2
0.00085499 ETH
Transfer176760772023-07-12 7:44:11982 days ago1689147851
0xb2b140f0...2F80E97f2
0.000375 ETH
Transfer176760662023-07-12 7:41:59982 days ago1689147719
0xb2b140f0...2F80E97f2
0.000375 ETH
Transfer176758992023-07-12 7:07:47982 days ago1689145667
0xb2b140f0...2F80E97f2
0.000375 ETH
Transfer176433222023-07-07 17:11:23987 days ago1688749883
0xb2b140f0...2F80E97f2
0.00474739 ETH
Transfer176430212023-07-07 16:09:59987 days ago1688746199
0xb2b140f0...2F80E97f2
0.00084 ETH
Transfer168889082023-03-23 7:57:591093 days ago1679558279
0xb2b140f0...2F80E97f2
0.0001125 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
KatWalkerzRoyalties

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
// SPDX-License-Identifier: MIT

////////////////////////////////////////////////////////
// @title KatWalkerz Royalties /ᐠ。▿。ᐟ\*ᵖᵘʳʳ*
// @notice this contract receives royalties, holders can
// enter the raffle and win 50% winning amount every week.
// @author sadat.eth
////////////////////////////////////////////////////////

pragma solidity ^0.8.4;

contract KatWalkerzRoyalties {
    // import katwalkerz and katmonstarz nft collections
    IERC721 private KatWalkerz = IERC721(0x8D28EB8079aE341cA45Bb91E4900974b6999b959);
    IERC721 private KatMonstarz = IERC721(0xb5C2c4bdd64379DDA029F04340598EE9EBA7A7aF);
    // rules of the lottery & division
    uint256 private royaltiesSplit = 2;
    uint256 private maxWinners = 5;
    uint256 private minSpin = 0.1 ether;
    uint256 private minEntries = 10;
    uint256 private spinInterval = 7 days;
    uint256 private minVotes = 50;
    // storage for the spin records
    uint256 private currentPrize;
    uint256 private winnerFunds;
    uint256 private lastSpin;
    uint256[6] private proposal;
    address[] private votes;
    address[] private entries;
    mapping(address => uint256) private chances;
    address[] private winners;
    mapping(address => uint256) private balances;
    address private owner;
    // security checks for functions
    bool private spinning;
    bool private withdrawing;
    bool private voting;
    // initializes contract, sets deployer as owner
    constructor() { owner = msg.sender; }
    // sets contract to receive external payments
    receive() external payable { }

////////////////////////////////////////////////////////
// @notice public function to enter for the lottery.
// @dev checks if the caller is a holder of KatMonstarz,
// checks if the caller is also a holder of KatWalkerz,
// adds the caller to the list of entries if not already,
// @param number of "kw" increases the winning chances.
////////////////////////////////////////////////////////

    function enter() public {
        uint256 km = KatMonstarz.balanceOf(msg.sender);
        uint256 kw = KatWalkerz.balanceOf(msg.sender);
        require(km > 0, "must hold katmonstarz");
        require(kw > 0, "must hold katwalkerz");
        if (chances[msg.sender] == 0) {
            entries.push(msg.sender);
        }
        chances[msg.sender] = kw;
    }

////////////////////////////////////////////////////////
// @notic public function to withdraw amount.
// @param "addr" is the address of recipient,
// @dev checks for any ongoing withdrawal,
// checks if the caller has available amount,
// transfers amount and updates balances
////////////////////////////////////////////////////////

    function withdraw(address addr) public {
        require(!withdrawing, "withdrawing in process");
        require(balances[msg.sender] > 0, "no balance");
        uint256 amount = balances[msg.sender];
        withdrawing = true;
        (bool success, ) = payable(addr).call{value: amount}("");
        require(success, "failed");
        balances[msg.sender] = 0;
        winnerFunds -= amount;
        withdrawing = false;
    }

////////////////////////////////////////////////////////
// @notice public function to pick the random winners.
// @dev checks if next spin is available, checks if
// there are more than minimum entries and balance.
// sets distribution of new winning amount,  spins all
// entries and pick the random winners based on chances.
// sets balances of winners, owner and the  current
// winning prize, resets entries for the next spin.
////////////////////////////////////////////////////////

    function spin() public {
        require(!spinning, "spinning in process");
        require(block.timestamp - lastSpin > spinInterval, "not available");
        require(entries.length >= minEntries, "not enough entries");
        require(address(this).balance - winnerFunds > minSpin, "not enough balance");
        spinning = true;
        uint256 amount = address(this).balance - winnerFunds;
        uint256 split = amount / royaltiesSplit;
        uint256 share = split / maxWinners;
        uint256 maxChances = checkChances();
        address[] memory spinner = new address[](maxChances);
        uint256 luck = 0;
        uint256 karma = 0;
        while (karma < maxChances) {
            for (uint256 j = 0; j < chances[entries[luck]]; j++) {
                spinner[karma] = entries[luck];
                karma++;
            }
            luck++;
        }
        winners = new address[](0);
        for (uint256 w = 0; w < maxWinners; w++) {
            uint256 r = uint256(keccak256(abi.encodePacked(block.timestamp, block.difficulty, w))) % maxChances;
            if (!_alreadyIn(winners, spinner[r]) && KatWalkerz.balanceOf(spinner[r]) >= chances[spinner[r]]) {
                winners.push(spinner[r]);
                balances[spinner[r]] += share;
                winnerFunds += share;
            }
        }
        balances[owner] += split;
        winnerFunds += split;
        currentPrize = split;
        lastSpin = block.timestamp;
        spinning = false;
    }

////////////////////////////////////////////////////////
// @notice internal function to find duplicates.
// @param "list" is the list of addresses to find in.
// @param "addr" is the address to look for.
// @dev loops through the "list" array and returns "true"
// if "addr" is found and "false" if not found.
////////////////////////////////////////////////////////

    function _alreadyIn(address[] memory list, address addr) internal pure returns (bool) {
        for (uint256 i = 0; i < list.length; i++) {
            if (list[i] == addr) return true;
        }
        return false;
    }

////////////////////////////////////////////////////////
// @notic public function to view last spin time.
// @dev returns the last spin time in epoch
////////////////////////////////////////////////////////

    function checkLastSpin() public view returns (uint256) {
        return lastSpin;
    }

////////////////////////////////////////////////////////
// @notic public function to view total entries.
// @dev returns the total number of entries.
////////////////////////////////////////////////////////

    function checkEntries() public view returns (uint256) {
        return entries.length;
    }

////////////////////////////////////////////////////////
// @notic public function to view total possible chances.
// @dev returns the number of total winning chances.
////////////////////////////////////////////////////////

    function checkChances() public view returns (uint256) {
        uint256 totalChances;
        for (uint256 i = 0; i < entries.length; i++) {
            totalChances += chances[entries[i]];
        }
        return totalChances;
    }

////////////////////////////////////////////////////////
// @notic public function to view winning chances.
// @param "addr" is the address to check chances of.
// @dev returns the number of chances of the "addr".
////////////////////////////////////////////////////////

    function checkChance(address addr) public view returns (uint256) {
        return chances[addr];
    }

////////////////////////////////////////////////////////
// @notic public function to view current winning amount.
// @dev returns the current winning amount.
////////////////////////////////////////////////////////

    function checkPrize() public view returns (uint256) {
        return currentPrize;
    }

////////////////////////////////////////////////////////
// @notic public function to view list of winners.
// @dev returns list of addresses of current winners.
////////////////////////////////////////////////////////

    function checkWinners() public view returns (address[] memory) {
        return winners;
    }

////////////////////////////////////////////////////////
// @notic public function to view address winning status.
// @param "addr" is the address to check status of.
// @dev returns false or true if the "addr" is winner.
////////////////////////////////////////////////////////

    function checkWinner(address addr) public view returns (bool) {
        for (uint256 i = 0; i < winners.length; i++) {
            if (winners[i] == addr) return true;
        }
        return false;
    }

////////////////////////////////////////////////////////
// @notic public function to view winner balance.
// @param "addr" is the address to check balance of.
// @dev returns the balance of the "addr".
////////////////////////////////////////////////////////

    function checkBalance(address addr) public view returns (uint256) {
        return balances[addr];
    }

////////////////////////////////////////////////////////
// @notic public function to view current votes.
// @dev returns total number of votes.
////////////////////////////////////////////////////////

    function checkVotes() public view returns (uint256) {
        return votes.length;
    }

////////////////////////////////////////////////////////
// @notic public function to view current proposed rules.
// @dev returns new set of rules submitted by owner.
////////////////////////////////////////////////////////

    function checkProposal() public view returns (uint256[6] memory) {
        return proposal;
    }

////////////////////////////////////////////////////////
// @notic public function to vote for new rules.
// @dev check if voting has started,
// checks if caller is holder of km & kw.
// adds the caller in the voters list or
// approves the proposed rules if enough votes.
////////////////////////////////////////////////////////

    function vote() public {
        require(voting, "no new proposal");
        require(KatMonstarz.balanceOf(msg.sender) > 0, "must hold km");
        require(KatWalkerz.balanceOf(msg.sender) > 0, "must hold kw");
        require(!_alreadyIn(votes, msg.sender), "already voted");
        if (votes.length < minVotes) {
            votes.push(msg.sender);
        }
        else {
            royaltiesSplit = proposal[0];
            maxWinners = proposal[1];
            minSpin = proposal[2];
            minEntries = proposal[3];
            spinInterval = proposal[4];
            minVotes = proposal[5];
            voting = false;
        }
    }

////////////////////////////////////////////////////////
// @notic owner function to change contract settings
// settings can be changed if there are  enough votes.
// @param "newRules" is the new proposed set of rules.
// @dev checks if caller is the current owner,
// checks if rules are correct format, saves the new
// rules temporary and prepares new voting.
////////////////////////////////////////////////////////

    function settings(uint256[] memory newRules) public {
        require(msg.sender == owner, "only owner");
        require(newRules.length == 6, "iykyk");
        for (uint256 i = 0; i < 6; i++) {
            proposal[i] = newRules[i];
        }
        votes = new address[](0);
        voting = true;
    }
}

interface IERC721 {
    // interface of erc721 to check balanceOf of kw & km collections
    function balanceOf(address owner) external view returns (uint256 balance);
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"checkBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"checkChance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkChances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkEntries","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkLastSpin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkPrize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkProposal","outputs":[{"internalType":"uint256[6]","name":"","type":"uint256[6]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"checkWinner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkWinners","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"newRules","type":"uint256[]"}],"name":"settings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"spin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vote","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600080546001600160a01b0319908116738d28eb8079ae341ca45bb91e4900974b6999b959179091556001805490911673b5c2c4bdd64379dda029f04340598ee9eba7a7af179055600280556005600381905567016345785d8a0000600455600a905562093a80600655603260075534801561007f57600080fd5b50601680546001600160a01b031916331790556114c8806100a16000396000f3fe6080604052600436106100ec5760003560e01c8063730bd9291161008a578063e677033411610059578063e677033414610274578063e97dcb6214610289578063ebbd329a1461029e578063f0acd7d5146102c057600080fd5b8063730bd929146102135780637e87e60314610228578063bacd3d8b1461023d578063d33cd90b1461025f57600080fd5b806351cff8d9116100c657806351cff8d9146101865780635f515226146101a8578063632a9a52146101de578063649f6a85146101f357600080fd5b806349f994fc146100f85780634d722c4c146101415780634de2d5d51461017157600080fd5b366100f357005b600080fd5b34801561010457600080fd5b5061012e610113366004611245565b6001600160a01b031660009081526013602052604090205490565b6040519081526020015b60405180910390f35b34801561014d57600080fd5b5061016161015c366004611245565b6102d5565b6040519015158152602001610138565b34801561017d57600080fd5b5060085461012e565b34801561019257600080fd5b506101a66101a1366004611245565b61033e565b005b3480156101b457600080fd5b5061012e6101c3366004611245565b6001600160a01b031660009081526015602052604090205490565b3480156101ea57600080fd5b506101a66104c7565b3480156101ff57600080fd5b506101a661020e36600461128b565b610788565b34801561021f57600080fd5b5060115461012e565b34801561023457600080fd5b5061012e61088a565b34801561024957600080fd5b506102526108fa565b6040516101389190611349565b34801561026b57600080fd5b5060125461012e565b34801561028057600080fd5b50600a5461012e565b34801561029557600080fd5b506101a6610936565b3480156102aa57600080fd5b506102b3610b12565b604051610138919061137a565b3480156102cc57600080fd5b506101a6610b73565b6000805b60145481101561033557826001600160a01b031660148281548110610300576103006113c7565b6000918252602090912001546001600160a01b0316036103235750600192915050565b8061032d816113f3565b9150506102d9565b50600092915050565b601654600160a81b900460ff16156103965760405162461bcd60e51b81526020600482015260166024820152757769746864726177696e6720696e2070726f6365737360501b60448201526064015b60405180910390fd5b336000908152601560205260409020546103df5760405162461bcd60e51b815260206004820152600a6024820152696e6f2062616c616e636560b01b604482015260640161038d565b33600090815260156020526040808220546016805460ff60a81b1916600160a81b17905590519091906001600160a01b0384169083908381818185875af1925050503d806000811461044d576040519150601f19603f3d011682016040523d82523d6000602084013e610452565b606091505b505090508061048c5760405162461bcd60e51b815260206004820152600660248201526519985a5b195960d21b604482015260640161038d565b336000908152601560205260408120819055600980548492906104b090849061140c565b90915550506016805460ff60a81b19169055505050565b601654600160b01b900460ff166105125760405162461bcd60e51b815260206004820152600f60248201526e1b9bc81b995dc81c1c9bdc1bdcd85b608a1b604482015260640161038d565b6001546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561055b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057f9190611423565b116105bb5760405162461bcd60e51b815260206004820152600c60248201526b6d75737420686f6c64206b6d60a01b604482015260640161038d565b600080546040516370a0823160e01b81523360048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610604573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106289190611423565b116106645760405162461bcd60e51b815260206004820152600c60248201526b6d75737420686f6c64206b7760a01b604482015260640161038d565b6106c860118054806020026020016040519081016040528092919081815260200182805480156106bd57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161069f575b505050505033611146565b156107055760405162461bcd60e51b815260206004820152600d60248201526c185b1c9958591e481d9bdd1959609a1b604482015260640161038d565b600754601154101561075557601180546001810182556000919091527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c680180546001600160a01b03191633179055565b600b54600255600c54600355600d54600455600e54600555600f546006556010546007556016805460ff60b01b19169055565b6016546001600160a01b031633146107cf5760405162461bcd60e51b815260206004820152600a60248201526937b7363c9037bbb732b960b11b604482015260640161038d565b80516006146108085760405162461bcd60e51b815260206004820152600560248201526469796b796b60d81b604482015260640161038d565b60005b600681101561085557818181518110610826576108266113c7565b6020026020010151600b8260068110610841576108416113c7565b01558061084d816113f3565b91505061080b565b506040805160008152602081019182905251610873916011916111ad565b50506016805460ff60b01b1916600160b01b179055565b60008060005b6012548110156108f45760136000601283815481106108b1576108b16113c7565b60009182526020808320909101546001600160a01b031683528201929092526040019020546108e0908361143c565b9150806108ec816113f3565b915050610890565b50919050565b610902611212565b6040805160c081019182905290600b9060069082845b815481526020019060010190808311610918575b5050505050905090565b6001546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561097f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a39190611423565b600080546040516370a0823160e01b815233600482015292935090916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156109f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a159190611423565b905060008211610a5f5760405162461bcd60e51b815260206004820152601560248201527436bab9ba103437b6321035b0ba36b7b739ba30b93d60591b604482015260640161038d565b60008111610aa65760405162461bcd60e51b815260206004820152601460248201527336bab9ba103437b6321035b0ba3bb0b635b2b93d60611b604482015260640161038d565b336000908152601360205260408120549003610aff57601280546001810182556000919091527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34440180546001600160a01b031916331790555b3360009081526013602052604090205550565b6060601480548060200260200160405190810160405280929190818152602001828054801561092c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b4c575050505050905090565b601654600160a01b900460ff1615610bc35760405162461bcd60e51b81526020600482015260136024820152727370696e6e696e6720696e2070726f6365737360681b604482015260640161038d565b600654600a54610bd3904261140c565b11610c105760405162461bcd60e51b815260206004820152600d60248201526c6e6f7420617661696c61626c6560981b604482015260640161038d565b6005546012541015610c595760405162461bcd60e51b81526020600482015260126024820152716e6f7420656e6f75676820656e747269657360701b604482015260640161038d565b600454600954610c69904761140c565b11610cab5760405162461bcd60e51b81526020600482015260126024820152716e6f7420656e6f7567682062616c616e636560701b604482015260640161038d565b6016805460ff60a01b1916600160a01b179055600954600090610cce904761140c565b9050600060025482610ce0919061146a565b9050600060035482610cf2919061146a565b90506000610cfe61088a565b905060008167ffffffffffffffff811115610d1b57610d1b611275565b604051908082528060200260200182016040528015610d44578160200160208202803683370190505b5090506000805b83811015610e275760005b6013600060128581548110610d6d57610d6d6113c7565b60009182526020808320909101546001600160a01b03168352820192909252604001902054811015610e145760128381548110610dac57610dac6113c7565b9060005260206000200160009054906101000a90046001600160a01b0316848381518110610ddc57610ddc6113c7565b6001600160a01b039092166020928302919091019091015281610dfe816113f3565b9250508080610e0c906113f3565b915050610d56565b5081610e1f816113f3565b925050610d4b565b6040805160008152602081019182905251610e44916014916111ad565b5060005b6003548110156110de576040805142602082015244918101919091526060810182905260009086906080016040516020818303038152906040528051906020012060001c610e96919061147e565b9050610f156014805480602002602001604051908101604052809291908181526020018280548015610ef157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ed3575b5050505050868381518110610f0857610f086113c7565b6020026020010151611146565b158015611007575060136000868381518110610f3357610f336113c7565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205460008054906101000a90046001600160a01b03166001600160a01b03166370a08231878481518110610f9057610f906113c7565b60200260200101516040518263ffffffff1660e01b8152600401610fc391906001600160a01b0391909116815260200190565b602060405180830381865afa158015610fe0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110049190611423565b10155b156110cb576014858281518110611020576110206113c7565b6020908102919091018101518254600181018455600093845291832090910180546001600160a01b0319166001600160a01b0390921691909117905585518891601591889085908110611075576110756113c7565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546110ac919061143c565b9250508190555086600960008282546110c5919061143c565b90915550505b50806110d6816113f3565b915050610e48565b506016546001600160a01b03166000908152601560205260408120805488929061110990849061143c565b925050819055508560096000828254611122919061143c565b909155505050600894909455505042600a5550506016805460ff60a01b1916905550565b6000805b83518110156111a157826001600160a01b031684828151811061116f5761116f6113c7565b60200260200101516001600160a01b03160361118f5760019150506111a7565b80611199816113f3565b91505061114a565b50600090505b92915050565b828054828255906000526020600020908101928215611202579160200282015b8281111561120257825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906111cd565b5061120e929150611230565b5090565b6040518060c001604052806006906020820280368337509192915050565b5b8082111561120e5760008155600101611231565b60006020828403121561125757600080fd5b81356001600160a01b038116811461126e57600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561129e57600080fd5b823567ffffffffffffffff808211156112b657600080fd5b818501915085601f8301126112ca57600080fd5b8135818111156112dc576112dc611275565b8060051b604051601f19603f8301168101818110858211171561130157611301611275565b60405291825284820192508381018501918883111561131f57600080fd5b938501935b8285101561133d57843584529385019392850192611324565b98975050505050505050565b60c08101818360005b6006811015611371578151835260209283019290910190600101611352565b50505092915050565b6020808252825182820181905260009190848201906040850190845b818110156113bb5783516001600160a01b031683529284019291840191600101611396565b50909695505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611405576114056113dd565b5060010190565b60008282101561141e5761141e6113dd565b500390565b60006020828403121561143557600080fd5b5051919050565b6000821982111561144f5761144f6113dd565b500190565b634e487b7160e01b600052601260045260246000fd5b60008261147957611479611454565b500490565b60008261148d5761148d611454565b50069056fea2646970667358221220e4e3a3327040fce92306d31f6a072c63812c559adc3b4305102a6d46663e7db064736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106100ec5760003560e01c8063730bd9291161008a578063e677033411610059578063e677033414610274578063e97dcb6214610289578063ebbd329a1461029e578063f0acd7d5146102c057600080fd5b8063730bd929146102135780637e87e60314610228578063bacd3d8b1461023d578063d33cd90b1461025f57600080fd5b806351cff8d9116100c657806351cff8d9146101865780635f515226146101a8578063632a9a52146101de578063649f6a85146101f357600080fd5b806349f994fc146100f85780634d722c4c146101415780634de2d5d51461017157600080fd5b366100f357005b600080fd5b34801561010457600080fd5b5061012e610113366004611245565b6001600160a01b031660009081526013602052604090205490565b6040519081526020015b60405180910390f35b34801561014d57600080fd5b5061016161015c366004611245565b6102d5565b6040519015158152602001610138565b34801561017d57600080fd5b5060085461012e565b34801561019257600080fd5b506101a66101a1366004611245565b61033e565b005b3480156101b457600080fd5b5061012e6101c3366004611245565b6001600160a01b031660009081526015602052604090205490565b3480156101ea57600080fd5b506101a66104c7565b3480156101ff57600080fd5b506101a661020e36600461128b565b610788565b34801561021f57600080fd5b5060115461012e565b34801561023457600080fd5b5061012e61088a565b34801561024957600080fd5b506102526108fa565b6040516101389190611349565b34801561026b57600080fd5b5060125461012e565b34801561028057600080fd5b50600a5461012e565b34801561029557600080fd5b506101a6610936565b3480156102aa57600080fd5b506102b3610b12565b604051610138919061137a565b3480156102cc57600080fd5b506101a6610b73565b6000805b60145481101561033557826001600160a01b031660148281548110610300576103006113c7565b6000918252602090912001546001600160a01b0316036103235750600192915050565b8061032d816113f3565b9150506102d9565b50600092915050565b601654600160a81b900460ff16156103965760405162461bcd60e51b81526020600482015260166024820152757769746864726177696e6720696e2070726f6365737360501b60448201526064015b60405180910390fd5b336000908152601560205260409020546103df5760405162461bcd60e51b815260206004820152600a6024820152696e6f2062616c616e636560b01b604482015260640161038d565b33600090815260156020526040808220546016805460ff60a81b1916600160a81b17905590519091906001600160a01b0384169083908381818185875af1925050503d806000811461044d576040519150601f19603f3d011682016040523d82523d6000602084013e610452565b606091505b505090508061048c5760405162461bcd60e51b815260206004820152600660248201526519985a5b195960d21b604482015260640161038d565b336000908152601560205260408120819055600980548492906104b090849061140c565b90915550506016805460ff60a81b19169055505050565b601654600160b01b900460ff166105125760405162461bcd60e51b815260206004820152600f60248201526e1b9bc81b995dc81c1c9bdc1bdcd85b608a1b604482015260640161038d565b6001546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561055b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057f9190611423565b116105bb5760405162461bcd60e51b815260206004820152600c60248201526b6d75737420686f6c64206b6d60a01b604482015260640161038d565b600080546040516370a0823160e01b81523360048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610604573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106289190611423565b116106645760405162461bcd60e51b815260206004820152600c60248201526b6d75737420686f6c64206b7760a01b604482015260640161038d565b6106c860118054806020026020016040519081016040528092919081815260200182805480156106bd57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161069f575b505050505033611146565b156107055760405162461bcd60e51b815260206004820152600d60248201526c185b1c9958591e481d9bdd1959609a1b604482015260640161038d565b600754601154101561075557601180546001810182556000919091527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c680180546001600160a01b03191633179055565b600b54600255600c54600355600d54600455600e54600555600f546006556010546007556016805460ff60b01b19169055565b6016546001600160a01b031633146107cf5760405162461bcd60e51b815260206004820152600a60248201526937b7363c9037bbb732b960b11b604482015260640161038d565b80516006146108085760405162461bcd60e51b815260206004820152600560248201526469796b796b60d81b604482015260640161038d565b60005b600681101561085557818181518110610826576108266113c7565b6020026020010151600b8260068110610841576108416113c7565b01558061084d816113f3565b91505061080b565b506040805160008152602081019182905251610873916011916111ad565b50506016805460ff60b01b1916600160b01b179055565b60008060005b6012548110156108f45760136000601283815481106108b1576108b16113c7565b60009182526020808320909101546001600160a01b031683528201929092526040019020546108e0908361143c565b9150806108ec816113f3565b915050610890565b50919050565b610902611212565b6040805160c081019182905290600b9060069082845b815481526020019060010190808311610918575b5050505050905090565b6001546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561097f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a39190611423565b600080546040516370a0823160e01b815233600482015292935090916001600160a01b03909116906370a0823190602401602060405180830381865afa1580156109f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a159190611423565b905060008211610a5f5760405162461bcd60e51b815260206004820152601560248201527436bab9ba103437b6321035b0ba36b7b739ba30b93d60591b604482015260640161038d565b60008111610aa65760405162461bcd60e51b815260206004820152601460248201527336bab9ba103437b6321035b0ba3bb0b635b2b93d60611b604482015260640161038d565b336000908152601360205260408120549003610aff57601280546001810182556000919091527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34440180546001600160a01b031916331790555b3360009081526013602052604090205550565b6060601480548060200260200160405190810160405280929190818152602001828054801561092c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b4c575050505050905090565b601654600160a01b900460ff1615610bc35760405162461bcd60e51b81526020600482015260136024820152727370696e6e696e6720696e2070726f6365737360681b604482015260640161038d565b600654600a54610bd3904261140c565b11610c105760405162461bcd60e51b815260206004820152600d60248201526c6e6f7420617661696c61626c6560981b604482015260640161038d565b6005546012541015610c595760405162461bcd60e51b81526020600482015260126024820152716e6f7420656e6f75676820656e747269657360701b604482015260640161038d565b600454600954610c69904761140c565b11610cab5760405162461bcd60e51b81526020600482015260126024820152716e6f7420656e6f7567682062616c616e636560701b604482015260640161038d565b6016805460ff60a01b1916600160a01b179055600954600090610cce904761140c565b9050600060025482610ce0919061146a565b9050600060035482610cf2919061146a565b90506000610cfe61088a565b905060008167ffffffffffffffff811115610d1b57610d1b611275565b604051908082528060200260200182016040528015610d44578160200160208202803683370190505b5090506000805b83811015610e275760005b6013600060128581548110610d6d57610d6d6113c7565b60009182526020808320909101546001600160a01b03168352820192909252604001902054811015610e145760128381548110610dac57610dac6113c7565b9060005260206000200160009054906101000a90046001600160a01b0316848381518110610ddc57610ddc6113c7565b6001600160a01b039092166020928302919091019091015281610dfe816113f3565b9250508080610e0c906113f3565b915050610d56565b5081610e1f816113f3565b925050610d4b565b6040805160008152602081019182905251610e44916014916111ad565b5060005b6003548110156110de576040805142602082015244918101919091526060810182905260009086906080016040516020818303038152906040528051906020012060001c610e96919061147e565b9050610f156014805480602002602001604051908101604052809291908181526020018280548015610ef157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ed3575b5050505050868381518110610f0857610f086113c7565b6020026020010151611146565b158015611007575060136000868381518110610f3357610f336113c7565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000205460008054906101000a90046001600160a01b03166001600160a01b03166370a08231878481518110610f9057610f906113c7565b60200260200101516040518263ffffffff1660e01b8152600401610fc391906001600160a01b0391909116815260200190565b602060405180830381865afa158015610fe0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110049190611423565b10155b156110cb576014858281518110611020576110206113c7565b6020908102919091018101518254600181018455600093845291832090910180546001600160a01b0319166001600160a01b0390921691909117905585518891601591889085908110611075576110756113c7565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546110ac919061143c565b9250508190555086600960008282546110c5919061143c565b90915550505b50806110d6816113f3565b915050610e48565b506016546001600160a01b03166000908152601560205260408120805488929061110990849061143c565b925050819055508560096000828254611122919061143c565b909155505050600894909455505042600a5550506016805460ff60a01b1916905550565b6000805b83518110156111a157826001600160a01b031684828151811061116f5761116f6113c7565b60200260200101516001600160a01b03160361118f5760019150506111a7565b80611199816113f3565b91505061114a565b50600090505b92915050565b828054828255906000526020600020908101928215611202579160200282015b8281111561120257825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906111cd565b5061120e929150611230565b5090565b6040518060c001604052806006906020820280368337509192915050565b5b8082111561120e5760008155600101611231565b60006020828403121561125757600080fd5b81356001600160a01b038116811461126e57600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561129e57600080fd5b823567ffffffffffffffff808211156112b657600080fd5b818501915085601f8301126112ca57600080fd5b8135818111156112dc576112dc611275565b8060051b604051601f19603f8301168101818110858211171561130157611301611275565b60405291825284820192508381018501918883111561131f57600080fd5b938501935b8285101561133d57843584529385019392850192611324565b98975050505050505050565b60c08101818360005b6006811015611371578151835260209283019290910190600101611352565b50505092915050565b6020808252825182820181905260009190848201906040850190845b818110156113bb5783516001600160a01b031683529284019291840191600101611396565b50909695505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611405576114056113dd565b5060010190565b60008282101561141e5761141e6113dd565b500390565b60006020828403121561143557600080fd5b5051919050565b6000821982111561144f5761144f6113dd565b500190565b634e487b7160e01b600052601260045260246000fd5b60008261147957611479611454565b500490565b60008261148d5761148d611454565b50069056fea2646970667358221220e4e3a3327040fce92306d31f6a072c63812c559adc3b4305102a6d46663e7db064736f6c634300080f0033

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ 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.