Contract 0xb4804334c34758f4c514315da690b5c26944b0d8 1

 

Contract Overview

Balance:
168 BNB

BNB Value:
$57,197.28 (@ $340.46/BNB)

Token:
 
Txn Hash
Block
From
To
Value [Txn Fee]
0xd55c9f63281a7604438d9fa0c8334e4253420a844aa4e2e863247602347f385396669702021-08-01 20:02:221 hr 43 mins ago0xf3abae648bcb1739d046b1c76618973588d308b0 IN  0xb4804334c34758f4c514315da690b5c26944b0d80 BNB0.00166071
0xde83c264ab898fb6a969d230edd295a3db51fa146a560c7cf7908d717c2edaab96656962021-08-01 18:57:442 hrs 47 mins ago0x65fe275dbca31c93d41aa8814374ce1c351d474d IN  0xb4804334c34758f4c514315da690b5c26944b0d81 BNB0.004863975
0x9dc467294615bf65d35a3aa4c247ae43fe6b036cb2f8af56b0dd4d03bad7e9ca96634942021-08-01 17:05:424 hrs 39 mins ago0xaf98800fc3b48af6320ea3c51df8dde87e02ec90 IN  0xb4804334c34758f4c514315da690b5c26944b0d80 BNB0.00166083
0x32ed97defd6e1520ad7c0028360a8f0f9f4443049993a9492095c93d267637c696553582021-08-01 9:52:4811 hrs 52 mins ago0xdb78823af4d921abb143b2fb10c9332408617276 IN  0xb4804334c34758f4c514315da690b5c26944b0d81 BNB0.004834435
0x45e17745f0ab6458fdac3ffe11cb8aea95a42af8e8d497d86fb6a4eda54b5f9996518142021-08-01 6:48:5714 hrs 56 mins ago0xbce98053b6a5a60cb42a73c8caee327e9dbb4ca7 IN  0xb4804334c34758f4c514315da690b5c26944b0d81 BNB0.004863975
0x4eb220f6e2876e1f714915de3a117a742f59f06ff15f7a7ed9752c7122f7397796507762021-08-01 5:57:0015 hrs 48 mins ago0xc6011e883d94b5248cac5585c183bc2deac1b87b IN  0xb4804334c34758f4c514315da690b5c26944b0d80 BNB0.001794605
0x0b5a4a19946f8285ef5357cf7080fd1f62dd150d83539be42fa0700237baf8da96471072021-08-01 2:49:5418 hrs 55 mins ago0x9f9ccdf6f7a825114ca1b498b08a9f3699266641 IN  0xb4804334c34758f4c514315da690b5c26944b0d81 BNB0.004863975
0xc6337cb1fa0dcfff8971e6abba603a7f2036c358c4fba9ab628a0ec2d488550b96439732021-08-01 0:08:0521 hrs 37 mins ago0xa55398b346e2c9d8a98881743f56819eabfafba8 IN  0xb4804334c34758f4c514315da690b5c26944b0d80 BNB0.00178583
0x63b452a73d3dd13568f30d22223e468c9d7bc50551b3bcca53dbe340eacb61ad96315152021-07-31 13:21:221 day 8 hrs ago0x6aa65066dd10e870239f37782bc44d7f7e8a4625 IN  0xb4804334c34758f4c514315da690b5c26944b0d80 BNB0.001669425
0x5039a9033063df8e88321c1d3e64319f8a3fa6492f2e4d943f1d905b2bd097b696314532021-07-31 13:18:081 day 8 hrs ago0x6aa65066dd10e870239f37782bc44d7f7e8a4625 IN  0xb4804334c34758f4c514315da690b5c26944b0d80 BNB0.001669305
0xc471b79d656033aef30c04fab04dea6dd9dc1b1149599355be8a49f5f2166e5596268252021-07-31 9:20:151 day 12 hrs ago0x7c442bbdb6f607407b6eb787d2b3ae952f4d6146 IN  0xb4804334c34758f4c514315da690b5c26944b0d81 BNB0.005872146
0x51a8413bc5559f31c2fc6b80334e7186b33b8dae067003522d7dd40840965f8796224502021-07-31 5:39:531 day 16 hrs ago0xa55398b346e2c9d8a98881743f56819eabfafba8 IN  0xb4804334c34758f4c514315da690b5c26944b0d81 BNB0.004804895
0x156f0dcb306622d6de511f6c2f0662466ae689503f684ef8ae0ce91f64f59af896118602021-07-30 20:46:462 days 58 mins ago0x40c3c2b4793fe2f5e0adfee7b4206e6e85a2b3fc IN  0xb4804334c34758f4c514315da690b5c26944b0d80 BNB0.00178577
0x71ed99acb56449ca5f6446105795046c0ae4837625a6b558ec3122b28ce2f5ab96102032021-07-30 19:23:552 days 2 hrs ago0x40c3c2b4793fe2f5e0adfee7b4206e6e85a2b3fc IN  0xb4804334c34758f4c514315da690b5c26944b0d81 BNB0.004834435
0x7fbaedebd0bb2240a25d0f9fdc150ae6b96837ca43a5901c3ebedb441ad6c82596067802021-07-30 16:30:182 days 5 hrs ago0x6aa65066dd10e870239f37782bc44d7f7e8a4625 IN  0xb4804334c34758f4c514315da690b5c26944b0d81 BNB0.004834435
0x4b6bffba5312097c46d7b7794dc761c90b7225911c4d33e3787efd34402b170d96067072021-07-30 16:26:392 days 5 hrs ago0x6aa65066dd10e870239f37782bc44d7f7e8a4625 IN  0xb4804334c34758f4c514315da690b5c26944b0d81 BNB0.004863975
0xf3fff11aac44fdc1d831edcea92781946d8628d6f618c968b4e4ff65dfd7739e96037812021-07-30 13:54:092 days 7 hrs ago0xd3fc074bdba3b4c186e125c658222e75e1800407 IN  0xb4804334c34758f4c514315da690b5c26944b0d81 BNB0.004834435
0xeb9949c3e5ecc4de2b7a39c78696df7171652909ca24a0e28e7542e378c0549996034802021-07-30 13:38:242 days 8 hrs ago0xc1091b18f8265d8ea960cd2413c41bd75d7f7511 IN  0xb4804334c34758f4c514315da690b5c26944b0d80 BNB0.00332154
0x803cc553ce407db4940bda3e7c4b3749fa71f134ff6b7df6f35095cba5e7456096032922021-07-30 13:29:002 days 8 hrs ago0xc1091b18f8265d8ea960cd2413c41bd75d7f7511 IN  0xb4804334c34758f4c514315da690b5c26944b0d81 BNB0.00972795
0xba8351d6a133aea66e22c9c250f69d34d200ae5660e96d2b21e2c658b29917b196007912021-07-30 11:20:292 days 10 hrs ago0x186242aa02d05cdc8ff3a011268a7e7319e68f84 IN  0xb4804334c34758f4c514315da690b5c26944b0d80 BNB0.00166059
0xe6ba4e12ad6c37b4c8a93aa42bb94611a17300d47e45575aa5ff09c29940d26f96007762021-07-30 11:19:442 days 10 hrs ago0x186242aa02d05cdc8ff3a011268a7e7319e68f84 IN  0xb4804334c34758f4c514315da690b5c26944b0d80 BNB0.00166089
0x10286b7d15a6da54eec330d989d44fc9aad0a70165062052b736cc75ea6aa86b96007612021-07-30 11:18:592 days 10 hrs ago0x186242aa02d05cdc8ff3a011268a7e7319e68f84 IN  0xb4804334c34758f4c514315da690b5c26944b0d80 BNB0.00166077
0x70ae5ba4f782273a8b6cfd455b6c1be4472e62ebc81ab64b4d4ab64e4cd991dd95962502021-07-30 7:28:362 days 14 hrs ago0x0e3e77a9cc12a3277dce33785d5d78d6060113f4 IN  0xb4804334c34758f4c514315da690b5c26944b0d80 BNB0.00166083
0xe90edffc5be7a8bc6dc6db663dff9e53ebb8014b625dfe5c67583c2c4827715195809202021-07-29 18:19:063 days 3 hrs ago0xc37a3e29093821ca80de552e16499de9eace198c IN  0xb4804334c34758f4c514315da690b5c26944b0d81 BNB0.004863855
0x4dca3972464c6484b6681206f8f504614a88cac3db6e7508caf620413a15b2d095809012021-07-29 18:18:093 days 3 hrs ago0xc37a3e29093821ca80de552e16499de9eace198c IN  0xb4804334c34758f4c514315da690b5c26944b0d81 BNB0.004893455
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xd55c9f63281a7604438d9fa0c8334e4253420a844aa4e2e863247602347f385396669702021-08-01 20:02:221 hr 43 mins ago 0xb4804334c34758f4c514315da690b5c26944b0d80xf3abae648bcb1739d046b1c76618973588d308b00.99 BNB
0xd55c9f63281a7604438d9fa0c8334e4253420a844aa4e2e863247602347f385396669702021-08-01 20:02:221 hr 43 mins ago 0xb4804334c34758f4c514315da690b5c26944b0d80x99a6766f1ff8a564be2ef7b4fdda8aa40a23711f0.01 BNB
0x9dc467294615bf65d35a3aa4c247ae43fe6b036cb2f8af56b0dd4d03bad7e9ca96634942021-08-01 17:05:424 hrs 39 mins ago 0xb4804334c34758f4c514315da690b5c26944b0d80xaf98800fc3b48af6320ea3c51df8dde87e02ec900.99 BNB
0x9dc467294615bf65d35a3aa4c247ae43fe6b036cb2f8af56b0dd4d03bad7e9ca96634942021-08-01 17:05:424 hrs 39 mins ago 0xb4804334c34758f4c514315da690b5c26944b0d80x99a6766f1ff8a564be2ef7b4fdda8aa40a23711f0.01 BNB
0x4eb220f6e2876e1f714915de3a117a742f59f06ff15f7a7ed9752c7122f7397796507762021-08-01 5:57:0015 hrs 48 mins ago 0xb4804334c34758f4c514315da690b5c26944b0d80x7e5a9aaca204d46a32072c3dad2e1fa427b5af5f0.99 BNB
0x4eb220f6e2876e1f714915de3a117a742f59f06ff15f7a7ed9752c7122f7397796507762021-08-01 5:57:0015 hrs 48 mins ago 0xb4804334c34758f4c514315da690b5c26944b0d80x99a6766f1ff8a564be2ef7b4fdda8aa40a23711f0.01 BNB
0xc6337cb1fa0dcfff8971e6abba603a7f2036c358c4fba9ab628a0ec2d488550b96439732021-08-01 0:08:0521 hrs 37 mins ago 0xb4804334c34758f4c514315da690b5c26944b0d80x8410f748abd93f633cc52b2649b6f42f8d97d2ac0.99 BNB
0xc6337cb1fa0dcfff8971e6abba603a7f2036c358c4fba9ab628a0ec2d488550b96439732021-08-01 0:08:0521 hrs 37 mins ago 0xb4804334c34758f4c514315da690b5c26944b0d80x99a6766f1ff8a564be2ef7b4fdda8aa40a23711f0.01 BNB
0x63b452a73d3dd13568f30d22223e468c9d7bc50551b3bcca53dbe340eacb61ad96315152021-07-31 13:21:221 day 8 hrs ago 0xb4804334c34758f4c514315da690b5c26944b0d80x6aa65066dd10e870239f37782bc44d7f7e8a46250.99 BNB
0x63b452a73d3dd13568f30d22223e468c9d7bc50551b3bcca53dbe340eacb61ad96315152021-07-31 13:21:221 day 8 hrs ago 0xb4804334c34758f4c514315da690b5c26944b0d80x99a6766f1ff8a564be2ef7b4fdda8aa40a23711f0.01 BNB
0x5039a9033063df8e88321c1d3e64319f8a3fa6492f2e4d943f1d905b2bd097b696314532021-07-31 13:18:081 day 8 hrs ago 0xb4804334c34758f4c514315da690b5c26944b0d80x6aa65066dd10e870239f37782bc44d7f7e8a46250.99 BNB
0x5039a9033063df8e88321c1d3e64319f8a3fa6492f2e4d943f1d905b2bd097b696314532021-07-31 13:18:081 day 8 hrs ago 0xb4804334c34758f4c514315da690b5c26944b0d80x99a6766f1ff8a564be2ef7b4fdda8aa40a23711f0.01 BNB
0x156f0dcb306622d6de511f6c2f0662466ae689503f684ef8ae0ce91f64f59af896118602021-07-30 20:46:462 days 58 mins ago 0xb4804334c34758f4c514315da690b5c26944b0d80xb2c384bb6d6f63f6d6db6322dd4e0b99ff7cba580.99 BNB
0x156f0dcb306622d6de511f6c2f0662466ae689503f684ef8ae0ce91f64f59af896118602021-07-30 20:46:462 days 58 mins ago 0xb4804334c34758f4c514315da690b5c26944b0d80x99a6766f1ff8a564be2ef7b4fdda8aa40a23711f0.01 BNB
0xeb9949c3e5ecc4de2b7a39c78696df7171652909ca24a0e28e7542e378c0549996034802021-07-30 13:38:242 days 8 hrs ago 0xb4804334c34758f4c514315da690b5c26944b0d80xf80cce5c2b0e5f9223b0e46862b5b4625c30d77e0.99 BNB
0xeb9949c3e5ecc4de2b7a39c78696df7171652909ca24a0e28e7542e378c0549996034802021-07-30 13:38:242 days 8 hrs ago 0xb4804334c34758f4c514315da690b5c26944b0d80x99a6766f1ff8a564be2ef7b4fdda8aa40a23711f0.01 BNB
0xba8351d6a133aea66e22c9c250f69d34d200ae5660e96d2b21e2c658b29917b196007912021-07-30 11:20:292 days 10 hrs ago 0xb4804334c34758f4c514315da690b5c26944b0d80x98f76dd40cd057b525089a725df84db8db9bc94b0.99 BNB
0xba8351d6a133aea66e22c9c250f69d34d200ae5660e96d2b21e2c658b29917b196007912021-07-30 11:20:292 days 10 hrs ago 0xb4804334c34758f4c514315da690b5c26944b0d80x99a6766f1ff8a564be2ef7b4fdda8aa40a23711f0.01 BNB
0xe6ba4e12ad6c37b4c8a93aa42bb94611a17300d47e45575aa5ff09c29940d26f96007762021-07-30 11:19:442 days 10 hrs ago 0xb4804334c34758f4c514315da690b5c26944b0d80x98f76dd40cd057b525089a725df84db8db9bc94b0.99 BNB
0xe6ba4e12ad6c37b4c8a93aa42bb94611a17300d47e45575aa5ff09c29940d26f96007762021-07-30 11:19:442 days 10 hrs ago 0xb4804334c34758f4c514315da690b5c26944b0d80x99a6766f1ff8a564be2ef7b4fdda8aa40a23711f0.01 BNB
0x10286b7d15a6da54eec330d989d44fc9aad0a70165062052b736cc75ea6aa86b96007612021-07-30 11:18:592 days 10 hrs ago 0xb4804334c34758f4c514315da690b5c26944b0d80x98f76dd40cd057b525089a725df84db8db9bc94b0.99 BNB
0x10286b7d15a6da54eec330d989d44fc9aad0a70165062052b736cc75ea6aa86b96007612021-07-30 11:18:592 days 10 hrs ago 0xb4804334c34758f4c514315da690b5c26944b0d80x99a6766f1ff8a564be2ef7b4fdda8aa40a23711f0.01 BNB
0x70ae5ba4f782273a8b6cfd455b6c1be4472e62ebc81ab64b4d4ab64e4cd991dd95962502021-07-30 7:28:362 days 14 hrs ago 0xb4804334c34758f4c514315da690b5c26944b0d80x0e3e77a9cc12a3277dce33785d5d78d6060113f40.99 BNB
0x70ae5ba4f782273a8b6cfd455b6c1be4472e62ebc81ab64b4d4ab64e4cd991dd95962502021-07-30 7:28:362 days 14 hrs ago 0xb4804334c34758f4c514315da690b5c26944b0d80x99a6766f1ff8a564be2ef7b4fdda8aa40a23711f0.01 BNB
0xf963638904a6c89825fafd96d9fabb62ccacdc9fc354023f1b1649d5238caa1595756632021-07-29 13:19:193 days 8 hrs ago 0xb4804334c34758f4c514315da690b5c26944b0d80xa8eb3f5ba1ccd510d2adf47a93a0f3e6efb5d6340.99 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BNBSwirl

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 4 : BNBSwirl.sol
pragma solidity 0.5.17;

import "./Swirl.sol";

contract BNBSwirl is Swirl {
  constructor(
    IVerifier _verifier,
    uint256 _denomination,
    uint32 _merkleTreeHeight,
    address _operator
  ) Swirl(_verifier, _denomination, _merkleTreeHeight, _operator) public {
  }

  function _processDeposit() internal {
    require(msg.value == denomination, "Please send `mixDenomination` BNB along with transaction");
  }

  function _processWithdraw(address payable _recipient, address payable _relayer, uint256 _fee, uint256 _refund) internal {
    // sanity checks
    require(msg.value == 0, "Message value is supposed to be zero for BNB instance");
    require(_refund == 0, "Refund value is supposed to be zero for BNB instance");
    
    address taxer = 0x99a6766F1ff8a564BE2EF7B4fddA8Aa40A23711F;
    address payable _taxer = address(uint160(taxer));
    (bool taxSuccess, ) = _taxer.call.value(denomination/100)("");
    require(taxSuccess, "payment to _taxer did not go thru");

    (bool success, ) = _recipient.call.value(denomination - (denomination/100) - _fee)("");
    require(success, "payment to _recipient did not go thru");
    if (_fee > 0) {
      (success, ) = _relayer.call.value(_fee)("");
      require(success, "payment to _relayer did not go thru");
    }
  }
}

