Contract 0x311f71389e3DE68f7B2097Ad02c6aD7B2dDE4C71 2

Ponzi 
 
 
Txn Hash
Method
Block
From
To
Value
0x08f0f438573c656e0dcd0d19f941eeeb6398f1e3b812834ab9bc035dd3c3c1a2Transfer148922412022-06-02 17:30:22189 days 6 hrs ago0x11b2a69277bca7c63f86a15e8acd050b7d97f614 IN  333ETH: Contract 10 Ether0.00178028 84.77568465
0xe81c6af68a22f1aef48d3eb9cd34854dd03eb1848e9737e59c7ba8a6616d243dTransfer135441882021-11-03 13:45:23400 days 10 hrs ago0xde01723e3cd3ecc2e75efbc440f5deea36b947f6 IN  333ETH: Contract 10 Ether0.00362569 172.65202573
0x0833dc3a4d7621e1bd8cb7a1e1d33ed5eea184a97a5fbad97ad6c1668ccfeda3Transfer123701412021-05-04 21:13:31583 days 2 hrs ago0x91959b361b166b1a6c1ce4564563b050495fd468 IN  333ETH: Contract 10 Ether0.0012894550
0x6b464f1e81d398bbd4a282210771bf7faa77dd04e6819243bf7bf7e115411a05Transfer123701312021-05-04 21:11:49583 days 2 hrs ago0x91959b361b166b1a6c1ce4564563b050495fd468 IN  333ETH: Contract 10 Ether0.00115555
0x3240ae7bbacd8f4a51eb3f4f54d07b704b678098b705b875cfa65664239d38b0Transfer123392172021-04-30 2:39:29587 days 21 hrs ago0xbab3b0b347302fb78bf27700cc44846f3b354e99 IN  333ETH: Contract 10 Ether0.0008440
0xaa25a61f27e2cf7a765eeb4d4a55e3900f93343da1e22627aaf441c98bb59564Transfer122701932021-04-19 11:23:09598 days 12 hrs ago0x27a6608128d24c71f303cbfef6ded74cd40b2304 IN  333ETH: Contract 10 Ether0.00325130
0x8237bb16b7d4f8f4664b3544dbefd36a15c6793630b242d5af38f0390719978cTransfer119145772021-02-23 17:02:55653 days 6 hrs agoENS Name maximiliano.eth IN  333ETH: Contract 10 Ether0.003444164
0x4a9ac1fd3f92c598e4a15891978d50a659c05c9d39671e5d08c00cd55a5e2d48Transfer117998882021-02-06 2:01:22670 days 21 hrs ago0x7c65cbc5a8f1d24476cb48e4861d343c4670d310 IN  333ETH: Contract 10 Ether0.00833737397.01785714
0xe92531602b53c446d5cac8a8f0f1a8570762d2315385990057f54a76ace3c15bTransfer116924942021-01-20 13:17:11687 days 10 hrs ago0x41fb25057a38916ed8b6b3f15ddec6a68862033e IN  333ETH: Contract 10 Ether0.0019710685
0x3ee5a277aed23fc1117acebebc3b96ba378b522e7aa7ade98537e75340d98184Transfer116924792021-01-20 13:14:00687 days 10 hrs ago0x41fb25057a38916ed8b6b3f15ddec6a68862033e IN  333ETH: Contract 10 Ether0.00232779110.84732791
0x0282e9932651eb6b5b581cd017298055286a3ad7630f12684cf39c315986bd71Transfer116480172021-01-13 17:28:15694 days 6 hrs ago0x9bf4d1b6aefbef5ff22883719d292f9b1359291f IN  333ETH: Contract 10 Ether0.0010203144
0x4d389e4fbc72de74b8e2ee1be7f18a6f2ddcd422bb66f7d4ec57bf3d38c97580Transfer116479942021-01-13 17:23:57694 days 6 hrs ago0x9bf4d1b6aefbef5ff22883719d292f9b1359291f IN  333ETH: Contract 10 Ether0.0010550
0x464c95b2b1729f79591a1e6e579ec1831cd9352b2b978c979f7561ef6025c9f8Transfer116143662021-01-08 13:31:27699 days 10 hrs ago0xe05db8fc3e61dc2801cd2812bb6f5331b005abf0 IN  333ETH: Contract 10 Ether0.00266673115.00000145
0x698721a4db6767bd6ec567c27f15044051afceb4c73147fa41a4a39a83a23153Transfer116139372021-01-08 11:56:02699 days 11 hrs ago0x8d250044d90f1b37009d3f2c393c6ab08f2e9d52 IN  333ETH: Contract 10 Ether0.00193292
0xcbd83c18c42e504a984a19e080b8d049e3dbb5ce832b8ec370f15897be7280cfTransfer116138552021-01-08 11:38:47699 days 12 hrs ago0x8d250044d90f1b37009d3f2c393c6ab08f2e9d52 IN  333ETH: Contract 10.01 Ether0.002961141
0x1be3a4386c3aa9cc1dd200a09e40adb1fd6601a4e4339a00c9ca52c73d8adbf6Transfer113473552020-11-28 13:43:51740 days 10 hrs ago0x9c77e6e9c19c99ad3639c93df69cbefac51a9b39 IN  333ETH: Contract 10 Ether0.00041819
0xfbcb2385974854313c17f09f6ae7af0f7a2ca1214bfcb294ca9b43604ab08f8dTransfer112898302020-11-19 17:27:06749 days 6 hrs ago0x0731c3de517a389ad2541221d3f53b6e4edcfa64 IN  333ETH: Contract 10 Ether0.0004220
0xc84e05548246c86a6161221643341bbed98eb5cde8b169878a2ba27b8b5383ddTransfer109916882020-10-04 21:14:30795 days 2 hrs ago0x91108b7234213be236cf6de43ed3072e718e5e59 IN  333ETH: Contract 10 Ether0.0011314248.79127208
0x58b7e0f204eebb633929938c5e015b8dadf8f21ceff5cbb478d8374cd78ac7b9Transfer109916642020-10-04 21:09:13795 days 2 hrs ago0x91108b7234213be236cf6de43ed3072e718e5e59 IN  333ETH: Contract 10 Ether0.00115555
0x1440bebab61708f6987b4ffdfd6a265655035251f956d0de1d82e5b7258cec2aTransfer108290042020-09-09 17:56:32820 days 5 hrs ago0x8f7ec3ce7abc89c0d001c41e194639d6e25ced33 IN  333ETH: Contract 10 Ether0.0014770
0x41521d63a289edfe659e4d43704d3f009a858cd334e8b28c08dc80eef2fd6b0dTransfer106016982020-08-05 19:41:34855 days 4 hrs ago0x31c5b114192285ce1c6c47294da88da51bf9a26c IN  333ETH: Contract 10 Ether0.000969341.8
0xf0c5db4ebf50e144d33303e3957fac4d802e3e79d2d15b5c326c2355f641dc5dTransfer105984282020-08-05 7:30:48855 days 16 hrs ago0xf4648e5214e6683479ade2add84b8b174de57c7c IN  333ETH: Contract 10 Ether0.00098747
0x06775e8c241d774b1e5df6a5a4a5a7182cff77d72281e7c4cbe3d6f6c7aa8b0c0x6d21f3c4103553822020-06-28 16:31:10893 days 7 hrs ago0x6d21f3c442c6be2bc331b7e9853302ca36d9b6b4 IN  333ETH: Contract 10 Ether0.0011939449.5
0x9ccd0ed38a6a3f8544ff4f5e0212c51bae84716bf49d37c1acde9c9713be6682Transfer101891902020-06-02 22:42:22919 days 1 hr ago0x9386fb38099bcd0d6166b73dd2ed1dbc8847b250 IN  333ETH: Contract 10 Ether0.0005101522
0x079dba9e4feb129dd8f0245c4c720430d607ccada1032ea3aa246d041f5abeb5Transfer101877542020-06-02 17:32:09919 days 6 hrs ago0x9386fb38099bcd0d6166b73dd2ed1dbc8847b250 IN  333ETH: Contract 10 Ether0.0005797225
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x9f4272e6294779e3a91525ebea067f8ca7126900ba0f951f5f2843f2f613c00d81472272019-07-14 5:19:181243 days 18 hrs ago 333ETH: Contract 10x4eac9ea2bfb3f78d7bcf61b5e4ba5e9345c200070.0007 Ether
0x9f4272e6294779e3a91525ebea067f8ca7126900ba0f951f5f2843f2f613c00d81472272019-07-14 5:19:181243 days 18 hrs ago 333ETH: Contract 1 0x8f19b97b91bf2aa4c8efa5548867343e43d516a20.001 Ether
0x3239b042ff6e2a9251c8971a146c8a00219ff350031e924d3c382460fa9a81fa69669802018-12-28 8:26:271441 days 15 hrs ago 333ETH: Contract 10x4eac9ea2bfb3f78d7bcf61b5e4ba5e9345c200070.0007 Ether
0x3239b042ff6e2a9251c8971a146c8a00219ff350031e924d3c382460fa9a81fa69669802018-12-28 8:26:271441 days 15 hrs ago 333ETH: Contract 1 0x8f19b97b91bf2aa4c8efa5548867343e43d516a20.001 Ether
0xc4fbb3715880f505b075a5a84c362c309c598fedf5480d51d1a092c23dfe628a68317012018-12-05 16:58:281464 days 6 hrs ago 333ETH: Contract 10x4eac9ea2bfb3f78d7bcf61b5e4ba5e9345c200070.04773495 Ether
0xc4fbb3715880f505b075a5a84c362c309c598fedf5480d51d1a092c23dfe628a68317012018-12-05 16:58:281464 days 6 hrs ago 333ETH: Contract 1 0x8f19b97b91bf2aa4c8efa5548867343e43d516a20.06819279 Ether
0x8321d7de52a31bc9e103586a0596b2817c9d2876496f61b4a25404732a22945d67974652018-11-30 1:07:261469 days 22 hrs ago 333ETH: Contract 10x4eac9ea2bfb3f78d7bcf61b5e4ba5e9345c200070.0007 Ether
0x8321d7de52a31bc9e103586a0596b2817c9d2876496f61b4a25404732a22945d67974652018-11-30 1:07:261469 days 22 hrs ago 333ETH: Contract 1 0x8f19b97b91bf2aa4c8efa5548867343e43d516a20.001 Ether
0x8be89bf2f19441a911aaae08f3ac8cae6755919bd76e9ef75f565b2e0f463bb967974472018-11-30 1:01:531469 days 22 hrs ago 333ETH: Contract 10x4eac9ea2bfb3f78d7bcf61b5e4ba5e9345c200070.0007 Ether
0x8be89bf2f19441a911aaae08f3ac8cae6755919bd76e9ef75f565b2e0f463bb967974472018-11-30 1:01:531469 days 22 hrs ago 333ETH: Contract 1 0x8f19b97b91bf2aa4c8efa5548867343e43d516a20.001 Ether
0xefb9d2a4207e302a20688dfa04448f8858ef12de2a4e7dd83e003916a35c008a67970462018-11-29 23:24:011470 days 22 mins ago 333ETH: Contract 10x4eac9ea2bfb3f78d7bcf61b5e4ba5e9345c200070.0028 Ether
0xefb9d2a4207e302a20688dfa04448f8858ef12de2a4e7dd83e003916a35c008a67970462018-11-29 23:24:011470 days 22 mins ago 333ETH: Contract 1 0x8f19b97b91bf2aa4c8efa5548867343e43d516a20.004 Ether
0x29f0b98a8f9796416e24c82ab3372da6470a26b98148607e33db4538c3f3142b67942672018-11-29 12:15:351470 days 11 hrs ago 333ETH: Contract 10x4eac9ea2bfb3f78d7bcf61b5e4ba5e9345c200070.007 Ether
0x29f0b98a8f9796416e24c82ab3372da6470a26b98148607e33db4538c3f3142b67942672018-11-29 12:15:351470 days 11 hrs ago 333ETH: Contract 1 0x8f19b97b91bf2aa4c8efa5548867343e43d516a20.01 Ether
0x0776a156b4a06a1c83b969a732ea8acb53d8b323d8de92dbf09910bcca4b322667942592018-11-29 12:13:071470 days 11 hrs ago 333ETH: Contract 10x4eac9ea2bfb3f78d7bcf61b5e4ba5e9345c200070.007 Ether
0x0776a156b4a06a1c83b969a732ea8acb53d8b323d8de92dbf09910bcca4b322667942592018-11-29 12:13:071470 days 11 hrs ago 333ETH: Contract 1 0x8f19b97b91bf2aa4c8efa5548867343e43d516a20.01 Ether
0xfe6dbd5e869a7c180c7ef2b338b98273a9abf8341776340e5dcdd50d8c20644667942392018-11-29 12:08:291470 days 11 hrs ago 333ETH: Contract 10x4eac9ea2bfb3f78d7bcf61b5e4ba5e9345c200070.00084 Ether
0xfe6dbd5e869a7c180c7ef2b338b98273a9abf8341776340e5dcdd50d8c20644667942392018-11-29 12:08:291470 days 11 hrs ago 333ETH: Contract 1 0x8f19b97b91bf2aa4c8efa5548867343e43d516a20.0012 Ether
0xbb04f3d868965710c1e723b04924a11e538020d5c5f06a45a6a439e252c771b367929082018-11-29 6:57:021470 days 16 hrs ago 333ETH: Contract 10x4eac9ea2bfb3f78d7bcf61b5e4ba5e9345c200070.0007 Ether
0xbb04f3d868965710c1e723b04924a11e538020d5c5f06a45a6a439e252c771b367929082018-11-29 6:57:021470 days 16 hrs ago 333ETH: Contract 1 0x8f19b97b91bf2aa4c8efa5548867343e43d516a20.001 Ether
0x8721e4120f61ad5e8c98b2ea0c1a841e86d2d472faa343f04b1d3554dbe7cefb67804692018-11-27 5:32:111472 days 18 hrs ago 333ETH: Contract 10x4eac9ea2bfb3f78d7bcf61b5e4ba5e9345c200070.0007 Ether
0x8721e4120f61ad5e8c98b2ea0c1a841e86d2d472faa343f04b1d3554dbe7cefb67804692018-11-27 5:32:111472 days 18 hrs ago 333ETH: Contract 1 0x8f19b97b91bf2aa4c8efa5548867343e43d516a20.001 Ether
0x80c7102e266fc6c15093ee4cd7e0763259c6daeb58d64dc0ecafdea81c4b503867350452018-11-19 18:38:341480 days 5 hrs ago 333ETH: Contract 10x4eac9ea2bfb3f78d7bcf61b5e4ba5e9345c200070.0007 Ether
0x80c7102e266fc6c15093ee4cd7e0763259c6daeb58d64dc0ecafdea81c4b503867350452018-11-19 18:38:341480 days 5 hrs ago 333ETH: Contract 1 0x8f19b97b91bf2aa4c8efa5548867343e43d516a20.001 Ether
0xb464a80ef00cc6107ffabcbf2d16469185472447f7e7119b26ea7697e1dbe3b166954762018-11-13 7:00:481486 days 16 hrs ago 333ETH: Contract 10x4eac9ea2bfb3f78d7bcf61b5e4ba5e9345c200070.0007 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Revolution

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-09-14
*/

