Sponsored Link:   Color - Revolutionizing the Dapp Ecosystem, Bounty & Airdrop, Get 240,000 COL NOW!
Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 1 txn
Token Contract: Knowledge.io (KNW)
Misc
Address Watch: Add To Watch List
Contract Creator: 0xdfad6cec214d22b71140379c7d4cbc303dc74c92at txn 0x39bda5fc79fb81040fbebde35b70d8fa98641f78cb209eaaf8dd9835e7486ace
Token Balances:
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Contract Source Code Verified (Exact match)
Contract Name: Payable
Compiler Version: v0.4.18+commit.9cf6e910
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.18;


/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 {
  event Approval(address indexed owner, address indexed spender, uint256 value);

  event Transfer(address indexed from, address indexed to, uint256 value);

  function totalSupply() public constant returns (uint256);

  function balanceOf(address who) public constant returns (uint256);

  function transfer(address to, uint256 value) public returns (bool);

  function allowance(address owner, address spender) public constant returns (uint256);

  function transferFrom(address from, address to, uint256 value) public returns (bool);

  function approve(address spender, uint256 value) public returns (bool);
}


/**
 * @title ERC20 token
 *
 * @dev Implementation of the ERC20 token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract ERC20Token is ERC20 {
  using SafeMath for uint256;

  mapping(address => uint256) balances;

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

  /**
   * @dev Gets the balance of the specified address.
   * @param _owner The address to query the the balance of.
   * @return An uint256 representing the amount owned by the passed address.
   */
  function balanceOf(address _owner) public constant returns (uint256 balance) {
    return balances[_owner];
  }

  /**
   * @dev transfer token for a specified address
   * @param _to The address to transfer to.
   * @param _value The amount to be transferred.
   */
  function transfer(address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));

    // SafeMath.sub will throw if there is not enough balance.
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    Transfer(msg.sender, _to, _value);
    return true;
  }

  /**
   * @dev Transfer tokens from one address to another
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint256 the amount of tokens to be transferred
   */
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));

    uint256 _allowance = allowed[_from][msg.sender];

    // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
    // require (_value <= _allowance);

    balances[_from] = balances[_from].sub(_value);
    balances[_to] = balances[_to].add(_value);
    allowed[_from][msg.sender] = _allowance.sub(_value);
    Transfer(_from, _to, _value);
    return true;
  }

  /**
   * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
   *
   * Beware that changing an allowance with this method brings the risk that someone may use both the old
   * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
   * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   * @param _spender The address which will spend the funds.
   * @param _value The amount of tokens to be spent.
   */
  function approve(address _spender, uint256 _value) public returns (bool) {
    allowed[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
    return true;
  }

  /**
   * @dev Function to check the amount of tokens that an owner allowed to a spender.
   * @param _owner address The address which owns the funds.
   * @param _spender address The address which will spend the funds.
   * @return A uint256 specifying the amount of tokens still available for the spender.
   */
  function allowance(address _owner, address _spender) public constant returns (uint256 remaining) {
    return allowed[_owner][_spender];
  }

  /**
   * approve should be called when allowed[_spender] == 0. To increment
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   */
  function increaseApproval (address _spender, uint _addedValue)
    public returns (bool success)
  {
    allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

  function decreaseApproval (address _spender, uint _subtractedValue)
    public returns (bool success)
  {
    uint oldValue = allowed[msg.sender][_spender];
    if (_subtractedValue > oldValue) {
      allowed[msg.sender][_spender] = 0;
    } else {
      allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
    }
    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

}


/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address[] public owners;

  event OwnerAdded(address indexed authorizer, address indexed newOwner, uint256 index);

  event OwnerRemoved(address indexed authorizer, address indexed oldOwner);

  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  function Ownable() public {
    owners.push(msg.sender);
    OwnerAdded(0x0, msg.sender, 0);
  }

  /**
   * @dev Throws if called by any account other than one owner.
   */
  modifier onlyOwner() {
    bool isOwner = false;

    for (uint256 i = 0; i < owners.length; i++) {
      if (msg.sender == owners[i]) {
        isOwner = true;
        break;
      }
    }

    require(isOwner);
    _;
  }

  /**
   * @dev Allows one of the current owners to add a new owner
   * @param newOwner The address give ownership to.
   */
  function addOwner(address newOwner) onlyOwner public {
    require(newOwner != address(0));
    uint256 i = owners.push(newOwner) - 1;
    OwnerAdded(msg.sender, newOwner, i);
  }

  /**
   * @dev Allows one of the owners to remove other owner
   */
  function removeOwner(uint256 index) onlyOwner public {
    address owner = owners[index];
    owners[index] = owners[owners.length - 1];
    delete owners[owners.length - 1];
    OwnerRemoved(msg.sender, owner);
  }

  function ownersCount() constant public returns (uint256) {
    return owners.length;
  }
}


contract UpgradableStorage is Ownable {

  // Address of the current implementation
  address internal _implementation;

  event NewImplementation(address implementation);

  /**
  * @dev Tells the address of the current implementation
  * @return address of the current implementation
  */
  function implementation() public view returns (address) {
    return _implementation;
  }
}


/**
 * @title Upgradable
 * @dev This contract represents an upgradable contract
 */
contract Upgradable is UpgradableStorage {
  function initialize() public payable { }
}


/**
 * Base Contract (KNW)
 * Upgradable Standard ECR20 Token
 */
contract Base is Upgradable, ERC20Token {
  function name() pure public returns (string) {
    return 'Knowledge.io';
  }

  function symbol() pure public returns (string) {
    return 'KNW';
  }

  function decimals() pure public returns (uint8) {
    return 8;
  }

  function INITIAL_SUPPLY() pure public returns (uint) {
    /** 150,000,000.00000000 KNW tokens */
    return 15000000000000000;
  }

  function totalSupply() view public returns (uint) {
    return INITIAL_SUPPLY();
  }
}


/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws 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) {
    assert(b <= a);
    return a - b;
  }

  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}