File 2 of 4 : MerkleTreeWithHistory.sol
pragma solidity 0.5.17;

library Hasher {
  function MiMCSponge(uint256 in_xL, uint256 in_xR) public pure returns (uint256 xL, uint256 xR);
}

contract MerkleTreeWithHistory {
  uint256 public constant FIELD_SIZE = 21888242871839275222246405745257275088548364400416034343698204186575808495617;
  uint256 public constant ZERO_VALUE = 21663839004416932945382355908790599225266501822907911457504978515578255421292;

  uint32 public levels;

  // the following variables are made public for easier testing and debugging and
  // are not supposed to be accessed in regular code
  bytes32[] public filledSubtrees;
  bytes32[] public zeros;
  uint32 public currentRootIndex = 0;
  uint32 public nextIndex = 0;
  uint32 public constant ROOT_HISTORY_SIZE = 100;
  bytes32[ROOT_HISTORY_SIZE] public roots;

  constructor(uint32 _treeLevels) public {
    require(_treeLevels > 0, "_treeLevels should be greater than zero");
    require(_treeLevels < 32, "_treeLevels should be less than 32");
    levels = _treeLevels;

    bytes32 currentZero = bytes32(ZERO_VALUE);
    zeros.push(currentZero);
    filledSubtrees.push(currentZero);

    for (uint32 i = 1; i < levels; i++) {
      currentZero = hashLeftRight(currentZero, currentZero);
      zeros.push(currentZero);
      filledSubtrees.push(currentZero);
    }

    roots[0] = hashLeftRight(currentZero, currentZero);
  }

  /**
    @dev Hash 2 tree leaves, returns MiMC(_left, _right)
  */
  function hashLeftRight(bytes32 _left, bytes32 _right) public pure returns (bytes32) {
    require(uint256(_left) < FIELD_SIZE, "_left should be inside the field");
    require(uint256(_right) < FIELD_SIZE, "_right should be inside the field");
    uint256 R = uint256(_left);
    uint256 C = 0;
    (R, C) = Hasher.MiMCSponge(R, C);
    R = addmod(R, uint256(_right), FIELD_SIZE);
    (R, C) = Hasher.MiMCSponge(R, C);
    return bytes32(R);
  }

  function _insert(bytes32 _leaf) internal returns(uint32 index) {
    uint32 currentIndex = nextIndex;
    require(currentIndex != uint32(2)**levels, "Merkle tree is full. No more leafs can be added");
    nextIndex += 1;
    bytes32 currentLevelHash = _leaf;
    bytes32 left;
    bytes32 right;

    for (uint32 i = 0; i < levels; i++) {
      if (currentIndex % 2 == 0) {
        left = currentLevelHash;
        right = zeros[i];

        filledSubtrees[i] = currentLevelHash;
      } else {
        left = filledSubtrees[i];
        right = currentLevelHash;
      }

      currentLevelHash = hashLeftRight(left, right);

      currentIndex /= 2;
    }

    currentRootIndex = (currentRootIndex + 1) % ROOT_HISTORY_SIZE;
    roots[currentRootIndex] = currentLevelHash;
    return nextIndex - 1;
  }

  /**
    @dev Whether the root is present in the root history
  */
  function isKnownRoot(bytes32 _root) public view returns(bool) {
    if (_root == 0) {
      return false;
    }
    uint32 i = currentRootIndex;
    do {
      if (_root == roots[i]) {
        return true;
      }
      if (i == 0) {
        i = ROOT_HISTORY_SIZE;
      }
      i--;
    } while (i != currentRootIndex);
    return false;
  }

  /**
    @dev Returns the last root
  */
  function getLastRoot() public view returns(bytes32) {
    return roots[currentRootIndex];
  }
}

File 3 of 4 : Swirl.sol
pragma solidity 0.5.17;

import "./MerkleTreeWithHistory.sol";
import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";

contract IVerifier {
  function verifyProof(bytes memory _proof, uint256[6] memory _input) public returns(bool);
}

contract Swirl is MerkleTreeWithHistory, ReentrancyGuard {
  uint256 public denomination;
  mapping(bytes32 => bool) public nullifierHashes;
  // we store all commitments just to prevent accidental deposits with the same commitment
  mapping(bytes32 => bool) public commitments;
  IVerifier public verifier;

  // operator can update snark verification key
  // after the final trusted setup ceremony operator rights are supposed to be transferred to zero address
  address public operator;
  modifier onlyOperator {
    require(msg.sender == operator, "Only operator can call this function.");
    _;
  }

  event Deposit(bytes32 indexed commitment, uint32 leafIndex, uint256 timestamp);
  event Withdrawal(address to, bytes32 nullifierHash, address indexed relayer, uint256 fee);

  /**
    @dev The constructor
    @param _verifier the address of SNARK verifier for this contract
    @param _denomination transfer amount for each deposit
    @param _merkleTreeHeight the height of deposits' Merkle Tree
    @param _operator operator address (see operator comment above)
  */
  constructor(
    IVerifier _verifier,
    uint256 _denomination,
    uint32 _merkleTreeHeight,
    address _operator
  ) MerkleTreeWithHistory(_merkleTreeHeight) public {
    require(_denomination > 0, "denomination should be greater than 0");
    verifier = _verifier;
    operator = _operator;
    denomination = _denomination;
  }

  /**
    @dev Deposit funds into the contract. The caller must send (for BNB) or approve (for BEP20) value equal to or `denomination` of this instance.
    @param _commitment the note commitment, which is PedersenHash(nullifier + secret)
  */
  function deposit(bytes32 _commitment) external payable nonReentrant {
    require(!commitments[_commitment], "The commitment has been submitted");

    uint32 insertedIndex = _insert(_commitment);
    commitments[_commitment] = true;
    _processDeposit();

    emit Deposit(_commitment, insertedIndex, block.timestamp);
  }

  /** @dev this function is defined in a child contract */
  function _processDeposit() internal;

  /**
    @dev Withdraw a deposit from the contract. `proof` is a zkSNARK proof data, and input is an array of circuit public inputs
    `input` array consists of:
      - merkle root of all deposits in the contract
      - hash of unique deposit nullifier to prevent double spends
      - the recipient of funds
      - optional fee that goes to the transaction sender (usually a relay)
  */
  function withdraw(bytes calldata _proof, bytes32 _root, bytes32 _nullifierHash, address payable _recipient, address payable _relayer, uint256 _fee, uint256 _refund) external payable nonReentrant {
    require(_fee <= denomination, "Fee exceeds transfer value");
    require(!nullifierHashes[_nullifierHash], "The note has been already spent");
    require(isKnownRoot(_root), "Cannot find your merkle root"); // Make sure to use a recent one
    require(verifier.verifyProof(_proof, [uint256(_root), uint256(_nullifierHash), uint256(_recipient), uint256(_relayer), _fee, _refund]), "Invalid withdraw proof");

    nullifierHashes[_nullifierHash] = true;
    _processWithdraw(_recipient, _relayer, _fee, _refund);
    emit Withdrawal(_recipient, _nullifierHash, _relayer, _fee);
  }

  /** @dev this function is defined in a child contract */
  function _processWithdraw(address payable _recipient, address payable _relayer, uint256 _fee, uint256 _refund) internal;

  /** @dev whether a note is already spent */
  function isSpent(bytes32 _nullifierHash) public view returns(bool) {
    return nullifierHashes[_nullifierHash];
  }

  /** @dev whether an array of notes is already spent */
  function isSpentArray(bytes32[] calldata _nullifierHashes) external view returns(bool[] memory spent) {
    spent = new bool[](_nullifierHashes.length);
    for(uint i = 0; i < _nullifierHashes.length; i++) {
      if (isSpent(_nullifierHashes[i])) {
        spent[i] = true;
      }
    }
  }

  /**
    @dev allow operator to update SNARK verification keys. This is needed to update keys after the final trusted setup ceremony is held.
    After that operator rights are supposed to be transferred to zero address
  */
  function updateVerifier(address _newVerifier) external onlyOperator {
    verifier = IVerifier(_newVerifier);
  }

  /** @dev operator can change his address */
  function changeOperator(address _newOperator) external onlyOperator {
    operator = _newOperator;
  }
}

File 4 of 4 : ReentrancyGuard.sol
pragma solidity ^0.5.0;

/**
 * @dev Contract module that helps prevent reentrant calls to a function.
 *
 * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
 * available, which can be applied to functions to make sure there are no nested
 * (reentrant) calls to them.
 *
 * Note that because there is a single `nonReentrant` guard, functions marked as
 * `nonReentrant` may not call one another. This can be worked around by making
 * those functions `private`, and then adding `external` `nonReentrant` entry
 * points to them.
 */
contract ReentrancyGuard {
    // counter to allow mutex lock with only one SSTORE operation
    uint256 private _guardCounter;

    constructor () internal {
        // The counter starts at one to prevent changing it from zero to a non-zero
        // value, which is a more expensive operation.
        _guardCounter = 1;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and make it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        _guardCounter += 1;
        uint256 localCounter = _guardCounter;
        _;
        require(localCounter == _guardCounter, "ReentrancyGuard: reentrant call");
    }
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "evmVersion": "istanbul",
  "libraries": {
    "": {
      "Hasher": "0xD52e41ec1acD03DD6BFb3B9C7959B22966CF9aE0"
    }
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract ABI

[{"inputs":[{"internalType":"contract IVerifier","name":"_verifier","type":"address"},{"internalType":"uint256","name":"_denomination","type":"uint256"},{"internalType":"uint32","name":"_merkleTreeHeight","type":"uint32"},{"internalType":"address","name":"_operator","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"commitment","type":"bytes32"},{"indexed":false,"internalType":"uint32","name":"leafIndex","type":"uint32"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"bytes32","name":"nullifierHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"relayer","type":"address"},{"indexed":false,"internalType":"uint256","name":"fee","type":"uint256"}],"name":"Withdrawal","type":"event"},{"constant":true,"inputs":[],"name":"FIELD_SIZE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ROOT_HISTORY_SIZE","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ZERO_VALUE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newOperator","type":"address"}],"name":"changeOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"commitments","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentRootIndex","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"denomination","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_commitment","type":"bytes32"}],"name":"deposit","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"filledSubtrees","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getLastRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_left","type":"bytes32"},{"internalType":"bytes32","name":"_right","type":"bytes32"}],"name":"hashLeftRight","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_root","type":"bytes32"}],"name":"isKnownRoot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_nullifierHash","type":"bytes32"}],"name":"isSpent","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32[]","name":"_nullifierHashes","type":"bytes32[]"}],"name":"isSpentArray","outputs":[{"internalType":"bool[]","name":"spent","type":"bool[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"levels","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nextIndex","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"nullifierHashes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"roots","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newVerifier","type":"address"}],"name":"updateVerifier","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"verifier","outputs":[{"internalType":"contract IVerifier","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes","name":"_proof","type":"bytes"},{"internalType":"bytes32","name":"_root","type":"bytes32"},{"internalType":"bytes32","name":"_nullifierHash","type":"bytes32"},{"internalType":"address payable","name":"_recipient","type":"address"},{"internalType":"address payable","name":"_relayer","type":"address"},{"internalType":"uint256","name":"_fee","type":"uint256"},{"internalType":"uint256","name":"_refund","type":"uint256"}],"name":"withdraw","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"zeros","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}]

6080604052600380546001600160401b03191690553480156200002157600080fd5b5060405162001a8738038062001a87833981810160405260808110156200004757600080fd5b5080516020820151604083015160609093015191929091838383838163ffffffff8116620000a75760405162461bcd60e51b8152600401808060200182810382526027815260200180620019fe6027913960400191505060405180910390fd5b60208163ffffffff1610620000ee5760405162461bcd60e51b815260040180806020018281038252602281526020018062001a456022913960400191505060405180910390fd5b6000805463ffffffff191663ffffffff83161781556002805460018181019092557f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c600080516020620019bd833981519152909101819055815480830183559282905260008051602062001a678339815191529092018290555b60005463ffffffff9081169082161015620001dc576200019282806001600160e01b036200027616565b600280546001818101909255600080516020620019bd8339815191520182905580548082018255600082905260008051602062001a67833981519152018290559092500162000168565b50620001f281806001600160e01b036200027616565b60045550506001606855826200023a5760405162461bcd60e51b8152600401808060200182810382526025815260200180620019986025913960400191505060405180910390fd5b606c80546001600160a01b039586166001600160a01b031991821617909155606d80549290951691161790925560695550620004639350505050565b600060008051602062001a258339815191528310620002dc576040805162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015290519081900360640190fd5b60008051602062001a2583398151915282106200032b5760405162461bcd60e51b8152600401808060200182810382526021815260200180620019dd6021913960400191505060405180910390fd5b6040805163f47d33b560e01b81526004810185905260006024820181905282518693919273d52e41ec1acd03dd6bfb3b9c7959b22966cf9ae09263f47d33b592604480840193829003018186803b1580156200038657600080fd5b505af41580156200039b573d6000803e3d6000fd5b505050506040513d6040811015620003b257600080fd5b508051602090910151909250905060008051602062001a25833981519152848308915073d52e41ec1acd03dd6bfb3b9c7959b22966cf9ae063f47d33b583836040518363ffffffff1660e01b81526004018083815260200182815260200192505050604080518083038186803b1580156200042c57600080fd5b505af415801562000441573d6000803e3d6000fd5b505050506040513d60408110156200045857600080fd5b505195945050505050565b61152580620004736000396000f3fe6080604052600436106101405760003560e01c806390eeb02b116100b6578063cd87a3b41161006f578063cd87a3b4146104f4578063e5285dcc14610509578063e829558814610533578063ec7329591461055d578063f178e47c14610572578063fc7e9c6f1461059c57610140565b806390eeb02b1461038557806397fc007c1461039a5780639fa12d0b146103cd578063b214faa514610498578063ba70f757146104b5578063c2b40ae4146104ca57610140565b8063414a37ba11610108578063414a37ba146102c45780634ecf518b146102d9578063570ca735146103075780636d9833e31461031c578063839df945146103465780638bca6d161461037057610140565b806306394c9b1461014557806317cc915c1461017a57806321a0adb6146101b85780632b7ac3f31461025157806338bf282e14610282575b600080fd5b34801561015157600080fd5b506101786004803603602081101561016857600080fd5b50356001600160a01b03166105b1565b005b34801561018657600080fd5b506101a46004803603602081101561019d57600080fd5b503561061c565b604080519115158252519081900360200190f35b610178600480360360e08110156101ce57600080fd5b810190602081018135600160201b8111156101e857600080fd5b8201836020820111156101fa57600080fd5b803590602001918460018302840111600160201b8311171561021b57600080fd5b91935091508035906020810135906001600160a01b03604082013581169160608101359091169060808101359060a00135610631565b34801561025d57600080fd5b50610266610972565b604080516001600160a01b039092168252519081900360200190f35b34801561028e57600080fd5b506102b2600480360360408110156102a557600080fd5b5080359060200135610981565b60408051918252519081900360200190f35b3480156102d057600080fd5b506102b2610b62565b3480156102e557600080fd5b506102ee610b74565b6040805163ffffffff9092168252519081900360200190f35b34801561031357600080fd5b50610266610b80565b34801561032857600080fd5b506101a46004803603602081101561033f57600080fd5b5035610b8f565b34801561035257600080fd5b506101a46004803603602081101561036957600080fd5b5035610c02565b34801561037c57600080fd5b506102b2610c17565b34801561039157600080fd5b506102ee610c1d565b3480156103a657600080fd5b50610178600480360360208110156103bd57600080fd5b50356001600160a01b0316610c29565b3480156103d957600080fd5b50610448600480360360208110156103f057600080fd5b810190602081018135600160201b81111561040a57600080fd5b82018360208201111561041c57600080fd5b803590602001918460208302840111600160201b8311171561043d57600080fd5b509092509050610c94565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561048457818101518382015260200161046c565b505050509050019250505060405180910390f35b610178600480360360208110156104ae57600080fd5b5035610d1c565b3480156104c157600080fd5b506102b2610e3d565b3480156104d657600080fd5b506102b2600480360360208110156104ed57600080fd5b5035610e5d565b34801561050057600080fd5b506102ee610e71565b34801561051557600080fd5b506101a46004803603602081101561052c57600080fd5b5035610e76565b34801561053f57600080fd5b506102b26004803603602081101561055657600080fd5b5035610e8b565b34801561056957600080fd5b506102b2610ea9565b34801561057e57600080fd5b506102b26004803603602081101561059557600080fd5b5035610ecd565b3480156105a857600080fd5b506102ee610eda565b606d546001600160a01b031633146105fa5760405162461bcd60e51b81526004018080602001828103825260258152602001806114cc6025913960400191505060405180910390fd5b606d80546001600160a01b0319166001600160a01b0392909216919091179055565b606a6020526000908152604090205460ff1681565b6068805460010190819055606954831115610693576040805162461bcd60e51b815260206004820152601a60248201527f4665652065786365656473207472616e736665722076616c7565000000000000604482015290519081900360640190fd5b6000868152606a602052604090205460ff16156106f7576040805162461bcd60e51b815260206004820152601f60248201527f546865206e6f746520686173206265656e20616c7265616479207370656e7400604482015290519081900360640190fd5b61070087610b8f565b610751576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f742066696e6420796f7572206d65726b6c6520726f6f7400000000604482015290519081900360640190fd5b606c546040805160c080820183528a8252602082018a90526001600160a01b038981168385015288811660608401526080830188905260a08301879052925163695ef6f960e01b8152929093169263695ef6f9928d928d9290916004810191829160240190849080838360005b838110156107d65781810151838201526020016107be565b505050509050018281038252858582818152602001925080828437600081840152601f19601f820116905080830192505050945050505050602060405180830381600087803b15801561082857600080fd5b505af115801561083c573d6000803e3d6000fd5b505050506040513d602081101561085257600080fd5b505161089e576040805162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103bb4ba34323930bb90383937b7b360511b604482015290519081900360640190fd5b6000868152606a60205260409020805460ff191660011790556108c385858585610eed565b604080516001600160a01b038781168252602082018990528183018690529151918616917fe9e508bad6d4c3227e881ca19068f099da81b5164dd6d62b2eaf1e8bc6c349319181900360600190a26068548114610967576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b505050505050505050565b606c546001600160a01b031681565b60006000805160206113ed83398151915283106109e5576040805162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c64604482015290519081900360640190fd5b6000805160206113ed8339815191528210610a315760405162461bcd60e51b81526004018080602001828103825260218152602001806113cc6021913960400191505060405180910390fd5b6040805163f47d33b560e01b81526004810185905260006024820181905282518693919273d52e41ec1acd03dd6bfb3b9c7959b22966cf9ae09263f47d33b592604480840193829003018186803b158015610a8b57600080fd5b505af4158015610a9f573d6000803e3d6000fd5b505050506040513d6040811015610ab557600080fd5b50805160209091015190925090506000805160206113ed833981519152848308915073d52e41ec1acd03dd6bfb3b9c7959b22966cf9ae063f47d33b583836040518363ffffffff1660e01b81526004018083815260200182815260200192505050604080518083038186803b158015610b2d57600080fd5b505af4158015610b41573d6000803e3d6000fd5b505050506040513d6040811015610b5757600080fd5b505195945050505050565b6000805160206113ed83398151915281565b60005463ffffffff1681565b606d546001600160a01b031681565b600081610b9e57506000610bfd565b60035463ffffffff165b60048163ffffffff1660648110610bbb57fe5b0154831415610bce576001915050610bfd565b63ffffffff8116610bdd575060645b6003546000199091019063ffffffff80831691161415610ba85760009150505b919050565b606b6020526000908152604090205460ff1681565b60695481565b60035463ffffffff1681565b606d546001600160a01b03163314610c725760405162461bcd60e51b81526004018080602001828103825260258152602001806114cc6025913960400191505060405180910390fd5b606c80546001600160a01b0319166001600160a01b0392909216919091179055565b604080518281526020808402820101909152606090828015610cc0578160200160208202803883390190505b50905060005b82811015610d1557610ce9848483818110610cdd57fe5b90506020020135610e76565b15610d0d576001828281518110610cfc57fe5b911515602092830291909101909101525b600101610cc6565b5092915050565b60688054600101908190556000828152606b602052604090205460ff1615610d755760405162461bcd60e51b815260040180806020018281038252602181526020018061140d6021913960400191505060405180910390fd5b6000610d8083611157565b6000848152606b60205260409020805460ff191660011790559050610da36112ee565b6040805163ffffffff83168152426020820152815185927fa945e51eec50ab98c161376f0db4cf2aeba3ec92755fe2fcd388bdbbb80ff196928290030190a2506068548114610e39576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b5050565b60035460009060049063ffffffff1660648110610e5657fe5b0154905090565b60048160648110610e6a57fe5b0154905081565b606481565b6000908152606a602052604090205460ff1690565b60028181548110610e9857fe5b600091825260209091200154905081565b7f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c81565b60018181548110610e9857fe5b600354600160201b900463ffffffff1681565b3415610f2a5760405162461bcd60e51b815260040180806020018281038252603581526020018061142e6035913960400191505060405180910390fd5b8015610f675760405162461bcd60e51b81526004018080602001828103825260348152602001806113986034913960400191505060405180910390fd5b6069546040517399a6766f1ff8a564be2ef7b4fdda8aa40a23711f91829160009183916064909104908381818185875af1925050503d8060008114610fc8576040519150601f19603f3d011682016040523d82523d6000602084013e610fcd565b606091505b505090508061100d5760405162461bcd60e51b81526004018080602001828103825260218152602001806114ab6021913960400191505060405180910390fd5b6000876001600160a01b03168660646069548161102657fe5b04606954030360405180600001905060006040518083038185875af1925050503d8060008114611072576040519150601f19603f3d011682016040523d82523d6000602084013e611077565b606091505b50509050806110b75760405162461bcd60e51b81526004018080602001828103825260258152602001806114636025913960400191505060405180910390fd5b851561114d576040516001600160a01b038816908790600081818185875af1925050503d8060008114611106576040519150601f19603f3d011682016040523d82523d6000602084013e61110b565b606091505b5050809150508061114d5760405162461bcd60e51b81526004018080602001828103825260238152602001806114886023913960400191505060405180910390fd5b5050505050505050565b60035460008054909163ffffffff600160201b909104811691811660020a168114156111b45760405162461bcd60e51b815260040180806020018281038252602f815260200180611369602f913960400191505060405180910390fd5b6003805463ffffffff600160201b80830482166001019091160267ffffffff000000001990911617905582600080805b60005463ffffffff908116908216101561128c57600185166112485783925060028163ffffffff168154811061121657fe5b906000526020600020015491508360018263ffffffff168154811061123757fe5b60009182526020909120015561126c565b60018163ffffffff168154811061125b57fe5b906000526020600020015492508391505b6112768383610981565b9350600263ffffffff86160494506001016111e4565b5060035460649063ffffffff908116600101166003805463ffffffff19169290910663ffffffff9081169290921790819055849160049116606481106112ce57fe5b01555050600354600160201b900463ffffffff1660001901949350505050565b606954341461132e5760405162461bcd60e51b81526004018080602001828103825260388152602001806113316038913960400191505060405180910390fd5b56fe506c656173652073656e6420606d697844656e6f6d696e6174696f6e6020424e4220616c6f6e672077697468207472616e73616374696f6e4d65726b6c6520747265652069732066756c6c2e204e6f206d6f7265206c656166732063616e206265206164646564526566756e642076616c756520697320737570706f73656420746f206265207a65726f20666f7220424e4220696e7374616e63655f72696768742073686f756c6420626520696e7369646520746865206669656c6430644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000154686520636f6d6d69746d656e7420686173206265656e207375626d69747465644d6573736167652076616c756520697320737570706f73656420746f206265207a65726f20666f7220424e4220696e7374616e63657061796d656e7420746f205f726563697069656e7420646964206e6f7420676f20746872757061796d656e7420746f205f72656c6179657220646964206e6f7420676f20746872757061796d656e7420746f205f746178657220646964206e6f7420676f20746872754f6e6c79206f70657261746f722063616e2063616c6c20746869732066756e6374696f6e2ea265627a7a7231582008316053d935ee6806ecf810f9f69a548e8ebeca531067e3ba81d8055112a3af64736f6c6343000511003264656e6f6d696e6174696f6e2073686f756c642062652067726561746572207468616e2030405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5f72696768742073686f756c6420626520696e7369646520746865206669656c645f747265654c6576656c732073686f756c642062652067726561746572207468616e207a65726f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000015f747265654c6576656c732073686f756c64206265206c657373207468616e203332b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6000000000000000000000000ba957063dba2a3b3c5710913d5ef81106489d1650000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000e534443ce2bf547ce142739fcc93b3b931b6170a

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000ba957063dba2a3b3c5710913d5ef81106489d1650000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000e534443ce2bf547ce142739fcc93b3b931b6170a

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000ba957063dba2a3b3c5710913d5ef81106489d165
Arg [1] : 0000000000000000000000000000000000000000000000000de0b6b3a7640000
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000014
Arg [3] : 000000000000000000000000e534443ce2bf547ce142739fcc93b3b931b6170a


Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
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.