pragma solidity ^0.4.23;

/**
*
* ETH CRYPTOCURRENCY DISTRIBUTION PROJECT
* Web              - https://333eth.io
* Twitter          - https://twitter.com/333eth_io
* Telegram_channel - https://t.me/Ethereum333
* EN  Telegram_chat: https://t.me/Ethereum333_chat_en
* RU  Telegram_chat: https://t.me/Ethereum333_chat_ru
* KOR Telegram_chat: https://t.me/Ethereum333_chat_kor
* Email:             mailto:support(at sign)333eth.io
* 
*  - GAIN 3,33% PER 24 HOURS (every 5900 blocks)
*  - Life-long payments
*  - The revolutionary reliability
*  - Minimal contribution 0.01 eth
*  - Currency and payment - ETH
*  - Contribution allocation schemes:
*    -- 83% payments
*    -- 17% Marketing + Operating Expenses
*
*   ---About the Project
*  Blockchain-enabled smart contracts have opened a new era of trustless relationships without 
*  intermediaries. This technology opens incredible financial possibilities. Our automated investment 
*  distribution model is written into a smart contract, uploaded to the Ethereum blockchain and can be 
*  freely accessed online. In order to insure our investors' complete security, full control over the 
*  project has been transferred from the organizers to the smart contract: nobody can influence the 
*  system's permanent autonomous functioning.
* 
* ---How to use:
*  1. Send from ETH wallet to the smart contract address 0x311f71389e3DE68f7B2097Ad02c6aD7B2dDE4C71
*     any amount from 0.01 ETH.
*  2. Verify your transaction in the history of your application or etherscan.io, specifying the address 
*     of your wallet.
*  3a. Claim your profit by sending 0 ether transaction (every day, every week, i don't care unless you're 
*      spending too much on GAS)
*  OR
*  3b. For reinvest, you need to first remove the accumulated percentage of charges (by sending 0 ether 
*      transaction), and only after that, deposit the amount that you want to reinvest.
*  
* RECOMMENDED GAS LIMIT: 200000
* RECOMMENDED GAS PRICE: https://ethgasstation.info/
* You can check the payments on the etherscan.io site, in the "Internal Txns" tab of your wallet.
*
* ---It is not allowed to transfer from exchanges, only from your personal ETH wallet, for which you 
* have private keys.
* 
* Contracts reviewed and approved by pros!
* 
* Main contract - Revolution. Scroll down to find it.
*/


contract InvestorsStorage {
  struct investor {
    uint keyIndex;
    uint value;
    uint paymentTime;
    uint refBonus;
  }
  struct itmap {
    mapping(address => investor) data;
    address[] keys;
  }
  itmap private s;
  address private owner;

  modifier onlyOwner() {
    require(msg.sender == owner, "access denied");
    _;
  }

  constructor() public {
    owner = msg.sender;
    s.keys.length++;
  }

  function insert(address addr, uint value) public onlyOwner returns (bool) {
    uint keyIndex = s.data[addr].keyIndex;
    if (keyIndex != 0) return false;
    s.data[addr].value = value;
    keyIndex = s.keys.length++;
    s.data[addr].keyIndex = keyIndex;
    s.keys[keyIndex] = addr;
    return true;
  }

  function investorFullInfo(address addr) public view returns(uint, uint, uint, uint) {
    return (
      s.data[addr].keyIndex,
      s.data[addr].value,
      s.data[addr].paymentTime,
      s.data[addr].refBonus
    );
  }

  function investorBaseInfo(address addr) public view returns(uint, uint, uint) {
    return (
      s.data[addr].value,
      s.data[addr].paymentTime,
      s.data[addr].refBonus
    );
  }

  function investorShortInfo(address addr) public view returns(uint, uint) {
    return (
      s.data[addr].value,
      s.data[addr].refBonus
    );
  }

  function addRefBonus(address addr, uint refBonus) public onlyOwner returns (bool) {
    if (s.data[addr].keyIndex == 0) return false;
    s.data[addr].refBonus += refBonus;
    return true;
  }

  function addValue(address addr, uint value) public onlyOwner returns (bool) {
    if (s.data[addr].keyIndex == 0) return false;
    s.data[addr].value += value;
    return true;
  }

  function setPaymentTime(address addr, uint paymentTime) public onlyOwner returns (bool) {
    if (s.data[addr].keyIndex == 0) return false;
    s.data[addr].paymentTime = paymentTime;
    return true;
  }

  function setRefBonus(address addr, uint refBonus) public onlyOwner returns (bool) {
    if (s.data[addr].keyIndex == 0) return false;
    s.data[addr].refBonus = refBonus;
    return true;
  }

  function keyFromIndex(uint i) public view returns (address) {
    return s.keys[i];
  }

  function contains(address addr) public view returns (bool) {
    return s.data[addr].keyIndex > 0;
  }

  function size() public view returns (uint) {
    return s.keys.length;
  }

  function iterStart() public pure returns (uint) {
    return 1;
  }
}


library SafeMath {
  function mul(uint256 _a, uint256 _b) internal pure returns (uint256) {
    // Gas optimization: this is cheaper than requiring '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;
    }

    uint256 c = _a * _b;
    require(c / _a == _b);

    return c;
  }

  function div(uint256 _a, uint256 _b) internal pure returns (uint256) {
    require(_b > 0); // Solidity only automatically asserts 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 c;
  }

  function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {
    require(_b <= _a);
    uint256 c = _a - _b;

    return c;
  }

  function add(uint256 _a, uint256 _b) internal pure returns (uint256) {
    uint256 c = _a + _b;
    require(c >= _a);

    return c;
  }

  function mod(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b != 0);
    return a % b;
  }
}



library Percent {
  // Solidity automatically throws when dividing by 0
  struct percent {
    uint num;
    uint den;
  }
  function mul(percent storage p, uint a) internal view returns (uint) {
    if (a == 0) {
      return 0;
    }
    return a*p.num/p.den;
  }

  function div(percent storage p, uint a) internal view returns (uint) {
    return a/p.num*p.den;
  }

  function sub(percent storage p, uint a) internal view returns (uint) {
    uint b = mul(p, a);
    if (b >= a) return 0;
    return a - b;
  }

  function add(percent storage p, uint a) internal view returns (uint) {
    return a + mul(p, a);
  }
}


contract Accessibility {
  enum AccessRank { None, Payout, Paymode, Full }
  mapping(address => AccessRank) internal m_admins;
  modifier onlyAdmin(AccessRank  r) {
    require(
      m_admins[msg.sender] == r || m_admins[msg.sender] == AccessRank.Full,
      "access denied"
    );
    _;
  }
  event LogProvideAccess(address indexed whom, uint when,  AccessRank rank);

  constructor() public {
    m_admins[msg.sender] = AccessRank.Full;
    emit LogProvideAccess(msg.sender, now, AccessRank.Full);
  }
  
  function provideAccess(address addr, AccessRank rank) public onlyAdmin(AccessRank.Full) {
    require(rank <= AccessRank.Full, "invalid access rank");
    require(m_admins[addr] != AccessRank.Full, "cannot change full access rank");
    if (m_admins[addr] != rank) {
      m_admins[addr] = rank;
      emit LogProvideAccess(addr, now, rank);
    }
  }

  function access(address addr) public view returns(AccessRank rank) {
    rank = m_admins[addr];
  }
}


contract PaymentSystem {
  // https://consensys.github.io/smart-contract-best-practices/recommendations/#favor-pull-over-push-for-external-calls
  enum Paymode { Push, Pull }
  struct PaySys {
    uint latestTime;
    uint latestKeyIndex;
    Paymode mode; 
  }
  PaySys internal m_paysys;

  modifier atPaymode(Paymode mode) {
    require(m_paysys.mode == mode, "pay mode does not the same");
    _;
  }
  event LogPaymodeChanged(uint when, Paymode indexed mode);
  
  function paymode() public view returns(Paymode mode) {
    mode = m_paysys.mode;
  }

  function changePaymode(Paymode mode) internal {
    require(mode <= Paymode.Pull, "invalid pay mode");
    if (mode == m_paysys.mode ) return; 
    if (mode == Paymode.Pull) require(m_paysys.latestTime != 0, "cannot set pull pay mode if latest time is 0");
    if (mode == Paymode.Push) m_paysys.latestTime = 0;
    m_paysys.mode = mode;
    emit LogPaymodeChanged(now, m_paysys.mode);
  }
}


library Zero {
  function requireNotZero(uint a) internal pure {
    require(a != 0, "require not zero");
  }

  function requireNotZero(address addr) internal pure {
    require(addr != address(0), "require not zero address");
  }

  function notZero(address addr) internal pure returns(bool) {
    return !(addr == address(0));
  }

  function isZero(address addr) internal pure returns(bool) {
    return addr == address(0);
  }
}


library ToAddress {
  function toAddr(uint source) internal pure returns(address) {
    return address(source);
  }

  function toAddr(bytes source) internal pure returns(address addr) {
    assembly { addr := mload(add(source,0x14)) }
    return addr;
  }
}


contract Revolution is Accessibility, PaymentSystem {
  using Percent for Percent.percent;
  using SafeMath for uint;
  using Zero for *;
  using ToAddress for *;

  // investors storage - iterable map;
  InvestorsStorage private m_investors;
  mapping(address => bool) private m_referrals;
  bool private m_nextWave;

  // automatically generates getters
  address public adminAddr;
  address public payerAddr;
  uint public waveStartup;
  uint public investmentsNum;
  uint public constant minInvesment = 10 finney; // 0.01 eth
  uint public constant maxBalance = 333e5 ether; // 33,300,000 eth
  uint public constant pauseOnNextWave = 168 hours; 

  // percents 
  Percent.percent private m_dividendsPercent = Percent.percent(333, 10000); // 333/10000*100% = 3.33%
  Percent.percent private m_adminPercent = Percent.percent(1, 10); // 1/10*100% = 10%
  Percent.percent private m_payerPercent = Percent.percent(7, 100); // 7/100*100% = 7%
  Percent.percent private m_refPercent = Percent.percent(3, 100); // 3/100*100% = 3%

  // more events for easy read from blockchain
  event LogNewInvestor(address indexed addr, uint when, uint value);
  event LogNewInvesment(address indexed addr, uint when, uint value);
  event LogNewReferral(address indexed addr, uint when, uint value);
  event LogPayDividends(address indexed addr, uint when, uint value);
  event LogPayReferrerBonus(address indexed addr, uint when, uint value);
  event LogBalanceChanged(uint when, uint balance);
  event LogAdminAddrChanged(address indexed addr, uint when);
  event LogPayerAddrChanged(address indexed addr, uint when);
  event LogNextWave(uint when);

  modifier balanceChanged {
    _;
    emit LogBalanceChanged(now, address(this).balance);
  }

  modifier notOnPause() {
    require(waveStartup+pauseOnNextWave <= now, "pause on next wave not expired");
    _;
  }

  constructor() public {
    adminAddr = msg.sender;
    emit LogAdminAddrChanged(msg.sender, now);

    payerAddr = msg.sender;
    emit LogPayerAddrChanged(msg.sender, now);

    nextWave();
    waveStartup = waveStartup.sub(pauseOnNextWave);
  }

  function() public payable {
    // investor get him dividends
    if (msg.value == 0) {
      getMyDividends();
      return;
    }

    // sender do invest
    address a = msg.data.toAddr();
    address[3] memory refs;
    if (a.notZero()) {
      refs[0] = a;
      doInvest(refs); 
    } else {
      doInvest(refs);
    }
  }

  function investorsNumber() public view returns(uint) {
    return m_investors.size()-1;
    // -1 because see InvestorsStorage constructor where keys.length++ 
  }

  function balanceETH() public view returns(uint) {
    return address(this).balance;
  }

  function payerPercent() public view returns(uint numerator, uint denominator) {
    (numerator, denominator) = (m_payerPercent.num, m_payerPercent.den);
  }

  function dividendsPercent() public view returns(uint numerator, uint denominator) {
    (numerator, denominator) = (m_dividendsPercent.num, m_dividendsPercent.den);
  }

  function adminPercent() public view returns(uint numerator, uint denominator) {
    (numerator, denominator) = (m_adminPercent.num, m_adminPercent.den);
  }

  function referrerPercent() public view returns(uint numerator, uint denominator) {
    (numerator, denominator) = (m_refPercent.num, m_refPercent.den);
  }

  function investorInfo(address addr) public view returns(uint value, uint paymentTime, uint refBonus, bool isReferral) {
    (value, paymentTime, refBonus) = m_investors.investorBaseInfo(addr);
    isReferral = m_referrals[addr];
  }

  function latestPayout() public view returns(uint timestamp) {
    return m_paysys.latestTime;
  }

  function getMyDividends() public notOnPause atPaymode(Paymode.Pull) balanceChanged {
    // check investor info
    InvestorsStorage.investor memory investor = getMemInvestor(msg.sender);
    require(investor.keyIndex > 0, "sender is not investor"); 
    if (investor.paymentTime < m_paysys.latestTime) {
      assert(m_investors.setPaymentTime(msg.sender, m_paysys.latestTime));
      investor.paymentTime = m_paysys.latestTime;
    }

    // calculate days after latest payment
    uint256 daysAfter = now.sub(investor.paymentTime).div(24 hours);
    require(daysAfter > 0, "the latest payment was earlier than 24 hours");
    assert(m_investors.setPaymentTime(msg.sender, now));

    // check enough eth 
    uint value = m_dividendsPercent.mul(investor.value) * daysAfter;
    if (address(this).balance < value + investor.refBonus) {
      nextWave();
      return;
    }

    // send dividends and ref bonus
    if (investor.refBonus > 0) {
      assert(m_investors.setRefBonus(msg.sender, 0));
      sendDividendsWithRefBonus(msg.sender, value, investor.refBonus);
    } else {
      sendDividends(msg.sender, value);
    }
  }

  function doInvest(address[3] refs) public payable notOnPause balanceChanged {
    require(msg.value >= minInvesment, "msg.value must be >= minInvesment");
    require(address(this).balance <= maxBalance, "the contract eth balance limit");

    uint value = msg.value;
    // ref system works only once for sender-referral
    if (!m_referrals[msg.sender]) {
      // level 1
      if (notZeroNotSender(refs[0]) && m_investors.contains(refs[0])) {
        uint reward = m_refPercent.mul(value);
        assert(m_investors.addRefBonus(refs[0], reward)); // referrer 1 bonus
        m_referrals[msg.sender] = true;
        value = m_dividendsPercent.add(value); // referral bonus
        emit LogNewReferral(msg.sender, now, value);
        // level 2
        if (notZeroNotSender(refs[1]) && m_investors.contains(refs[1]) && refs[0] != refs[1]) { 
          assert(m_investors.addRefBonus(refs[1], reward)); // referrer 2 bonus
          // level 3
          if (notZeroNotSender(refs[2]) && m_investors.contains(refs[2]) && refs[0] != refs[2] && refs[1] != refs[2]) { 
            assert(m_investors.addRefBonus(refs[2], reward)); // referrer 3 bonus
          }
        }
      }
    }

    // commission
    adminAddr.transfer(m_adminPercent.mul(msg.value));
    payerAddr.transfer(m_payerPercent.mul(msg.value));    
    
    // write to investors storage
    if (m_investors.contains(msg.sender)) {
      assert(m_investors.addValue(msg.sender, value));
    } else {
      assert(m_investors.insert(msg.sender, value));
      emit LogNewInvestor(msg.sender, now, value); 
    }
    
    if (m_paysys.mode == Paymode.Pull)
      assert(m_investors.setPaymentTime(msg.sender, now));

    emit LogNewInvesment(msg.sender, now, value);   
    investmentsNum++;
  }

  function payout() public notOnPause onlyAdmin(AccessRank.Payout) atPaymode(Paymode.Push) balanceChanged {
    if (m_nextWave) {
      nextWave(); 
      return;
    }
   
    // if m_paysys.latestKeyIndex == m_investors.iterStart() then payout NOT in process and we must check latest time of payment.
    if (m_paysys.latestKeyIndex == m_investors.iterStart()) {
      require(now>m_paysys.latestTime+12 hours, "the latest payment was earlier than 12 hours");
      m_paysys.latestTime = now;
    }

    uint i = m_paysys.latestKeyIndex;
    uint value;
    uint refBonus;
    uint size = m_investors.size();
    address investorAddr;
    
    // gasleft and latest key index  - prevent gas block limit 
    for (i; i < size && gasleft() > 50000; i++) {
      investorAddr = m_investors.keyFromIndex(i);
      (value, refBonus) = m_investors.investorShortInfo(investorAddr);
      value = m_dividendsPercent.mul(value);

      if (address(this).balance < value + refBonus) {
        m_nextWave = true;
        break;
      }

      if (refBonus > 0) {
        require(m_investors.setRefBonus(investorAddr, 0), "internal error");
        sendDividendsWithRefBonus(investorAddr, value, refBonus);
        continue;
      }

      sendDividends(investorAddr, value);
    }

    if (i == size) 
      m_paysys.latestKeyIndex = m_investors.iterStart();
    else 
      m_paysys.latestKeyIndex = i;
  }

  function setAdminAddr(address addr) public onlyAdmin(AccessRank.Full) {
    addr.requireNotZero();
    if (adminAddr != addr) {
      adminAddr = addr;
      emit LogAdminAddrChanged(addr, now);
    }    
  }

  function setPayerAddr(address addr) public onlyAdmin(AccessRank.Full) {
    addr.requireNotZero();
    if (payerAddr != addr) {
      payerAddr = addr;
      emit LogPayerAddrChanged(addr, now);
    }  
  }

  function setPullPaymode() public onlyAdmin(AccessRank.Paymode) atPaymode(Paymode.Push) {
    changePaymode(Paymode.Pull);
  }

  function getMemInvestor(address addr) internal view returns(InvestorsStorage.investor) {
    (uint a, uint b, uint c, uint d) = m_investors.investorFullInfo(addr);
    return InvestorsStorage.investor(a, b, c, d);
  }

  function notZeroNotSender(address addr) internal view returns(bool) {
    return addr.notZero() && addr != msg.sender;
  }

  function sendDividends(address addr, uint value) private {
    if (addr.send(value)) emit LogPayDividends(addr, now, value); 
  }

  function sendDividendsWithRefBonus(address addr, uint value,  uint refBonus) private {
    if (addr.send(value+refBonus)) {
      emit LogPayDividends(addr, now, value);
      emit LogPayReferrerBonus(addr, now, refBonus);
    }
  }

  function nextWave() private {
    m_investors = new InvestorsStorage();
    changePaymode(Paymode.Push);
    m_paysys.latestKeyIndex = m_investors.iterStart();
    investmentsNum = 0;
    waveStartup = now;
    m_nextWave = false;
    emit LogNextWave(now);
  }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"refs","type":"address[3]"}],"name":"doInvest","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"investmentsNum","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"setPayerAddr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minInvesment","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"setAdminAddr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"referrerPercent","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"payout","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"investorsNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"access","outputs":[{"name":"rank","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pauseOnNextWave","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminAddr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paymode","outputs":[{"name":"mode","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"latestPayout","outputs":[{"name":"timestamp","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"payerPercent","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"adminPercent","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"getMyDividends","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"rank","type":"uint8"}],"name":"provideAccess","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"investorInfo","outputs":[{"name":"value","type":"uint256"},{"name":"paymentTime","type":"uint256"},{"name":"refBonus","type":"uint256"},{"name":"isReferral","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"payerAddr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"waveStartup","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"balanceETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"dividendsPercent","outputs":[{"name":"numerator","type":"uint256"},{"name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"setPullPaymode","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"LogNewInvestor","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"LogNewInvesment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"LogNewReferral","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"LogPayDividends","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"LogPayReferrerBonus","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"balance","type":"uint256"}],"name":"LogBalanceChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"}],"name":"LogAdminAddrChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"addr","type":"address"},{"indexed":false,"name":"when","type":"uint256"}],"name":"LogPayerAddrChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"when","type":"uint256"}],"name":"LogNextWave","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"when","type":"uint256"},{"indexed":true,"name":"mode","type":"uint8"}],"name":"LogPaymodeChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"whom","type":"address"},{"indexed":false,"name":"when","type":"uint256"},{"indexed":false,"name":"rank","type":"uint8"}],"name":"LogProvideAccess","type":"event"}]

61014d608081905261271060a0819052600a918255600b55600160c081905260e0829052600c55600d5560076101008190526064610120819052600e91909155600f81905561018060405260036101408190526101608290526010556011553480156200006b57600080fd5b503360008181526020818152604091829020805460ff1916600390811790915582514281529182015281517f281b0406296ed2277e9ec49b1acca0b452581a995e533fa5256a3ce9355f9a60929181900390910190a26006805461010060a860020a031916336101008102919091179091556040805142815290517f668e88f9d85264651fcdf6de6ef084c112c92cba1fad30510c383c5d1ea1e691916020908290030190a260078054600160a060020a031916339081179091556040805142815290517fd7f1608e19fd9d15ac7ca872d397878f39039fcda33c52af2536ec2790bde7269181900360200190a26200016c64010000000062000195810204565b6008546200018c9062093a806401000000006200227f620002ca82021704565b600855620004cc565b6200019f620004bb565b604051809103906000f080158015620001bc573d6000803e3d6000fd5b5060048054600160a060020a031916600160a060020a0392909216919091179055620001f26000640100000000620002e2810204565b60048054604080517f80ac80b00000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216926380ac80b09282820192602092908290030181600087803b1580156200025057600080fd5b505af115801562000265573d6000803e3d6000fd5b505050506040513d60208110156200027c57600080fd5b505160025560006009554260088190556006805460ff1916905560408051918252517fc66870ef5f6257a76295d443e9221488043ec691f830f6c6128755c3518e3c759181900360200190a1565b60008083831115620002db57600080fd5b5050900390565b6001816001811115620002f157fe5b11156200035f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f696e76616c696420706179206d6f646500000000000000000000000000000000604482015290519081900360640190fd5b60035460ff1660018111156200037157fe5b8160018111156200037e57fe5b14156200038b57620004b8565b60018160018111156200039a57fe5b1415620004385760015415156200043857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f63616e6e6f74207365742070756c6c20706179206d6f6465206966206c61746560448201527f73742074696d6520697320300000000000000000000000000000000000000000606482015290519081900360840190fd5b60008160018111156200044757fe5b1415620004545760006001555b6003805482919060ff1916600183818111156200046d57fe5b021790555060035460ff1660018111156200048457fe5b6040805142815290517f8f010bfb19c67f04dbb7e355027ff728adb05787d09dd023f42af2e6554449e99181900360200190a25b50565b60405161086e806200356f83390190565b61309380620004dc6000396000f3006080604052600436106101245763ffffffff60e060020a600035041663110dc7a681146101b75780631680eb4e146101ef5780632b82aed6146102165780633d7ac9f81461023757806341a28df61461024c578063636d98b11461026d57806363bd1d4a1461029b578063653c3174146102b05780636fae3d76146102c557806373ad468a1461030a578063816f56171461031f5780638183059314610334578063922a842514610365578063a4d6bb2b1461038a578063bb41f4211461039f578063c0dab516146103b4578063d50030ad146103c9578063d70d532b146103de578063dbcbaca414610405578063dcc7094a1461044e578063eafecc7a14610463578063ecbdbb3214610478578063f2c0cdbe1461048d578063fc043cad146104a2575b600061012e612781565b3415156101425761013d6104b7565b6101b3565b61017c6000368080601f0160208091040260200160405190810160405280939291908181526020018383808284375061093e945050505050565b915061019082600160a060020a0316610945565b156101aa57600160a060020a038216815261013d81610953565b6101b381610953565b5050005b6040805160608181019092526101ed91369160049160649190839060039083908390808284375093965061095395505050505050565b005b3480156101fb57600080fd5b5061020461136a565b60408051918252519081900360200190f35b34801561022257600080fd5b506101ed600160a060020a0360043516611370565b34801561024357600080fd5b50610204611489565b34801561025857600080fd5b506101ed600160a060020a0360043516611494565b34801561027957600080fd5b506102826115b9565b6040805192835260208301919091528051918290030190f35b3480156102a757600080fd5b506101ed6115c3565b3480156102bc57600080fd5b50610204611c69565b3480156102d157600080fd5b506102e6600160a060020a0360043516611cfa565b604051808260038111156102f657fe5b60ff16815260200191505060405180910390f35b34801561031657600080fd5b50610204611d18565b34801561032b57600080fd5b50610204611d27565b34801561034057600080fd5b50610349611d2e565b60408051600160a060020a039092168252519081900360200190f35b34801561037157600080fd5b5061037a611d42565b604051808260018111156102f657fe5b34801561039657600080fd5b50610204611d4b565b3480156103ab57600080fd5b50610282611d51565b3480156103c057600080fd5b50610282611d5b565b3480156103d557600080fd5b506101ed6104b7565b3480156103ea57600080fd5b506101ed600160a060020a036004351660ff60243516611d65565b34801561041157600080fd5b50610426600160a060020a0360043516611f9f565b6040805194855260208501939093528383019190915215156060830152519081900360800190f35b34801561045a57600080fd5b50610349612077565b34801561046f57600080fd5b50610204612086565b34801561048457600080fd5b5061020461208c565b34801561049957600080fd5b50610282612091565b3480156104ae57600080fd5b506101ed61209b565b6104bf6127a0565b6000804262093a806008540111151515610523576040805160e560020a62461bcd02815260206004820152601e60248201527f7061757365206f6e206e6578742077617665206e6f7420657870697265640000604482015290519081900360640190fd5b60018060035460ff16600181111561053757fe5b1461058c576040805160e560020a62461bcd02815260206004820152601a60248201527f706179206d6f646520646f6573206e6f74207468652073616d65000000000000604482015290519081900360640190fd5b6105953361219c565b80519094506000106105f1576040805160e560020a62461bcd02815260206004820152601660248201527f73656e646572206973206e6f7420696e766573746f7200000000000000000000604482015290519081900360640190fd5b600154604085015110156106ae5760048054600154604080517f440135850000000000000000000000000000000000000000000000000000000081523394810194909452602484019190915251600160a060020a039091169163440135859160448083019260209291908290030181600087803b15801561067157600080fd5b505af1158015610685573d6000803e3d6000fd5b505050506040513d602081101561069b57600080fd5b505115156106a557fe5b60015460408501525b6106d8620151806106cc86604001514261227f90919063ffffffff16565b9063ffffffff61229616565b925060008311610758576040805160e560020a62461bcd02815260206004820152602c60248201527f746865206c6174657374207061796d656e7420776173206561726c696572207460448201527f68616e20323420686f7572730000000000000000000000000000000000000000606482015290519081900360840190fd5b60048054604080517f44013585000000000000000000000000000000000000000000000000000000008152339381019390935242602484015251600160a060020a039091169163440135859160448083019260209291908290030181600087803b1580156107c557600080fd5b505af11580156107d9573d6000803e3d6000fd5b505050506040513d60208110156107ef57600080fd5b505115156107f957fe5b826108128560200151600a6122b990919063ffffffff16565b6060860151910292508201303110156108325761082d6122e6565b6108fd565b6000846060015111156108f35760048054604080517ffbeac9c900000000000000000000000000000000000000000000000000000000815233938101939093526000602484018190529051600160a060020a039092169263fbeac9c99260448083019360209383900390910190829087803b1580156108b057600080fd5b505af11580156108c4573d6000803e3d6000fd5b505050506040513d60208110156108da57600080fd5b505115156108e457fe5b61082d33838660600151612417565b6108fd33836124cd565b604080514281523031602082015281517f32367fddaa1baa1c6a0fc5c3e8284df724bacc7b50e847c32c9f9765f9f96137929181900390910190a150505050565b6014015190565b600160a060020a0316151590565b6000804262093a8060085401111515156109b7576040805160e560020a62461bcd02815260206004820152601e60248201527f7061757365206f6e206e6578742077617665206e6f7420657870697265640000604482015290519081900360640190fd5b662386f26fc10000341015610a3c576040805160e560020a62461bcd02815260206004820152602160248201527f6d73672e76616c7565206d757374206265203e3d206d696e496e7665736d656e60448201527f7400000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6a1b8b8c9e000e82a480000030311115610aa0576040805160e560020a62461bcd02815260206004820152601e60248201527f74686520636f6e7472616374206574682062616c616e6365206c696d69740000604482015290519081900360640190fd5b3360009081526005602052604090205434925060ff161515610f8057610acd8360005b602002015161253e565b8015610b655750600454600160a060020a0316635dbe47e884600060200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610b3857600080fd5b505af1158015610b4c573d6000803e3d6000fd5b505050506040513d6020811015610b6257600080fd5b50515b15610f8057610b7b60108363ffffffff6122b916565b600480548551604080517f11302818000000000000000000000000000000000000000000000000000000008152600160a060020a0392831694810194909452602484018590525193945016916311302818916044808201926020929091908290030181600087803b158015610bef57600080fd5b505af1158015610c03573d6000803e3d6000fd5b505050506040513d6020811015610c1957600080fd5b50511515610c2357fe5b336000908152600560205260409020805460ff19166001179055610c4e600a8363ffffffff61256c16565b6040805142815260208101839052815192945033927f51dd0a60788a76a784e14408dda19543a507171e513d8a1aab1859626c30d448929181900390910190a2610c99836001610ac3565b8015610d315750600454600160a060020a0316635dbe47e884600160200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610d0457600080fd5b505af1158015610d18573d6000803e3d6000fd5b505050506040513d6020811015610d2e57600080fd5b50515b8015610d4f575060208301518351600160a060020a03908116911614155b15610f805760048054602080860151604080517f11302818000000000000000000000000000000000000000000000000000000008152600160a060020a03928316958101959095526024850186905251921692631130281892604480830193928290030181600087803b158015610dc557600080fd5b505af1158015610dd9573d6000803e3d6000fd5b505050506040513d6020811015610def57600080fd5b50511515610df957fe5b610e04836002610ac3565b8015610e9c5750600454600160a060020a0316635dbe47e884600260200201516040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050602060405180830381600087803b158015610e6f57600080fd5b505af1158015610e83573d6000803e3d6000fd5b505050506040513d6020811015610e9957600080fd5b50515b8015610eba575060408301518351600160a060020a03908116911614155b8015610edb575060408301516020840151600160a060020a03908116911614155b15610f8057600454600160a060020a031663113028188460026020020151836040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015610f4c57600080fd5b505af1158015610f60573d6000803e3d6000fd5b505050506040513d6020811015610f7657600080fd5b50511515610f8057fe5b6006546101009004600160a060020a03166108fc610f9f600c346122b9565b6040518115909202916000818181858888f19350505050158015610fc7573d6000803e3d6000fd5b50600754600160a060020a03166108fc610fe8600e3463ffffffff6122b916565b6040518115909202916000818181858888f19350505050158015611010573d6000803e3d6000fd5b5060048054604080517f5dbe47e8000000000000000000000000000000000000000000000000000000008152339381019390935251600160a060020a0390911691635dbe47e89160248083019260209291908290030181600087803b15801561107857600080fd5b505af115801561108c573d6000803e3d6000fd5b505050506040513d60208110156110a257600080fd5b5051156111505760048054604080517fca0b187800000000000000000000000000000000000000000000000000000000815233938101939093526024830185905251600160a060020a039091169163ca0b18789160448083019260209291908290030181600087803b15801561111757600080fd5b505af115801561112b573d6000803e3d6000fd5b505050506040513d602081101561114157600080fd5b5051151561114b57fe5b61122d565b60048054604080517f0fd0ae1000000000000000000000000000000000000000000000000000000000815233938101939093526024830185905251600160a060020a0390911691630fd0ae109160448083019260209291908290030181600087803b1580156111be57600080fd5b505af11580156111d2573d6000803e3d6000fd5b505050506040513d60208110156111e857600080fd5b505115156111f257fe5b6040805142815260208101849052815133927f5299e1ad8e7b5bcb9a8bfb1ce23cc0210bfea47a33518ab518a93fef68427d98928290030190a25b600160035460ff16600181111561124057fe5b14156112e75760048054604080517f44013585000000000000000000000000000000000000000000000000000000008152339381019390935242602484015251600160a060020a039091169163440135859160448083019260209291908290030181600087803b1580156112b357600080fd5b505af11580156112c7573d6000803e3d6000fd5b505050506040513d60208110156112dd57600080fd5b505115156112e757fe5b6040805142815260208101849052815133927f28c94178af4152674986540aaca61b18b89f54283f74283ef675a90583339b8f928290030190a2600980546001019055604080514281523031602082015281517f32367fddaa1baa1c6a0fc5c3e8284df724bacc7b50e847c32c9f9765f9f96137929181900390910190a1505050565b60095481565b6003803360009081526020819052604090205460ff16600381111561139157fe5b14806113ba575060033360009081526020819052604090205460ff1660038111156113b857fe5b145b15156113fe576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020613048833981519152604482015290519081900360640190fd5b61141082600160a060020a0316612581565b600754600160a060020a038381169116146114855760078054600160a060020a03841673ffffffffffffffffffffffffffffffffffffffff1990911681179091556040805142815290517fd7f1608e19fd9d15ac7ca872d397878f39039fcda33c52af2536ec2790bde7269181900360200190a25b5050565b662386f26fc1000081565b6003803360009081526020819052604090205460ff1660038111156114b557fe5b14806114de575060033360009081526020819052604090205460ff1660038111156114dc57fe5b145b1515611522576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020613048833981519152604482015290519081900360640190fd5b61153482600160a060020a0316612581565b600654600160a060020a0383811661010090920416146114855760068054600160a060020a038416610100810274ffffffffffffffffffffffffffffffffffffffff0019909216919091179091556040805142815290517f668e88f9d85264651fcdf6de6ef084c112c92cba1fad30510c383c5d1ea1e6919181900360200190a25050565b6010546011549091565b60008060008060004262093a80600854011115151561162c576040805160e560020a62461bcd02815260206004820152601e60248201527f7061757365206f6e206e6578742077617665206e6f7420657870697265640000604482015290519081900360640190fd5b6001803360009081526020819052604090205460ff16600381111561164d57fe5b1480611676575060033360009081526020819052604090205460ff16600381111561167457fe5b145b15156116ba576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020613048833981519152604482015290519081900360640190fd5b60008060035460ff1660018111156116ce57fe5b14611723576040805160e560020a62461bcd02815260206004820152601a60248201527f706179206d6f646520646f6573206e6f74207468652073616d65000000000000604482015290519081900360640190fd5b60065460ff161561173b576117366122e6565b611c25565b60048054604080517f80ac80b00000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216926380ac80b09282820192602092908290030181600087803b15801561179857600080fd5b505af11580156117ac573d6000803e3d6000fd5b505050506040513d60208110156117c257600080fd5b505160025414156118555760015461a8c0014211611850576040805160e560020a62461bcd02815260206004820152602c60248201527f746865206c6174657374207061796d656e7420776173206561726c696572207460448201527f68616e20313220686f7572730000000000000000000000000000000000000000606482015290519081900360840190fd5b426001555b60025460048054604080517f949d225d0000000000000000000000000000000000000000000000000000000081529051939a50600160a060020a039091169263949d225d928281019260209291908290030181600087803b1580156118b957600080fd5b505af11580156118cd573d6000803e3d6000fd5b505050506040513d60208110156118e357600080fd5b505193505b83871080156118f8575061c3505a115b15611b865760048054604080517f460d674b0000000000000000000000000000000000000000000000000000000081529283018a905251600160a060020a039091169163460d674b9160248083019260209291908290030181600087803b15801561196257600080fd5b505af1158015611976573d6000803e3d6000fd5b505050506040513d602081101561198c57600080fd5b505160048054604080517f993d3489000000000000000000000000000000000000000000000000000000008152600160a060020a03808616948201949094528151949750929091169263993d34899260248082019392918290030181600087803b1580156119f957600080fd5b505af1158015611a0d573d6000803e3d6000fd5b505050506040513d6040811015611a2357600080fd5b5080516020909101519096509450611a42600a8763ffffffff6122b916565b955084860130311015611a61576006805460ff19166001179055611b86565b6000851115611b715760048054604080517ffbeac9c9000000000000000000000000000000000000000000000000000000008152600160a060020a03878116948201949094526000602482018190529151939092169263fbeac9c9926044808201936020939283900390910190829087803b158015611adf57600080fd5b505af1158015611af3573d6000803e3d6000fd5b505050506040513d6020811015611b0957600080fd5b50511515611b61576040805160e560020a62461bcd02815260206004820152600e60248201527f696e7465726e616c206572726f72000000000000000000000000000000000000604482015290519081900360640190fd5b611b6c838787612417565b611b7b565b611b7b83876124cd565b6001909601956118e8565b83871415611c1f5760048054604080517f80ac80b00000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216926380ac80b09282820192602092908290030181600087803b158015611beb57600080fd5b505af1158015611bff573d6000803e3d6000fd5b505050506040513d6020811015611c1557600080fd5b5051600255611c25565b60028790555b604080514281523031602082015281517f32367fddaa1baa1c6a0fc5c3e8284df724bacc7b50e847c32c9f9765f9f96137929181900390910190a150505050505050565b60048054604080517f949d225d0000000000000000000000000000000000000000000000000000000081529051600093600193600160a060020a03169263949d225d928183019260209282900301818887803b158015611cc857600080fd5b505af1158015611cdc573d6000803e3d6000fd5b505050506040513d6020811015611cf257600080fd5b505103905090565b600160a060020a031660009081526020819052604090205460ff1690565b6a1b8b8c9e000e82a480000081565b62093a8081565b6006546101009004600160a060020a031681565b60035460ff1690565b60015490565b600e54600f549091565b600c54600d549091565b6003803360009081526020819052604090205460ff166003811115611d8657fe5b1480611daf575060033360009081526020819052604090205460ff166003811115611dad57fe5b145b1515611df3576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020613048833981519152604482015290519081900360640190fd5b6003826003811115611e0157fe5b1115611e57576040805160e560020a62461bcd02815260206004820152601360248201527f696e76616c6964206163636573732072616e6b00000000000000000000000000604482015290519081900360640190fd5b6003600160a060020a03841660009081526020819052604090205460ff166003811115611e8057fe5b1415611ed6576040805160e560020a62461bcd02815260206004820152601e60248201527f63616e6e6f74206368616e67652066756c6c206163636573732072616e6b0000604482015290519081900360640190fd5b816003811115611ee257fe5b600160a060020a03841660009081526020819052604090205460ff166003811115611f0957fe5b14611f9a57600160a060020a0383166000908152602081905260409020805483919060ff19166001836003811115611f3d57fe5b021790555082600160a060020a03167f281b0406296ed2277e9ec49b1acca0b452581a995e533fa5256a3ce9355f9a60428460405180838152602001826003811115611f8557fe5b60ff1681526020019250505060405180910390a25b505050565b600080600080600460009054906101000a9004600160a060020a0316600160a060020a031663743c6775866040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050606060405180830381600087803b15801561201557600080fd5b505af1158015612029573d6000803e3d6000fd5b505050506040513d606081101561203f57600080fd5b508051602080830151604093840151600160a060020a03909916600090815260059092529290205490979196955060ff169350915050565b600754600160a060020a031681565b60085481565b303190565b600a54600b549091565b6002803360009081526020819052604090205460ff1660038111156120bc57fe5b14806120e5575060033360009081526020819052604090205460ff1660038111156120e357fe5b145b1515612129576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020613048833981519152604482015290519081900360640190fd5b60008060035460ff16600181111561213d57fe5b14612192576040805160e560020a62461bcd02815260206004820152601a60248201527f706179206d6f646520646f6573206e6f74207468652073616d65000000000000604482015290519081900360640190fd5b61148560016125e4565b6121a46127a0565b600080600080600460009054906101000a9004600160a060020a0316600160a060020a031663634d6e57876040518263ffffffff1660e060020a0281526004018082600160a060020a0316600160a060020a03168152602001915050608060405180830381600087803b15801561221a57600080fd5b505af115801561222e573d6000803e3d6000fd5b505050506040513d608081101561224457600080fd5b508051602080830151604080850151606095860151825160808101845295865293850192909252830152918101919091529695505050505050565b6000808383111561228f57600080fd5b5050900390565b6000808083116122a557600080fd5b82848115156122b057fe5b04949350505050565b60008115156122ca575060006122e0565b6001830154835483028115156122dc57fe5b0490505b92915050565b6122ee6127c9565b604051809103906000f08015801561230a573d6000803e3d6000fd5b506004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905561234260006125e4565b60048054604080517f80ac80b00000000000000000000000000000000000000000000000000000000081529051600160a060020a03909216926380ac80b09282820192602092908290030181600087803b15801561239f57600080fd5b505af11580156123b3573d6000803e3d6000fd5b505050506040513d60208110156123c957600080fd5b505160025560006009554260088190556006805460ff1916905560408051918252517fc66870ef5f6257a76295d443e9221488043ec691f830f6c6128755c3518e3c759181900360200190a1565b604051600160a060020a0384169083830180156108fc02916000818181858888f1935050505015611f9a5760408051428152602081018490528151600160a060020a038616927f6710e0cad56444677ac916513b384a4acc6501cfb5219f59657ad4ddffef9d60928290030190a260408051428152602081018390528151600160a060020a038616927f8e3ff7e294a4411929d6ec573691ed656c8e5c691be6dc7d776fadb286dbfe82928290030190a2505050565b604051600160a060020a0383169082156108fc029083906000818181858888f19350505050156114855760408051428152602081018390528151600160a060020a038516927f6710e0cad56444677ac916513b384a4acc6501cfb5219f59657ad4ddffef9d60928290030190a25050565b600061255282600160a060020a0316610945565b80156122e05750600160a060020a03821633141592915050565b600061257883836122b9565b90910192915050565b600160a060020a03811615156125e1576040805160e560020a62461bcd02815260206004820152601860248201527f72657175697265206e6f74207a65726f20616464726573730000000000000000604482015290519081900360640190fd5b50565b60018160018111156125f257fe5b1115612648576040805160e560020a62461bcd02815260206004820152601060248201527f696e76616c696420706179206d6f646500000000000000000000000000000000604482015290519081900360640190fd5b60035460ff16600181111561265957fe5b81600181111561266557fe5b1415612670576125e1565b600181600181111561267e57fe5b1415612703576001541515612703576040805160e560020a62461bcd02815260206004820152602c60248201527f63616e6e6f74207365742070756c6c20706179206d6f6465206966206c61746560448201527f73742074696d6520697320300000000000000000000000000000000000000000606482015290519081900360840190fd5b600081600181111561271157fe5b141561271d5760006001555b6003805482919060ff19166001838181111561273557fe5b021790555060035460ff16600181111561274b57fe5b6040805142815290517f8f010bfb19c67f04dbb7e355027ff728adb05787d09dd023f42af2e6554449e99181900360200190a250565b6060604051908101604052806003906020820280388339509192915050565b608060405190810160405280600081526020016000815260200160008152602001600081525090565b60405161086e806127da833901905600608060405234801561001057600080fd5b5060028054600160a060020a0319163317905560018054906100349082810161003a565b50610084565b81548183558181111561005e5760008381526020902061005e918101908301610063565b505050565b61008191905b8082111561007d5760008155600101610069565b5090565b90565b6107db806100936000396000f3006080604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630fd0ae1081146100be57806311302818146100f6578063440135851461011a578063460d674b1461013e5780635dbe47e814610172578063634d6e5714610193578063743c6775146101da57806380ac80b014610219578063949d225d14610240578063993d348914610255578063ca0b18781461028f578063fbeac9c9146102b3575b600080fd5b3480156100ca57600080fd5b506100e2600160a060020a03600435166024356102d7565b604080519115158252519081900360200190f35b34801561010257600080fd5b506100e2600160a060020a03600435166024356103ec565b34801561012657600080fd5b506100e2600160a060020a0360043516602435610491565b34801561014a57600080fd5b5061015660043561052f565b60408051600160a060020a039092168252519081900360200190f35b34801561017e57600080fd5b506100e2600160a060020a036004351661055c565b34801561019f57600080fd5b506101b4600160a060020a0360043516610578565b604080519485526020850193909352838301919091526060830152519081900360800190f35b3480156101e657600080fd5b506101fb600160a060020a03600435166105a9565b60408051938452602084019290925282820152519081900360600190f35b34801561022557600080fd5b5061022e6105d4565b60408051918252519081900360200190f35b34801561024c57600080fd5b5061022e6105da565b34801561026157600080fd5b50610276600160a060020a03600435166105e0565b6040805192835260208301919091528051918290030190f35b34801561029b57600080fd5b506100e2600160a060020a0360043516602435610606565b3480156102bf57600080fd5b506100e2600160a060020a03600435166024356106aa565b6002546000908190600160a060020a0316331461032c576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610790833981519152604482015290519081900360640190fd5b50600160a060020a038316600090815260208190526040902054801561035557600091506103e5565b600160a060020a0384166000908152602081905260409020600190810184905580549061038490828101610748565b600160a060020a0385166000908152602081905260409020819055600180549192508591839081106103b257fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550600191505b5092915050565b600254600090600160a060020a0316331461043f576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610790833981519152604482015290519081900360640190fd5b600160a060020a03831660009081526020819052604090205415156104665750600061048b565b50600160a060020a038216600090815260208190526040902060030180548201905560015b92915050565b600254600090600160a060020a031633146104e4576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610790833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260208190526040902054151561050b5750600061048b565b50600160a060020a0391909116600090815260208190526040902060020155600190565b60018054600091908390811061054157fe5b600091825260209091200154600160a060020a031692915050565b600160a060020a03166000908152602081905260408120541190565b600160a060020a03166000908152602081905260409020805460018201546002830154600390930154919390929190565b600160a060020a03166000908152602081905260409020600181015460028201546003909201549092565b60015b90565b60015490565b600160a060020a0316600090815260208190526040902060018101546003909101549091565b600254600090600160a060020a03163314610659576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610790833981519152604482015290519081900360640190fd5b600160a060020a03831660009081526020819052604090205415156106805750600061048b565b50600160a060020a0382166000908152602081905260409020600190810180548301905592915050565b600254600090600160a060020a031633146106fd576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610790833981519152604482015290519081900360640190fd5b600160a060020a03831660009081526020819052604090205415156107245750600061048b565b50600160a060020a0391909116600090815260208190526040902060030155600190565b81548183558181111561076c5760008381526020902061076c918101908301610771565b505050565b6105d791905b8082111561078b5760008155600101610777565b509056006163636573732064656e69656400000000000000000000000000000000000000a165627a7a72305820202cd60ed611d02a3542cf0ddd798bf96ca6c1a5b963d3e40b3387a9e48dd64800296163636573732064656e69656400000000000000000000000000000000000000a165627a7a72305820a343eb0f7375e78534797610021d5e1b0aeae1e188e4bef4c431a4c0fab95b340029608060405234801561001057600080fd5b5060028054600160a060020a0319163317905560018054906100349082810161003a565b50610084565b81548183558181111561005e5760008381526020902061005e918101908301610063565b505050565b61008191905b8082111561007d5760008155600101610069565b5090565b90565b6107db806100936000396000f3006080604052600436106100b95763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630fd0ae1081146100be57806311302818146100f6578063440135851461011a578063460d674b1461013e5780635dbe47e814610172578063634d6e5714610193578063743c6775146101da57806380ac80b014610219578063949d225d14610240578063993d348914610255578063ca0b18781461028f578063fbeac9c9146102b3575b600080fd5b3480156100ca57600080fd5b506100e2600160a060020a03600435166024356102d7565b604080519115158252519081900360200190f35b34801561010257600080fd5b506100e2600160a060020a03600435166024356103ec565b34801561012657600080fd5b506100e2600160a060020a0360043516602435610491565b34801561014a57600080fd5b5061015660043561052f565b60408051600160a060020a039092168252519081900360200190f35b34801561017e57600080fd5b506100e2600160a060020a036004351661055c565b34801561019f57600080fd5b506101b4600160a060020a0360043516610578565b604080519485526020850193909352838301919091526060830152519081900360800190f35b3480156101e657600080fd5b506101fb600160a060020a03600435166105a9565b60408051938452602084019290925282820152519081900360600190f35b34801561022557600080fd5b5061022e6105d4565b60408051918252519081900360200190f35b34801561024c57600080fd5b5061022e6105da565b34801561026157600080fd5b50610276600160a060020a03600435166105e0565b6040805192835260208301919091528051918290030190f35b34801561029b57600080fd5b506100e2600160a060020a0360043516602435610606565b3480156102bf57600080fd5b506100e2600160a060020a03600435166024356106aa565b6002546000908190600160a060020a0316331461032c576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610790833981519152604482015290519081900360640190fd5b50600160a060020a038316600090815260208190526040902054801561035557600091506103e5565b600160a060020a0384166000908152602081905260409020600190810184905580549061038490828101610748565b600160a060020a0385166000908152602081905260409020819055600180549192508591839081106103b257fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550600191505b5092915050565b600254600090600160a060020a0316331461043f576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610790833981519152604482015290519081900360640190fd5b600160a060020a03831660009081526020819052604090205415156104665750600061048b565b50600160a060020a038216600090815260208190526040902060030180548201905560015b92915050565b600254600090600160a060020a031633146104e4576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610790833981519152604482015290519081900360640190fd5b600160a060020a038316600090815260208190526040902054151561050b5750600061048b565b50600160a060020a0391909116600090815260208190526040902060020155600190565b60018054600091908390811061054157fe5b600091825260209091200154600160a060020a031692915050565b600160a060020a03166000908152602081905260408120541190565b600160a060020a03166000908152602081905260409020805460018201546002830154600390930154919390929190565b600160a060020a03166000908152602081905260409020600181015460028201546003909201549092565b60015b90565b60015490565b600160a060020a0316600090815260208190526040902060018101546003909101549091565b600254600090600160a060020a03163314610659576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610790833981519152604482015290519081900360640190fd5b600160a060020a03831660009081526020819052604090205415156106805750600061048b565b50600160a060020a0382166000908152602081905260409020600190810180548301905592915050565b600254600090600160a060020a031633146106fd576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020610790833981519152604482015290519081900360640190fd5b600160a060020a03831660009081526020819052604090205415156107245750600061048b565b50600160a060020a0391909116600090815260208190526040902060030155600190565b81548183558181111561076c5760008381526020902061076c918101908301610771565b505050565b6105d791905b8082111561078b5760008155600101610777565b509056006163636573732064656e69656400000000000000000000000000000000000000a165627a7a72305820202cd60ed611d02a3542cf0ddd798bf96ca6c1a5b963d3e40b3387a9e48dd6480029

Swarm Source

bzzr://202cd60ed611d02a3542cf0ddd798bf96ca6c1a5b963d3e40b3387a9e48dd648
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

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.