Contract Overview
ETH Balance: 0 Ether
No Of Transactions: 155 txns
  Latest 25 txns from a total Of 155 transactions View All

TxHash Age From To Value [TxFee]
0xfdb5e1383a25f93fc77fc13bb74de477e451803ae6e767edd5f4d921adedee4a3 hrs 57 mins ago0x70fc14174542f645ec2f735f7374cc05d1649da8  IN   0x345a69ec5eaa97fbfaf7c2599ff4fe7993c540ec0 Ether0.000198144
0x8f2238506e51dd32cbb3855d8af4af6e6a7b209a2c3716f119c05d0cac0bf2e36 days 5 hrs ago0x70fc14174542f645ec2f735f7374cc05d1649da8  IN   0x345a69ec5eaa97fbfaf7c2599ff4fe7993c540ec0 Ether0.000198144
0x68b2401ca216b0cc3eee90b1f25c6d4130732c92b2d1d4efffb9bdcde6e5c14a6 days 6 hrs ago0x70fc14174542f645ec2f735f7374cc05d1649da8  IN   0x345a69ec5eaa97fbfaf7c2599ff4fe7993c540ec0 Ether0.000198144
0xeea1d2ae828501a103f3807eeb0e4521df771914c4723f83ee9a60a82b49be0426 days 10 hrs ago0x70fc14174542f645ec2f735f7374cc05d1649da8  IN   0x345a69ec5eaa97fbfaf7c2599ff4fe7993c540ec0 Ether0.000198144
0xc89390ecaab24b3f1835adb93334e215f8be923a56ddf67a21ef5a2cc0d3ce5226 days 10 hrs ago0x70fc14174542f645ec2f735f7374cc05d1649da8  IN   0x345a69ec5eaa97fbfaf7c2599ff4fe7993c540ec0 Ether0.000198144
0x2f7f5ba8d89222511d97086ceb4e4fb9e7fa3d09a35b8f5685a38489260cf34126 days 10 hrs ago0x70fc14174542f645ec2f735f7374cc05d1649da8  IN   0x345a69ec5eaa97fbfaf7c2599ff4fe7993c540ec0 Ether0.000198144
0x04789dbe71b1127302e431747dc08bf520b12b56e1073fb111448fde7b25e96126 days 10 hrs ago0x70fc14174542f645ec2f735f7374cc05d1649da8  IN   0x345a69ec5eaa97fbfaf7c2599ff4fe7993c540ec0 Ether0.000198144
0xbb40a3dd965ceaba714cf8f22004e029088b536a3a4ed9de62dbd7748d8549c331 days 5 hrs ago0x70fc14174542f645ec2f735f7374cc05d1649da8  IN   0x345a69ec5eaa97fbfaf7c2599ff4fe7993c540ec0 Ether0.000198144
0x9419eb3f296607fc85f24efef51433fcd052147d17de83a040229da73ae0104431 days 5 hrs ago0x70fc14174542f645ec2f735f7374cc05d1649da8  IN   0x345a69ec5eaa97fbfaf7c2599ff4fe7993c540ec0 Ether0.000198144
0xd5aec239219b25e428f59a57bac21cfd72cfb792ec9046a492d6146fa391ba4032 days 11 hrs ago0x70fc14174542f645ec2f735f7374cc05d1649da8  IN   0x345a69ec5eaa97fbfaf7c2599ff4fe7993c540ec0 Ether0.000198144
0x2548c5901862f323b6979fff7e29f87734a04e523d6ca4b5eaad68373b8b7fa234 days 14 hrs ago0x70fc14174542f645ec2f735f7374cc05d1649da8  IN   0x345a69ec5eaa97fbfaf7c2599ff4fe7993c540ec0 Ether0.000198144
0x1a60c319d7f71aece2a58084d009d59416826d2a46c5f5a5d894defc0421fca734 days 14 hrs ago0x70fc14174542f645ec2f735f7374cc05d1649da8  IN   0x345a69ec5eaa97fbfaf7c2599ff4fe7993c540ec0 Ether0.000198144
0x38cbdb29b0c962fe32d4de7c16cd026bb965ebc2181c2262010bc2965371239634 days 14 hrs ago0x70fc14174542f645ec2f735f7374cc05d1649da8  IN   0x345a69ec5eaa97fbfaf7c2599ff4fe7993c540ec0 Ether0.000198144
0x7bbd4c0d8801964ad39ecd5d2bb3964545e861dfc76c30ca4eb38824c4b78a9f34 days 14 hrs ago0x70fc14174542f645ec2f735f7374cc05d1649da8  IN   0x345a69ec5eaa97fbfaf7c2599ff4fe7993c540ec0 Ether0.000198144
0xc893b4f12b2570a282368ff50b3444035bc5853022b3977e9a3c23766b6f622b35 days 5 hrs ago0x70fc14174542f645ec2f735f7374cc05d1649da8  IN   0x345a69ec5eaa97fbfaf7c2599ff4fe7993c540ec0 Ether0.000198144
0xe54955abf4722495c29c04086bfaee047d78032e18dab63bb81d701d7ed74ce035 days 6 hrs ago0x70fc14174542f645ec2f735f7374cc05d1649da8  IN   0x345a69ec5eaa97fbfaf7c2599ff4fe7993c540ec0 Ether0.000198144
0x5fe4dd5ee07d007f7ac3a0d47feb9f11009044601e052bf3a6042869a1b2006b35 days 6 hrs ago0x70fc14174542f645ec2f735f7374cc05d1649da8  IN   0x345a69ec5eaa97fbfaf7c2599ff4fe7993c540ec0 Ether0.000198144
0x44713af1f54c7291ab0907436fbda21cef8e634115dbf32b447f3b6fda3919a135 days 6 hrs ago0x70fc14174542f645ec2f735f7374cc05d1649da8  IN   0x345a69ec5eaa97fbfaf7c2599ff4fe7993c540ec0 Ether0.000198144
0xefddfe6f0c6c53c7a28a195d69a53f3729bd601a35d2493ec45b169f75bf449a35 days 6 hrs ago0x70fc14174542f645ec2f735f7374cc05d1649da8  IN   0x345a69ec5eaa97fbfaf7c2599ff4fe7993c540ec0 Ether0.000198144
0x659d0d42b4837a93f6056fd5ebb9d3f1e923dce5d06f3da372ff4a5bb18ab23835 days 6 hrs ago0x70fc14174542f645ec2f735f7374cc05d1649da8  IN   0x345a69ec5eaa97fbfaf7c2599ff4fe7993c540ec0 Ether0.000198144
0x39effd637138417e37e25ed357928b68837bdb388b849df395b346c24f0a81c235 days 6 hrs ago0x70fc14174542f645ec2f735f7374cc05d1649da8  IN   0x345a69ec5eaa97fbfaf7c2599ff4fe7993c540ec0 Ether0.000198144
0x7982d46bf5ef67cbe8d3c5d2ebf6ac224cf41c3faaa3a5df8c960c394edae61635 days 6 hrs ago0x70fc14174542f645ec2f735f7374cc05d1649da8  IN   0x345a69ec5eaa97fbfaf7c2599ff4fe7993c540ec0 Ether0.000198144
0xb6fed2912d8266466aff21b732b908ccb0b553c568056c23b19e7f9956bb605e35 days 6 hrs ago0x70fc14174542f645ec2f735f7374cc05d1649da8  IN   0x345a69ec5eaa97fbfaf7c2599ff4fe7993c540ec0 Ether0.000198144
0xc063a4d256faf329dbe9351addfbb06c6e14cd57fc377c1ae909c1e26746dbc746 days 3 hrs ago0x70fc14174542f645ec2f735f7374cc05d1649da8  IN   0x345a69ec5eaa97fbfaf7c2599ff4fe7993c540ec0 Ether0.000198144
0x86fc48d294fa2e13924640edfeea669abb41f21e6409d5557c0290a888ed608c46 days 7 hrs ago0x70fc14174542f645ec2f735f7374cc05d1649da8  IN   0x345a69ec5eaa97fbfaf7c2599ff4fe7993c540ec0 Ether0.000198144
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Warning: The compiled contract might be susceptible to ZeroFunctionSelector (very low-severity), DelegateCallReturnValue (low-severity), ECRecoverMalformedInput (medium-severity) Solidity compiler bugs.