/**
 * A token upgrade mechanism where users can upgrade tokens
 * to the next smart contract revision.
 *
 * First envisioned by Golem and Lunyr projects.
 */
contract Legacy is Base {
  using SafeMath for uint256;

  /** The contract from which we upgrade */
  Legacy public prevContract;

  /**
   * Somebody has upgraded some of their tokens.
   */
  event UpgradeFrom(address indexed _from, address indexed _to, uint256 _value);

  /**
   * Previous contract available.
   */
  event PrevContractSet(address contractAddress);

  modifier fromPrevContract() {
    require(msg.sender == address(prevContract));
    _;
  }

  function upgradeFrom(address holder, uint256 value) fromPrevContract public returns (bool) {
    balances[holder] = value;
    Transfer(address(0), holder, value);
    UpgradeFrom(address(prevContract), holder, value);

    return true;
  }

  function setPrevContract(address contractAddress) onlyOwner public returns (bool) {
    require(contractAddress != 0x0);
    prevContract = Legacy(contractAddress);
    PrevContractSet(contractAddress);

    return true;
  }
}


/**
 * Payable is meant to execute the `transfer` method of the ERC20 Token
 * and log a Pay message with a reference message to bind the payment to an
 * order id or some other identifier
 */
contract Payable is Legacy {
  struct PaymentRequest {
    uint256 fee;
    uint256 value;
    address seller;
  }

  mapping (address => mapping(string => PaymentRequest)) private pendingPayments;

  event Pay(
    address indexed from,
    address indexed seller,
    address indexed store,
    uint256 value,
    uint256 fee,
    string ref
  );

  function requestPayment(uint256 value, uint256 fee, string ref, address to) public {
    pendingPayments[msg.sender][ref] = PaymentRequest(fee, value, to);
  }

  function cancelPayment(string ref) public {
    delete pendingPayments[msg.sender][ref];
  }

  function paymentInfo(address store, string ref) public view returns (uint256 value, uint256 fee, address seller) {
    PaymentRequest memory paymentRequest = pendingPayments[store][ref];
    value = paymentRequest.value;
    fee = paymentRequest.fee;
    seller = paymentRequest.seller;
  }

  function pay(address store, string ref) public returns (bool) {
    PaymentRequest memory paymentRequest = pendingPayments[store][ref];

    if (paymentRequest.fee > 0) {
      assert(transfer(store, paymentRequest.fee));
    }

    assert(transfer(paymentRequest.seller, paymentRequest.value));

    Pay(msg.sender, paymentRequest.seller, store, paymentRequest.value, paymentRequest.fee, ref);
    delete pendingPayments[store][ref];

    return true;
  }
}

    Contract ABI  
[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"owners","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"contractAddress","type":"address"}],"name":"setPrevContract","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"},{"name":"fee","type":"uint256"},{"name":"ref","type":"string"},{"name":"to","type":"address"}],"name":"requestPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"}],"name":"removeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"addOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"holder","type":"address"},{"name":"value","type":"uint256"}],"name":"upgradeFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"initialize","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"ref","type":"string"}],"name":"cancelPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"store","type":"address"},{"name":"ref","type":"string"}],"name":"paymentInfo","outputs":[{"name":"value","type":"uint256"},{"name":"fee","type":"uint256"},{"name":"seller","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ownersCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"prevContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"store","type":"address"},{"name":"ref","type":"string"}],"name":"pay","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"seller","type":"address"},{"indexed":true,"name":"store","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"fee","type":"uint256"},{"indexed":false,"name":"ref","type":"string"}],"name":"Pay","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"UpgradeFrom","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"contractAddress","type":"address"}],"name":"PrevContractSet","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"},{"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":false,"name":"implementation","type":"address"}],"name":"NewImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"authorizer","type":"address"},{"indexed":true,"name":"newOwner","type":"address"},{"indexed":false,"name":"index","type":"uint256"}],"name":"OwnerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"authorizer","type":"address"},{"indexed":true,"name":"oldOwner","type":"address"}],"name":"OwnerRemoved","type":"event"}]

  Contract Creation Code Switch To Opcodes View
606060405260008054600181016100168382610076565b50600091825260208220018054600160a060020a03191633600160a060020a0316908117909155907fa0b18fca933618876351ba2ef88bf4505c184d3e55064bec0d7fe236dd706d848160405190815260200160405180910390a36100c0565b81548183558181151161009a5760008381526020902061009a91810190830161009f565b505050565b6100bd91905b808211156100b957600081556001016100a5565b5090565b90565b611459806100cf6000396000f3006060604052600436106101485763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663025e7c27811461014d57806306fdde031461017f578063095ea7b31461020957806318160ddd1461023f57806323b872dd14610264578063251139f61461028c5780632ff2e9dc146102ab578063313ce567146102be5780634bf49313146102e75780635c60da1b1461035057806366188463146103635780636b919488146103855780637065cb481461039b57806370a08231146103ba578063753e88e5146103d95780638129fc1c146103fb57806384126e011461040357806395d89b4114610454578063a0c99c5114610467578063a9059cbb146104f3578063b948854614610515578063d73dd62314610528578063dd62ed3e1461054a578063e449de9f1461056f578063fb4da5b714610582575b600080fd5b341561015857600080fd5b6101636004356105e1565b604051600160a060020a03909116815260200160405180910390f35b341561018a57600080fd5b610192610609565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101ce5780820151838201526020016101b6565b50505050905090810190601f1680156101fb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561021457600080fd5b61022b600160a060020a036004351660243561064b565b604051901515815260200160405180910390f35b341561024a57600080fd5b6102526106b7565b60405190815260200160405180910390f35b341561026f57600080fd5b61022b600160a060020a03600435811690602435166044356106c6565b341561029757600080fd5b61022b600160a060020a03600435166107f0565b34156102b657600080fd5b6102526108c1565b34156102c957600080fd5b6102d16108cc565b60405160ff909116815260200160405180910390f35b34156102f257600080fd5b61034e600480359060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050509235600160a060020a031692506108d1915050565b005b341561035b57600080fd5b6101636109a8565b341561036e57600080fd5b61022b600160a060020a03600435166024356109b7565b341561039057600080fd5b61034e600435610ab1565b34156103a657600080fd5b61034e600160a060020a0360043516610bf7565b34156103c557600080fd5b610252600160a060020a0360043516610ce5565b34156103e457600080fd5b61022b600160a060020a0360043516602435610d00565b61034e610db9565b341561040e57600080fd5b61034e60046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610dbb95505050505050565b341561045f57600080fd5b610192610e57565b341561047257600080fd5b6104c660048035600160a060020a03169060446024803590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610e9895505050505050565b6040519283526020830191909152600160a060020a03166040808301919091526060909101905180910390f35b34156104fe57600080fd5b61022b600160a060020a0360043516602435610f6a565b341561052057600080fd5b610252611040565b341561053357600080fd5b61022b600160a060020a0360043516602435611046565b341561055557600080fd5b610252600160a060020a03600435811690602435166110ea565b341561057a57600080fd5b610163611115565b341561058d57600080fd5b61022b60048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061112495505050505050565b60008054829081106105ef57fe5b600091825260209091200154600160a060020a0316905081565b6106116113b4565b60408051908101604052600c81527f4b6e6f776c656467652e696f0000000000000000000000000000000000000000602082015290505b90565b600160a060020a03338116600081815260036020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60006106c16108c1565b905090565b600080600160a060020a03841615156106de57600080fd5b50600160a060020a03808516600081815260036020908152604080832033909516835293815283822054928252600290529190912054610724908463ffffffff61138c16565b600160a060020a038087166000908152600260205260408082209390935590861681522054610759908463ffffffff61139e16565b600160a060020a038516600090815260026020526040902055610782818463ffffffff61138c16565b600160a060020a03808716600081815260036020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3506001949350505050565b600080805b60005481101561083e57600080548290811061080d57fe5b60009182526020909120015433600160a060020a0390811691161415610836576001915061083e565b6001016107f5565b81151561084a57600080fd5b600160a060020a038416151561085f57600080fd5b60048054600160a060020a031916600160a060020a0386161790557fe7a5dc59990bb8618337b754505c1711341b849d5402b3b8d79f7008c740b50284604051600160a060020a03909116815260200160405180910390a15060019392505050565b66354a6ba7a1800090565b600890565b606060405190810160409081528482526020808301879052600160a060020a0380851683850152331660009081526005909152819020908490518082805190602001908083835b602083106109375780518252601f199092019160209182019101610918565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020815181556020820151816001015560408201516002919091018054600160a060020a031916600160a060020a039092169190911790555050505050565b600154600160a060020a031690565b600160a060020a03338116600090815260036020908152604080832093861683529290529081205480831115610a1457600160a060020a033381166000908152600360209081526040808320938816835292905290812055610a4b565b610a24818463ffffffff61138c16565b600160a060020a033381166000908152600360209081526040808320938916835292905220555b600160a060020a0333811660008181526003602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600080805b600054811015610aff576000805482908110610ace57fe5b60009182526020909120015433600160a060020a0390811691161415610af75760019150610aff565b600101610ab6565b811515610b0b57600080fd5b6000805485908110610b1957fe5b60009182526020822001548154600160a060020a0390911694506000198101908110610b4157fe5b60009182526020822001548154600160a060020a03909116919086908110610b6557fe5b600091825260208220018054600160a060020a031916600160a060020a03939093169290921790915580546000198101908110610b9e57fe5b60009182526020909120018054600160a060020a0319169055600160a060020a038381169033167fe594d081b4382713733fe631966432c9cea5199afb2db5c3c1931f9f9300367960405160405180910390a350505050565b600080805b600054811015610c45576000805482908110610c1457fe5b60009182526020909120015433600160a060020a0390811691161415610c3d5760019150610c45565b600101610bfc565b811515610c5157600080fd5b600160a060020a0384161515610c6657600080fd5b600160008054806001018281610c7c91906113c6565b60009283526020909220018054600160a060020a031916600160a060020a0388811691821790925592909103945033167fa0b18fca933618876351ba2ef88bf4505c184d3e55064bec0d7fe236dd706d848560405190815260200160405180910390a350505050565b600160a060020a031660009081526002602052604090205490565b60045460009033600160a060020a03908116911614610d1e57600080fd5b600160a060020a0383166000818152600260205260408082208590557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3600454600160a060020a0380851691167fafc7f3fa9b11b0da7624ad7f5a27e287d3a5eef414b5d7ac38996631ed80b89a8460405190815260200160405180910390a350600192915050565b565b600160a060020a03331660009081526005602052604090819020908290518082805190602001908083835b60208310610e055780518252601f199092019160209182019101610de6565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020600080825560018201556002018054600160a060020a031916905550565b610e5f6113b4565b60408051908101604052600381527f4b4e5700000000000000000000000000000000000000000000000000000000006020820152905090565b6000806000610ea56113ef565b600160a060020a03861660009081526005602052604090819020908690518082805190602001908083835b60208310610eef5780518252601f199092019160209182019101610ed0565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206060604051908101604090815282548252600183015460208301908152600290930154600160a060020a03169082015291505193508051925080604001519150509250925092565b6000600160a060020a0383161515610f8157600080fd5b600160a060020a033316600090815260026020526040902054610faa908363ffffffff61138c16565b600160a060020a033381166000908152600260205260408082209390935590851681522054610fdf908363ffffffff61139e16565b600160a060020a0380851660008181526002602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b60005490565b600160a060020a03338116600090815260036020908152604080832093861683529290529081205461107e908363ffffffff61139e16565b600160a060020a0333811660008181526003602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b600454600160a060020a031681565b600061112e6113ef565b600160a060020a03841660009081526005602052604090819020908490518082805190602001908083835b602083106111785780518252601f199092019160209182019101611159565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020606060405190810160409081528254825260018301546020830152600290920154600160a060020a03169181019190915290506000815111156111fb576111f3848251610f6a565b15156111fb57fe5b61120d81604001518260200151610f6a565b151561121557fe5b83600160a060020a03168160400151600160a060020a031633600160a060020a03167f2932548923882c0357c96c44bcfac0f2d4826edc925fd552f0a61abacceacb7684602001518551886040518084815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156112a9578082015183820152602001611291565b50505050905090810190601f1680156112d65780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a4600160a060020a03841660009081526005602052604090819020908490518082805190602001908083835b6020831061132f5780518252601f199092019160209182019101611310565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020600080825560018083019190915560029091018054600160a060020a0319169055949350505050565b60008282111561139857fe5b50900390565b6000828201838110156113ad57fe5b9392505050565b60206040519081016040526000815290565b8154818355818115116113ea576000838152602090206113ea91810190830161140f565b505050565b606060405190810160409081526000808352602083018190529082015290565b61064891905b808211156114295760008155600101611415565b50905600a165627a7a72305820cbe9e6846613cc7a1bb0fbfea3ec864b04ca2a985063479d603325f3b11f1c500029

   Swarm Source:
bzzr://cbe9e6846613cc7a1bb0fbfea3ec864b04ca2a985063479d603325f3b11f1c50

 

View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.