Contract Source Code Verified
Contract Name: OwnedToken
Compiler Version: v0.4.13+commit.fb4cb1a
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts
pragma solidity ^0.4.13;
// Last compiled with 0.4.13+commit.fb4cb1a

contract SafeMath {
  //internals

  function safeMul(uint a, uint b) internal returns (uint) {
    uint c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function safeSub(uint a, uint b) internal returns (uint) {
    assert(b <= a);
    return a - b;
  }

  function safeAdd(uint a, uint b) internal returns (uint) {
    uint c = a + b;
    assert(c>=a && c>=b);
    return c;
  }
}

contract Owned {
  mapping(address => bool) public owners;
  uint public numOwners;

  event AddOwner(address newOwner);
  event RemoveOwner(address newOwner);

  function addOwner(address owner) {
    require(owners[msg.sender]);
    numOwners++;
    owners[owner] = true;
    AddOwner(owner);
  }

  function removeOwner(address owner) {
    require(owners[msg.sender]);
    require(numOwners > 1);
    numOwners--;
    owners[owner] = false;
    RemoveOwner(owner);
  }
}

contract Token {

  /// @return total amount of tokens
  function totalSupply() constant returns (uint256 supply) {}

  /// @param _owner The address from which the balance will be retrieved
  /// @return The balance
  function balanceOf(address _owner) constant returns (uint256 balance) {}

  /// @notice send `_value` token to `_to` from `msg.sender`
  /// @param _to The address of the recipient
  /// @param _value The amount of token to be transferred
  /// @return Whether the transfer was successful or not
  function transfer(address _to, uint256 _value) returns (bool success) {}

  /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from`
  /// @param _from The address of the sender
  /// @param _to The address of the recipient
  /// @param _value The amount of token to be transferred
  /// @return Whether the transfer was successful or not
  function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {}

  /// @notice `msg.sender` approves `_addr` to spend `_value` tokens
  /// @param _spender The address of the account able to transfer the tokens
  /// @param _value The amount of wei to be approved for transfer
  /// @return Whether the approval was successful or not
  function approve(address _spender, uint256 _value) returns (bool success) {}

  /// @param _owner The address of the account owning tokens
  /// @param _spender The address of the account able to transfer the tokens
  /// @return Amount of remaining tokens allowed to spent
  function allowance(address _owner, address _spender) constant returns (uint256 remaining) {}

  event Transfer(address indexed _from, address indexed _to, uint256 _value);
  event Approval(address indexed _owner, address indexed _spender, uint256 _value);

}

contract StandardToken is Token {

  function transfer(address _to, uint256 _value) returns (bool success) {
    //Default assumes totalSupply can't be over max (2^256 - 1).
    //If your token leaves out totalSupply and can issue more tokens as time goes on, you need to check if it doesn't wrap.
    //Replace the if with this one instead.
    if (balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]) {
    //if (balances[msg.sender] >= _value && _value > 0) {
      balances[msg.sender] -= _value;
      balances[_to] += _value;
      Transfer(msg.sender, _to, _value);
      return true;
    } else { return false; }
  }

  function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
    //same as above. Replace this line with the following if you want to protect against wrapping uints.
    if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value > balances[_to]) {
    //if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0) {
      balances[_to] += _value;
      balances[_from] -= _value;
      allowed[_from][msg.sender] -= _value;
      Transfer(_from, _to, _value);
      return true;
    } else { return false; }
  }

  function balanceOf(address _owner) constant returns (uint256 balance) {
    return balances[_owner];
  }

  function approve(address _spender, uint256 _value) returns (bool success) {
    allowed[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
    return true;
  }

  function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
    return allowed[_owner][_spender];
  }

  mapping(address => uint256) balances;

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

  uint256 public totalSupply;

}

contract OwnedToken is StandardToken, SafeMath, Owned {
  string public name;
  string public symbol;
  uint public decimals = 18;
  mapping(address => bool) public senders;
  mapping(address => bool) public receivers;

  event Create(address user, uint amount);
  event Destroy(address user, uint amount);
  event WhitelistSender(address sender);
  event WhitelistReceiver(address receiver);
  event BlacklistSender(address sender);
  event BlacklistReceiver(address receiver);

  function OwnedToken(address owner_, string name_, string symbol_) {
    owners[owner_] = true;
    name = name_;
    symbol = symbol_;
  }

  function create(address user, uint amount) {
    require(owners[msg.sender]);
    balances[msg.sender] = safeAdd(balances[msg.sender], amount);
    totalSupply = safeAdd(totalSupply, amount);
    assert(super.transfer(user, amount));
    Create(user, amount);
  }

  function destroy(address user, uint amount) {
    require(owners[msg.sender]);
    require(balances[user] >= amount);
    balances[user] = safeSub(balances[user], amount);
    totalSupply = safeSub(totalSupply, amount);
    Destroy(user, amount);
  }

  function whitelistSender(address sender) {
    require(owners[msg.sender]);
    senders[sender] = true;
    WhitelistSender(sender);
  }

  function whitelistReceiver(address receiver) {
    require(owners[msg.sender]);
    receivers[receiver] = true;
    WhitelistReceiver(receiver);
  }

  function blacklistSender(address sender) {
    require(owners[msg.sender]);
    senders[sender] = false;
    BlacklistSender(sender);
  }

  function blacklistReceiver(address receiver) {
    require(owners[msg.sender]);
    receivers[receiver] = false;
    BlacklistReceiver(receiver);
  }

  function transfer(address _to, uint256 _value) returns (bool success) {
    require(senders[msg.sender] || receivers[_to]);
    return super.transfer(_to, _value);
  }

  function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
    require(senders[_from] || receivers[_to]);
    return super.transferFrom(_from, _to, _value);
  }
}

contract ReserveToken is StandardToken, SafeMath {
  string public name;
  string public symbol;
  uint public decimals = 18;
  address public minter;

  event Create(address account, uint amount);
  event Destroy(address account, uint amount);

  function ReserveToken(string name_, string symbol_) {
    name = name_;
    symbol = symbol_;
    minter = msg.sender;
  }

  function create(address account, uint amount) {
    require(msg.sender == minter);
    balances[account] = safeAdd(balances[account], amount);
    totalSupply = safeAdd(totalSupply, amount);
    Create(account, amount);
  }

  function destroy(address account, uint amount) {
    require(msg.sender == minter);
    require(balances[account] >= amount);
    balances[account] = safeSub(balances[account], amount);
    totalSupply = safeSub(totalSupply, amount);
    Destroy(account, amount);
  }
}

contract DollarBalances is SafeMath, Owned {
  address public token;
  mapping(address => uint) public balances;

  event TransferExternal(address sender, address recipient, uint amount);
  event Transfer(address sender, address recipient, uint amount);
  event CreateAndDeposit(address user, uint amount);
  event WithdrawAndDestroy(address user, uint amount);
  event Deposit(uint amount);
  event Withdraw(uint amount);

  function DollarBalances(address owner_, address token_) {
    owners[owner_] = true;
    token = token_;
  }

  function balanceOf(address user) constant returns(uint) {
    return balances[user];
  }

  function transferExternal(address sender, address recipient, uint amount) {
    require(owners[msg.sender]);
    balances[sender] = safeSub(balances[sender], amount);
    assert(Token(token).transfer(recipient, amount));
    TransferExternal(sender, recipient, amount);
  }

  function transfer(address sender, address recipient, uint amount) {
    require(owners[msg.sender]);
    balances[sender] = safeSub(balances[sender], amount);
    balances[recipient] = safeAdd(balances[recipient], amount);
    Transfer(sender, recipient, amount);
  }

  function transfers(address[] senders, address[] recipients, uint[] amounts) {
    require(owners[msg.sender]);
    for (uint i = 0; i < senders.length; i++) {
      balances[senders[i]] = safeSub(balances[senders[i]], amounts[i]);
      balances[recipients[i]] = safeAdd(balances[recipients[i]], amounts[i]);
      Transfer(senders[i], recipients[i], amounts[i]);
    }
  }

  function createAndDeposit(address user, uint amount) {
    require(owners[msg.sender]);
    OwnedToken(token).create(address(this), amount);
    balances[user] = safeAdd(balances[user], amount);
    CreateAndDeposit(user, amount);
  }

  function withdrawAndDestroy(address user, uint amount) {
    require(owners[msg.sender]);
    OwnedToken(token).destroy(address(this), amount);
    balances[user] = safeSub(balances[user], amount);
    WithdrawAndDestroy(user, amount);
  }

  function deposit(uint amount) {
    // remember to call approve() on the token first...
    balances[msg.sender] = safeAdd(balances[msg.sender], amount);
    assert(Token(token).transferFrom(msg.sender, address(this), amount));
    Deposit(amount);
  }

  function withdraw(uint amount) {
    balances[msg.sender] = safeSub(balances[msg.sender], amount);
    assert(Token(token).transfer(msg.sender, amount));
    Withdraw(amount);
  }
}

contract Balances is SafeMath, Owned {
  address public token;
  mapping(address => uint) public balances;

  event TransferExternal(address sender, address recipient, uint amount);
  event Transfer(address sender, address recipient, uint amount);
  event CreateAndDeposit(address user, uint amount);
  event WithdrawAndDestroy(address user, uint amount);
  event Deposit(uint amount);
  event Withdraw(uint amount);

  function Balances(address owner_, address token_) {
    owners[owner_] = true;
    token = token_;
  }

  function balanceOf(address user) constant returns(uint) {
    return balances[user];
  }

  function transferExternal(address sender, address recipient, uint amount) {
    require(owners[msg.sender]);
    balances[sender] = safeSub(balances[sender], amount);
    assert(Token(token).transfer(recipient, amount));
    TransferExternal(sender, recipient, amount);
  }

  function transfer(address sender, address recipient, uint amount) {
    require(owners[msg.sender]);
    balances[sender] = safeSub(balances[sender], amount);
    balances[recipient] = safeAdd(balances[recipient], amount);
    Transfer(sender, recipient, amount);
  }

  function transfers(address[] senders, address[] recipients, uint[] amounts) {
    require(owners[msg.sender]);
    for (uint i = 0; i < senders.length; i++) {
      balances[senders[i]] = safeSub(balances[senders[i]], amounts[i]);
      balances[recipients[i]] = safeAdd(balances[recipients[i]], amounts[i]);
      Transfer(senders[i], recipients[i], amounts[i]);
    }
  }

  function deposit(uint amount) {
    // remember to call approve() on the token first...
    balances[msg.sender] = safeAdd(balances[msg.sender], amount);
    assert(Token(token).transferFrom(msg.sender, address(this), amount));
    Deposit(amount);
  }

  function withdraw(uint amount) {
    balances[msg.sender] = safeSub(balances[msg.sender], amount);
    assert(Token(token).transfer(msg.sender, amount));
    Withdraw(amount);
  }
}

contract Witness is SafeMath, Owned {
  mapping(address => bool) public whitelisted;
  mapping(address => uint) public balances;
  uint public limit = 10 ** 16; // 1% = the max percentage of the overall witness pool one person can have
  uint public numWitnessesBeforeLimit = 100; // the number of witnesses before the limit starts kicking in
  uint public totalBalance;
  uint public numWitnesses;
  uint public desiredWitnesses;
  uint public blocksUntilOpen;
  address public token;
  mapping(uint => Request) public requests;
  uint public requestCount;
  struct Request {
    string key;
    uint blockNumber;
    address witness1;
    address witness2;
    string answer1;
    string answer2;
  }

  event Whitelist(address witness);
  event Blacklist(address witness);
  event Deposit(uint amount);
  event Withdraw(uint amount);
  event Kick(address witness, uint amount);
  event ReduceToLimit(address witness, uint amount);
  event SetBlocksUntilOpen(uint blocksUntilOpen);
  event SetDesiredWitnesses(uint desiredWitnesses);
  event Report(uint requestNum, string answer);

  function Witness(address owner_, address token_, uint blocksUntilOpen_, uint desiredWitnesses_) {
    owners[owner_] = true;
    token = token_;
    blocksUntilOpen = blocksUntilOpen_;
    desiredWitnesses = desiredWitnesses_;
  }

  function setBlocksUntilOpen(uint blocksUntilOpen_) {
    require(owners[msg.sender]);
    blocksUntilOpen = blocksUntilOpen_;
    SetBlocksUntilOpen(blocksUntilOpen);
  }

  function setDesiredWitnesses(uint desiredWitnesses_) {
    require(owners[msg.sender]);
    desiredWitnesses = desiredWitnesses_;
    SetDesiredWitnesses(desiredWitnesses);
  }

  function balanceOf(address user) constant returns(uint) {
    return balances[user];
  }

  function whitelist(address witness) {
    require(owners[msg.sender]);
    whitelisted[witness] = true;
    Whitelist(witness);
  }

  function blacklist(address witness) {
    require(owners[msg.sender]);
    whitelisted[witness] = false;
    Blacklist(witness);
  }

  function kick(address witness) {
    require(owners[msg.sender]);
    uint amount = balances[witness];
    require(amount > 0);
    numWitnesses--;
    balances[witness] = 0;
    totalBalance = safeSub(totalBalance, amount);
    assert(Token(token).transfer(witness, amount));
    Kick(witness, amount);
  }

  function reduceToLimit(address witness) {
    require(witness == msg.sender);
    uint amount = balances[witness];
    uint limitAmount = safeMul(totalBalance, limit) / (1 ether);
    if (amount > limitAmount && numWitnesses > numWitnessesBeforeLimit) {
      uint excess = safeSub(amount, limitAmount);
      balances[witness] = safeSub(amount, excess);
      totalBalance = safeSub(totalBalance, excess);
      assert(Token(token).transfer(witness, excess));
      ReduceToLimit(witness, excess);
    }
  }

  function deposit(uint amount) {
    // remember to call approve() on the token first...
    require(amount > 0);
    require(whitelisted[msg.sender]);
    if (balances[msg.sender] == 0) numWitnesses++;
    balances[msg.sender] = safeAdd(balances[msg.sender], amount);
    totalBalance = safeAdd(totalBalance, amount);
    assert(Token(token).transferFrom(msg.sender, address(this), amount));
    Deposit(amount);
  }

  function withdraw(uint amount) {
    require(amount > 0);
    balances[msg.sender] = safeSub(balances[msg.sender], amount);
    if (balances[msg.sender] == 0) numWitnesses--;
    totalBalance = safeSub(totalBalance, amount);
    assert(Token(token).transfer(msg.sender, amount));
    Withdraw(amount);
  }

  function request(string key) {
    require(owners[msg.sender]);
    requests[requestCount] = Request(key, block.number, 0x0, 0x0, '', '');
    requestCount++;
  }

  function isWitness(uint requestNum, address witness) constant returns(bool) {
    if(requestNum >= requestCount) return false;
    uint blockNumber = requests[requestNum].blockNumber;
    //random number from 0-999999999
    uint rand = uint(sha256(requestNum, witness, requests[requestNum].key)) % 1000000000;
    return (rand * totalBalance < 1000000000 * desiredWitnesses * balances[witness] || block.number > blockNumber + blocksUntilOpen);
  }

  function report(uint requestNum, string answer) {
    require(requestNum < requestCount);
    require(isWitness(requestNum, msg.sender));
    require(requests[requestNum].witness1 == 0x0 || requests[requestNum].witness2 == 0x0);
    reduceToLimit(msg.sender);
    if (requests[requestNum].witness1 == 0x0) {
      requests[requestNum].witness1 = msg.sender;
      requests[requestNum].answer1 = answer;
    } else if (requests[requestNum].witness2 == 0x0) {
      requests[requestNum].witness2 = msg.sender;
      requests[requestNum].answer2 = answer;
    }
    Report(requestNum, answer);
  }

  function getRequest(uint requestNum) constant returns(string, uint, address, address, string, string) {
    return (requests[requestNum].key,
            requests[requestNum].blockNumber,
            requests[requestNum].witness1,
            requests[requestNum].witness2,
            requests[requestNum].answer1,
            requests[requestNum].answer2);
  }
}

    Contract ABI  
[{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"owners","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"receivers","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"user","type":"address"},{"name":"amount","type":"uint256"}],"name":"create","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"removeOwner","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"sender","type":"address"}],"name":"whitelistSender","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"addOwner","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"sender","type":"address"}],"name":"blacklistSender","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"receiver","type":"address"}],"name":"blacklistReceiver","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"numOwners","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"senders","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"user","type":"address"},{"name":"amount","type":"uint256"}],"name":"destroy","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"receiver","type":"address"}],"name":"whitelistReceiver","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[{"name":"owner_","type":"address"},{"name":"name_","type":"string"},{"name":"symbol_","type":"string"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Create","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"user","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Destroy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"}],"name":"WhitelistSender","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"receiver","type":"address"}],"name":"WhitelistReceiver","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"sender","type":"address"}],"name":"BlacklistSender","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"receiver","type":"address"}],"name":"BlacklistReceiver","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"AddOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"RemoveOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

  Contract Creation Code Switch To Opcodes View
6060604052601260075534156200001557600080fd5b6040516200111138038062001111833981016040528080519190602001805182019190602001805190910190505b600160a060020a0383166000908152600360205260409020805460ff1916600117905560058280516200007b9291602001906200009c565b506006818051620000919291602001906200009c565b505b50505062000146565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620000df57805160ff19168380011785556200010f565b828001600101855582156200010f579182015b828111156200010f578251825591602001919060010190620000f2565b5b506200011e92915062000122565b5090565b6200014391905b808211156200011e576000815560010162000129565b5090565b90565b610fbb80620001566000396000f3006060604052361561011a5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663022914a7811461011f57806306fdde0314610152578063095ea7b3146101dd5780630cb8150f146102135780630ecaea7314610246578063173825d91461026a57806318160ddd1461028b57806323b872dd146102b05780632f10a6c6146102ec578063313ce5671461030d5780637065cb481461033257806370a0823114610353578063789663c71461038457806381b1d90b146103a557806387ab18e1146103c657806395d89b41146103eb578063982fb9d814610476578063a24835d1146104a9578063a9059cbb146104cd578063cbadffb014610503578063dd62ed3e14610524575b600080fd5b341561012a57600080fd5b61013e600160a060020a036004351661055b565b604051901515815260200160405180910390f35b341561015d57600080fd5b610165610570565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101a25780820151818401525b602001610189565b50505050905090810190601f1680156101cf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101e857600080fd5b61013e600160a060020a036004351660243561060e565b604051901515815260200160405180910390f35b341561021e57600080fd5b61013e600160a060020a036004351661067b565b604051901515815260200160405180910390f35b341561025157600080fd5b610268600160a060020a0360043516602435610690565b005b341561027557600080fd5b610268600160a060020a036004351661075e565b005b341561029657600080fd5b61029e610802565b60405190815260200160405180910390f35b34156102bb57600080fd5b61013e600160a060020a0360043581169060243516604435610808565b604051901515815260200160405180910390f35b34156102f757600080fd5b610268600160a060020a0360043516610867565b005b341561031857600080fd5b61029e6108f4565b60405190815260200160405180910390f35b341561033d57600080fd5b610268600160a060020a03600435166108fa565b005b341561035e57600080fd5b61029e600160a060020a0360043516610994565b60405190815260200160405180910390f35b341561038f57600080fd5b610268600160a060020a03600435166109b3565b005b34156103b057600080fd5b610268600160a060020a0360043516610a3d565b005b34156103d157600080fd5b61029e610ac7565b60405190815260200160405180910390f35b34156103f657600080fd5b610165610acd565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101a25780820151818401525b602001610189565b50505050905090810190601f1680156101cf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561048157600080fd5b61013e600160a060020a0360043516610b6b565b604051901515815260200160405180910390f35b34156104b457600080fd5b610268600160a060020a0360043516602435610b80565b005b34156104d857600080fd5b61013e600160a060020a0360043516602435610c62565b604051901515815260200160405180910390f35b341561050e57600080fd5b610268600160a060020a0360043516610cbf565b005b341561052f57600080fd5b61029e600160a060020a0360043581169060243516610d4c565b60405190815260200160405180910390f35b60036020526000908152604090205460ff1681565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106065780601f106105db57610100808354040283529160200191610606565b820191906000526020600020905b8154815290600101906020018083116105e957829003601f168201915b505050505081565b600160a060020a03338116600081815260016020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b60096020526000908152604090205460ff1681565b600160a060020a03331660009081526003602052604090205460ff1615156106b757600080fd5b600160a060020a0333166000908152602081905260409020546106da9082610d79565b600160a060020a0333166000908152602081905260409020556002546107009082610d79565b60025561070d8282610da1565b151561071557fe5b7fcc9018de05b5f497ee7618d8830568d8ac2d45d0671b73d8f71c67e824122ec78282604051600160a060020a03909216825260208201526040908101905180910390a15b5050565b600160a060020a03331660009081526003602052604090205460ff16151561078557600080fd5b6004546001901161079557600080fd5b60048054600019019055600160a060020a03811660009081526003602052604090819020805460ff191690557fac6e8398676cf37429d530b81144d7079e99f4fe9d28b0d88c4a749ceccbe8cd90829051600160a060020a03909116815260200160405180910390a15b50565b60025481565b600160a060020a03831660009081526008602052604081205460ff16806108475750600160a060020a03831660009081526009602052604090205460ff165b151561085257600080fd5b61085d848484610e64565b90505b9392505050565b600160a060020a03331660009081526003602052604090205460ff16151561088e57600080fd5b600160a060020a03811660009081526008602052604090819020805460ff191660011790557f51e8c294855f9f5b90cf3d7100af8adba0ffd3d00aeb012d4b25035d50d1cca190829051600160a060020a03909116815260200160405180910390a15b50565b60075481565b600160a060020a03331660009081526003602052604090205460ff16151561092157600080fd5b600480546001908101909155600160a060020a03821660009081526003602052604090819020805460ff19169092179091557fac1e9ef41b54c676ccf449d83ae6f2624bcdce8f5b93a6b48ce95874c332693d90829051600160a060020a03909116815260200160405180910390a15b50565b600160a060020a0381166000908152602081905260409020545b919050565b600160a060020a03331660009081526003602052604090205460ff1615156109da57600080fd5b600160a060020a03811660009081526008602052604090819020805460ff191690557fc56a2e1c1256f0865c7c4ef1e0ce60d45b851f486c59fd9c7e654d52a6788c7290829051600160a060020a03909116815260200160405180910390a15b50565b600160a060020a03331660009081526003602052604090205460ff161515610a6457600080fd5b600160a060020a03811660009081526009602052604090819020805460ff191690557ff33a33758348b12fc8aad44d1bd387414129ed30794b69294c1536f854197f5590829051600160a060020a03909116815260200160405180910390a15b50565b60045481565b60068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106065780601f106105db57610100808354040283529160200191610606565b820191906000526020600020905b8154815290600101906020018083116105e957829003601f168201915b505050505081565b60086020526000908152604090205460ff1681565b600160a060020a03331660009081526003602052604090205460ff161515610ba757600080fd5b600160a060020a03821660009081526020819052604090205481901015610bcd57600080fd5b600160a060020a038216600090815260208190526040902054610bf09082610f78565b600160a060020a038316600090815260208190526040902055600254610c169082610f78565b6002557f81325e2a6c442af9d36e4ee9697f38d5f4bf0837ade0f6c411c6a40af7c057ee8282604051600160a060020a03909216825260208201526040908101905180910390a15b5050565b600160a060020a03331660009081526008602052604081205460ff1680610ca15750600160a060020a03831660009081526009602052604090205460ff165b1515610cac57600080fd5b610cb68383610da1565b90505b92915050565b600160a060020a03331660009081526003602052604090205460ff161515610ce657600080fd5b600160a060020a03811660009081526009602052604090819020805460ff191660011790557fe70ec5d03763f39bd6d0db48b5964303af05c441b44c2d820497ea0061d1f27d90829051600160a060020a03909116815260200160405180910390a15b50565b600160a060020a038083166000908152600160209081526040808320938516835292905220545b92915050565b6000828201838110801590610d8e5750828110155b1515610d9657fe5b8091505b5092915050565b600160a060020a033316600090815260208190526040812054829010801590610de35750600160a060020a038316600090815260208190526040902054828101115b15610e5557600160a060020a033381166000818152602081905260408082208054879003905592861680825290839020805486019055917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3506001610675565b506000610675565b5b92915050565b600160a060020a038316600090815260208190526040812054829010801590610eb45750600160a060020a0380851660009081526001602090815260408083203390941683529290522054829010155b8015610ed95750600160a060020a038316600090815260208190526040902054828101115b15610f6857600160a060020a0380841660008181526020818152604080832080548801905588851680845281842080548990039055600183528184203390961684529490915290819020805486900390559091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3506001610860565b506000610860565b5b9392505050565b600082821115610f8457fe5b508082035b929150505600a165627a7a72305820a70ee8b2f541be13a48789d9792891b9dcbd52646acde9cffba99d1e5889ee01002900000000000000000000000070fc14174542f645ec2f735f7374cc05d1649da8000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000b446f6c6c6172546f6b656e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024454000000000000000000000000000000000000000000000000000000000000

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

-----Decoded View---------------
Found 7 constructor arguments :
Arg [0] : 00000000000000000000000070fc14174542f645ec2f735f7374cc05d1649da8
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [2] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [3] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [4] : 446f6c6c6172546f6b656e000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [6] : 4454000000000000000000000000000000000000000000000000000000000000


   Swarm Source:
bzzr://a70ee8b2f541be13a48789d9792891b9dcbd52646acde9cffba99d1e5889ee01
View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward