ETH Price: $2,025.07 (+1.77%)

Contract

0x77599D2C6DB170224243e255e6669280F11F1473
 

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer247560492026-03-28 12:24:233 hrs ago1774700663IN
Opacity: OPQ Token
0 ETH0.000003050.08670513
Transfer245442992026-02-26 23:12:1129 days ago1772147531IN
Opacity: OPQ Token
0 ETH0.000002910.0828286
Transfer234200082025-09-22 17:18:35186 days ago1758561515IN
Opacity: OPQ Token
0 ETH0.000065371.85748916
Approve221933412025-04-04 5:03:23358 days ago1743743003IN
Opacity: OPQ Token
0 ETH0.000026720.55
Transfer221866522025-04-03 6:38:59359 days ago1743662339IN
Opacity: OPQ Token
0 ETH0.000021390.60396207
Transfer221866422025-04-03 6:36:59359 days ago1743662219IN
Opacity: OPQ Token
0 ETH0.000020410.57612598
Transfer221866402025-04-03 6:36:35359 days ago1743662195IN
Opacity: OPQ Token
0 ETH0.000020750.58637236
Transfer221866392025-04-03 6:36:23359 days ago1743662183IN
Opacity: OPQ Token
0 ETH0.00002090.59020936
Transfer221866322025-04-03 6:34:59359 days ago1743662099IN
Opacity: OPQ Token
0 ETH0.0000210.59341337
Transfer221866302025-04-03 6:34:35359 days ago1743662075IN
Opacity: OPQ Token
0 ETH0.000020230.5715016
Transfer221866272025-04-03 6:33:59359 days ago1743662039IN
Opacity: OPQ Token
0 ETH0.000018610.52597982
Transfer221866262025-04-03 6:33:47359 days ago1743662027IN
Opacity: OPQ Token
0 ETH0.000019490.55058326
Transfer221866242025-04-03 6:33:23359 days ago1743662003IN
Opacity: OPQ Token
0 ETH0.000020190.5703426
Transfer221866212025-04-03 6:32:47359 days ago1743661967IN
Opacity: OPQ Token
0 ETH0.000019970.56408423
Transfer221866192025-04-03 6:32:23359 days ago1743661943IN
Opacity: OPQ Token
0 ETH0.000020110.56826581
Transfer221866172025-04-03 6:31:59359 days ago1743661919IN
Opacity: OPQ Token
0 ETH0.000020390.57581765
Transfer221866162025-04-03 6:31:47359 days ago1743661907IN
Opacity: OPQ Token
0 ETH0.000021120.59650157
Transfer221866142025-04-03 6:31:23359 days ago1743661883IN
Opacity: OPQ Token
0 ETH0.00001950.55078146
Transfer221866102025-04-03 6:30:35359 days ago1743661835IN
Opacity: OPQ Token
0 ETH0.000020040.56600946
Transfer221866082025-04-03 6:30:11359 days ago1743661811IN
Opacity: OPQ Token
0 ETH0.000019540.55177495
Transfer221866072025-04-03 6:29:59359 days ago1743661799IN
Opacity: OPQ Token
0 ETH0.000018750.52934458
Transfer221866052025-04-03 6:29:35359 days ago1743661775IN
Opacity: OPQ Token
0 ETH0.000018580.52494772
Transfer221865992025-04-03 6:28:23359 days ago1743661703IN
Opacity: OPQ Token
0 ETH0.000018360.51837399
Transfer221865942025-04-03 6:27:23359 days ago1743661643IN
Opacity: OPQ Token
0 ETH0.000017270.48770997
Transfer221865902025-04-03 6:26:35359 days ago1743661595IN
Opacity: OPQ Token
0 ETH0.000018130.51218427
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Source Code Verified (Exact Match)

Contract Name:
Opacity

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-11-10
*/

pragma solidity ^0.4.25;

interface tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData) public; }

contract Opacity {
  // Public variables of OPQ
  string public name;
  string public symbol;
  uint8 public decimals;
  uint256 public totalSupply;
  uint256 public funds;
  address public director;
  bool public directorLock;
  uint256 public claimAmount;
  uint256 public payAmount;
  uint256 public feeAmount;
  uint256 public epoch;
  uint256 public retentionMax;

  // Array definitions
  mapping (address => uint256) public balances;
  mapping (address => mapping (address => uint256)) public allowance;
  mapping (address => bool) public buried;
  mapping (address => uint256) public claimed;

  // ERC20 event
  event Transfer(address indexed _from, address indexed _to, uint256 _value);

  // ERC20 event
  event Approval(address indexed _owner, address indexed _spender, uint256 _value);

  // This notifies clients about the amount burnt
  event Burn(address indexed _from, uint256 _value);

  // This notifies clients about an address getting buried
  event Bury(address indexed _target, uint256 _value);

  // This notifies clients about a claim being made on a buried address
  event Claim(address indexed _target, address indexed _payout, address indexed _fee);

  /**
   * Constructor function
   *
   * Initializes contract
   */
  function Opacity() public payable {
    director = msg.sender;
    name = "Opacity";
    symbol = "OPQ";
    decimals = 18;
    directorLock = false;
    funds = 0;
    totalSupply = 130000000 * 10 ** uint256(decimals);

    // Assign reserved OPQ supply to the director
    balances[director] = totalSupply;

    // Define default values for Opacity functions
    claimAmount = 5 * 10 ** (uint256(decimals) - 1);
    payAmount = 4 * 10 ** (uint256(decimals) - 1);
    feeAmount = 1 * 10 ** (uint256(decimals) - 1);

    // Seconds in a year
    epoch = 31536000;

    // Maximum time for a sector to remain stored
    retentionMax = 40 * 10 ** uint256(decimals);
  }

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

  modifier onlyDirector {
    // Director can lock themselves out to complete decentralization of Opacity
    // An alternative is that another smart contract could become the decentralized director
    require(!directorLock);

    // Only the director is permitted
    require(msg.sender == director);
    _;
  }

  modifier onlyDirectorForce {
    // Only the director is permitted
    require(msg.sender == director);
    _;
  }

  /**
   * Transfers the director to a new address
   */
  function transferDirector(address newDirector) public onlyDirectorForce {
    director = newDirector;
  }

  /**
   * Withdraw funds from the contract
   */
  function withdrawFunds() public onlyDirectorForce {
    director.transfer(this.balance);
  }

  /**
   * Permanently lock out the director to decentralize Opacity
   * Invocation is discretionary because Opacity might be better suited to
   * transition to an artificially intelligent smart contract director
   */
  function selfLock() public payable onlyDirector {

    // Prevents accidental lockout
    require(msg.value == 10 ether);

    // Permanently lock out the director
    directorLock = true;
  }

  /**
   * Director can alter the storage-peg and broker fees
   */
  function amendClaim(uint8 claimAmountSet, uint8 payAmountSet, uint8 feeAmountSet, uint8 accuracy) public onlyDirector returns (bool success) {
    require(claimAmountSet == (payAmountSet + feeAmountSet));
    require(payAmountSet < claimAmountSet);
    require(feeAmountSet < claimAmountSet);
    require(claimAmountSet > 0);
    require(payAmountSet > 0);
    require(feeAmountSet > 0);

    claimAmount = claimAmountSet * 10 ** (uint256(decimals) - accuracy);
    payAmount = payAmountSet * 10 ** (uint256(decimals) - accuracy);
    feeAmount = feeAmountSet * 10 ** (uint256(decimals) - accuracy);
    return true;
  }

  /**
   * Director can alter the epoch time
   */
  function amendEpoch(uint256 epochSet) public onlyDirector returns (bool success) {
    // Set the epoch
    epoch = epochSet;
    return true;
  }

  /**
   * Director can alter the maximum time of storage retention
   */
  function amendRetention(uint8 retentionSet, uint8 accuracy) public onlyDirector returns (bool success) {
    // Set retentionMax
    retentionMax = retentionSet * 10 ** (uint256(decimals) - accuracy);
    return true;
  }

  /**
   * Bury an address
   *
   * When an address is buried; only claimAmount can be withdrawn once per epoch
   */
  function bury() public returns (bool success) {
    // The address must be previously unburied
    require(!buried[msg.sender]);

    // An address must have at least claimAmount to be buried
    require(balances[msg.sender] >= claimAmount);

    // Prevent addresses with large balances from getting buried
    require(balances[msg.sender] <= retentionMax);

    // Set buried state to true
    buried[msg.sender] = true;

    // Set the initial claim clock to 1
    claimed[msg.sender] = 1;

    // Execute an event reflecting the change
    emit Bury(msg.sender, balances[msg.sender]);
    return true;
  }

  /**
   * Claim OPQ from a buried address
   *
   * If a prior claim wasn't made during the current epoch, then claimAmount can be withdrawn
   *
   * @param _payout the address of the website owner
   * @param _fee the address of the broker node
   */
  function claim(address _payout, address _fee) public returns (bool success) {
    // The claimed address must have already been buried
    require(buried[msg.sender]);

    // The payout and fee addresses must be different
    require(_payout != _fee);

    // The claimed address cannot pay itself
    require(msg.sender != _payout);

    // The claimed address cannot pay itself
    require(msg.sender != _fee);

    // It must be either the first time this address is being claimed or atleast epoch in time has passed
    require(claimed[msg.sender] == 1 || (block.timestamp - claimed[msg.sender]) >= epoch);

    // Check if the buried address has enough
    require(balances[msg.sender] >= claimAmount);

    // Reset the claim clock to the current block time
    claimed[msg.sender] = block.timestamp;

    // Save this for an assertion in the future
    uint256 previousBalances = balances[msg.sender] + balances[_payout] + balances[_fee];

    // Remove claimAmount from the buried address
    balances[msg.sender] -= claimAmount;

    // Pay the website owner that invoked the web node that found the OPQ seed key
    balances[_payout] += payAmount;

    // Pay the broker node that unlocked the OPQ
    balances[_fee] += feeAmount;

    // Execute events to reflect the changes
    emit Claim(msg.sender, _payout, _fee);
    emit Transfer(msg.sender, _payout, payAmount);
    emit Transfer(msg.sender, _fee, feeAmount);

    // Failsafe logic that should never be false
    assert(balances[msg.sender] + balances[_payout] + balances[_fee] == previousBalances);
    return true;
  }

  /**
   * Internal transfer, can be called by this contract only
   */
  function _transfer(address _from, address _to, uint _value) internal {
    // Sending addresses cannot be buried
    require(!buried[_from]);

    // If the receiving address is buried, it cannot exceed retentionMax
    if (buried[_to]) {
      require(balances[_to] + _value <= retentionMax);
    }

    // Prevent transfer to 0x0 address, use burn() instead
    require(_to != 0x0);

    // Check if the sender has enough
    require(balances[_from] >= _value);

    // Check for overflows
    require(balances[_to] + _value > balances[_to]);

    // Save this for an assertion in the future
    uint256 previousBalances = balances[_from] + balances[_to];

    // Subtract from the sender
    balances[_from] -= _value;

    // Add the same to the recipient
    balances[_to] += _value;
    emit Transfer(_from, _to, _value);

    // Failsafe logic that should never be false
    assert(balances[_from] + balances[_to] == previousBalances);
  }

  /**
   * Transfer tokens
   *
   * Send `_value` tokens to `_to` from your account
   *
   * @param _to the address of the recipient
   * @param _value the amount to send
   */
  function transfer(address _to, uint256 _value) public {
    _transfer(msg.sender, _to, _value);
  }

  /**
   * Transfer tokens from other address
   *
   * Send `_value` tokens to `_to` in behalf of `_from`
   *
   * @param _from the address of the sender
   * @param _to the address of the recipient
   * @param _value the amount to send
   */
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
    // Check allowance
    require(_value <= allowance[_from][msg.sender]);
    allowance[_from][msg.sender] -= _value;
    _transfer(_from, _to, _value);
    return true;
  }

  /**
   * Set allowance for other address
   *
   * Allows `_spender` to spend no more than `_value` tokens on your behalf
   *
   * @param _spender the address authorized to spend
   * @param _value the max amount they can spend
   */
  function approve(address _spender, uint256 _value) public returns (bool success) {
    // Buried addresses cannot be approved
    require(!buried[msg.sender]);

    allowance[msg.sender][_spender] = _value;
    emit Approval(msg.sender, _spender, _value);
    return true;
  }

  /**
   * Set allowance for other address and notify
   *
   * Allows `_spender` to spend no more than `_value` tokens on your behalf, and then ping the contract about it
   *
   * @param _spender the address authorized to spend
   * @param _value the max amount they can spend
   * @param _extraData some extra information to send to the approved contract
   */
  function approveAndCall(address _spender, uint256 _value, bytes _extraData) public returns (bool success) {
    tokenRecipient spender = tokenRecipient(_spender);
    if (approve(_spender, _value)) {
      spender.receiveApproval(msg.sender, _value, this, _extraData);
      return true;
    }
  }

  /**
   * Destroy tokens
   *
   * Remove `_value` tokens from the system irreversibly
   *
   * @param _value the amount of money to burn
   */
  function burn(uint256 _value) public returns (bool success) {
    // Buried addresses cannot be burnt
    require(!buried[msg.sender]);

    // Check if the sender has enough
    require(balances[msg.sender] >= _value);

    // Subtract from the sender
    balances[msg.sender] -= _value;

    // Updates totalSupply
    totalSupply -= _value;
    emit Burn(msg.sender, _value);
    return true;
  }

  /**
   * Destroy tokens from other account
   *
   * Remove `_value` tokens from the system irreversibly on behalf of `_from`.
   *
   * @param _from the address of the sender
   * @param _value the amount of money to burn
   */
  function burnFrom(address _from, uint256 _value) public returns (bool success) {
    // Buried addresses cannot be burnt
    require(!buried[_from]);

    // Check if the targeted balance is enough
    require(balances[_from] >= _value);

    // Check allowance
    require(_value <= allowance[_from][msg.sender]);

    // Subtract from the targeted balance
    balances[_from] -= _value;

    // Subtract from the sender's allowance
    allowance[_from][msg.sender] -= _value;

    // Update totalSupply
    totalSupply -= _value;
    emit Burn(_from, _value);
    return true;
  }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","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":"_payout","type":"address"},{"name":"_fee","type":"address"}],"name":"claim","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"retentionMax","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":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"buried","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"epochSet","type":"uint256"}],"name":"amendEpoch","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"director","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"retentionSet","type":"uint8"},{"name":"accuracy","type":"uint8"}],"name":"amendRetention","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"bury","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"feeAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":"_from","type":"address"},{"name":"_value","type":"uint256"}],"name":"burnFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"claimAmountSet","type":"uint8"},{"name":"payAmountSet","type":"uint8"},{"name":"feeAmountSet","type":"uint8"},{"name":"accuracy","type":"uint8"}],"name":"amendClaim","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"claimAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"epoch","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"payAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"claimed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"funds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"selfLock","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newDirector","type":"address"}],"name":"transferDirector","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"directorLock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":true,"stateMutability":"payable","type":"constructor"},{"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"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_target","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Bury","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_target","type":"address"},{"indexed":true,"name":"_payout","type":"address"},{"indexed":true,"name":"_fee","type":"address"}],"name":"Claim","type":"event"}]

60058054600160a060020a0319163317905560c0604052600760808190527f4f7061636974790000000000000000000000000000000000000000000000000060a090815262000052916000919062000122565b506040805180820190915260038082527f4f505100000000000000000000000000000000000000000000000000000000006020909201918252620000999160019162000122565b5060028054601260ff19909116178082556005805460a060020a60ff0219811682556000600481815560ff948516600a90810a6307bfa480026003819055600160a060020a039094168352600b60205260409092209290925593549092166000198101840a9182026006559181026007556008556301e13380600955810a6028029055620001c7565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200016557805160ff191683800117855562000195565b8280016001018555821562000195579182015b828111156200019557825182559160200191906001019062000178565b50620001a3929150620001a7565b5090565b620001c491905b80821115620001a35760008155600101620001ae565b90565b61120b80620001d76000396000f30060806040526004361061018a5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461018f578063095ea7b31461021957806318160ddd1461025157806321c0b3421461027857806322bb4f531461029f57806323b872dd146102b457806324600fc3146102de57806327e235e3146102f5578063313ce567146103165780633f1199e61461034157806342966c6814610362578063549215a31461037a5780635af82abf146103925780635f5f2aef146103c357806361161aae146103e457806369e15404146103f957806370a082311461040e57806379cc67901461042f5780637dbc9fba14610453578063830953ab14610480578063900cf0cf1461049557806395d89b41146104aa578063a9059cbb146104bf578063c8705544146104e3578063c884ef83146104f8578063c89f2ce414610519578063cae9ca511461052e578063d1e7e81f14610597578063dd62ed3e1461059f578063ddd41ef6146105c6578063ffe2d77e146105e7575b600080fd5b34801561019b57600080fd5b506101a46105fc565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101de5781810151838201526020016101c6565b50505050905090810190601f16801561020b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022557600080fd5b5061023d600160a060020a036004351660243561068a565b604080519115158252519081900360200190f35b34801561025d57600080fd5b5061026661070e565b60408051918252519081900360200190f35b34801561028457600080fd5b5061023d600160a060020a0360043581169060243516610714565b3480156102ab57600080fd5b50610266610926565b3480156102c057600080fd5b5061023d600160a060020a036004358116906024351660443561092c565b3480156102ea57600080fd5b506102f3610991565b005b34801561030157600080fd5b50610266600160a060020a03600435166109e5565b34801561032257600080fd5b5061032b6109f7565b6040805160ff9092168252519081900360200190f35b34801561034d57600080fd5b5061023d600160a060020a0360043516610a00565b34801561036e57600080fd5b5061023d600435610a15565b34801561038657600080fd5b5061023d600435610aaa565b34801561039e57600080fd5b506103a7610ae4565b60408051600160a060020a039092168252519081900360200190f35b3480156103cf57600080fd5b5061023d60ff60043581169060243516610af3565b3480156103f057600080fd5b5061023d610b45565b34801561040557600080fd5b50610266610c06565b34801561041a57600080fd5b50610266600160a060020a0360043516610c0c565b34801561043b57600080fd5b5061023d600160a060020a0360043516602435610c27565b34801561045f57600080fd5b5061023d60ff60043581169060243581169060443581169060643516610d1e565b34801561048c57600080fd5b50610266610de3565b3480156104a157600080fd5b50610266610de9565b3480156104b657600080fd5b506101a4610def565b3480156104cb57600080fd5b506102f3600160a060020a0360043516602435610e49565b3480156104ef57600080fd5b50610266610e58565b34801561050457600080fd5b50610266600160a060020a0360043516610e5e565b34801561052557600080fd5b50610266610e70565b34801561053a57600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261023d948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750610e769650505050505050565b6102f3610f8f565b3480156105ab57600080fd5b50610266600160a060020a0360043581169060243516610ff7565b3480156105d257600080fd5b506102f3600160a060020a0360043516611014565b3480156105f357600080fd5b5061023d61105a565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106825780601f1061065757610100808354040283529160200191610682565b820191906000526020600020905b81548152906001019060200180831161066557829003601f168201915b505050505081565b336000908152600d602052604081205460ff16156106a757600080fd5b336000818152600c60209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60035481565b336000908152600d6020526040812054819060ff16151561073457600080fd5b600160a060020a03848116908416141561074d57600080fd5b33600160a060020a038516141561076357600080fd5b33600160a060020a038416141561077957600080fd5b336000908152600e6020526040902054600114806107aa5750600954336000908152600e6020526040902054420310155b15156107b557600080fd5b600654336000908152600b602052604090205410156107d357600080fd5b50336000818152600e60209081526040808320429055600160a060020a03868116808552600b90935281842080549189168086528386208054888852858820805460065481039091556007548354019092556008548789528454019093559351939091019091019492939092917fcac3ed26c9dd72a2c44999857298af9c72ba2d1ca9784f5dad48c933e2224c119190a46007546040805191825251600160a060020a0386169133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a36008546040805191825251600160a060020a0385169133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3600160a060020a038084166000908152600b6020526040808220549287168252808220543383529120540101811461091c57fe5b5060019392505050565b600a5481565b600160a060020a0383166000908152600c6020908152604080832033845290915281205482111561095c57600080fd5b600160a060020a0384166000908152600c6020908152604080832033845290915290208054839003905561091c84848461106a565b600554600160a060020a031633146109a857600080fd5b600554604051600160a060020a0390911690303180156108fc02916000818181858888f193505050501580156109e2573d6000803e3d6000fd5b50565b600b6020526000908152604090205481565b60025460ff1681565b600d6020526000908152604090205460ff1681565b336000908152600d602052604081205460ff1615610a3257600080fd5b336000908152600b6020526040902054821115610a4e57600080fd5b336000818152600b602090815260409182902080548690039055600380548690039055815185815291517fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59281900390910190a2506001919050565b60055460009060a060020a900460ff1615610ac457600080fd5b600554600160a060020a03163314610adb57600080fd5b50600955600190565b600554600160a060020a031681565b60055460009060a060020a900460ff1615610b0d57600080fd5b600554600160a060020a03163314610b2457600080fd5b5060025460ff91821690821603600a90810a92909116919091029055600190565b336000908152600d602052604081205460ff1615610b6257600080fd5b600654336000908152600b60205260409020541015610b8057600080fd5b600a54336000908152600b60205260409020541115610b9e57600080fd5b336000818152600d60209081526040808320805460ff19166001908117909155600e835281842055600b82529182902054825190815291517fc96e8fee6eb65975d592ca9a340f33200433df4c42b2f623dd9fc6d22984d4959281900390910190a250600190565b60085481565b600160a060020a03166000908152600b602052604090205490565b600160a060020a0382166000908152600d602052604081205460ff1615610c4d57600080fd5b600160a060020a0383166000908152600b6020526040902054821115610c7257600080fd5b600160a060020a0383166000908152600c60209081526040808320338452909152902054821115610ca257600080fd5b600160a060020a0383166000818152600b6020908152604080832080548790039055600c825280832033845282529182902080548690039055600380548690039055815185815291517fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59281900390910190a250600192915050565b60055460009060a060020a900460ff1615610d3857600080fd5b600554600160a060020a03163314610d4f57600080fd5b82840160ff168560ff16141515610d6557600080fd5b60ff80861690851610610d7757600080fd5b60ff80861690841610610d8957600080fd5b600060ff861611610d9957600080fd5b600060ff851611610da957600080fd5b600060ff841611610db957600080fd5b5060025460ff91821690821603600a0a938116840260065591821683026007551602600855600190565b60065481565b60095481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106825780601f1061065757610100808354040283529160200191610682565b610e5433838361106a565b5050565b60075481565b600e6020526000908152604090205481565b60045481565b600083610e83818561068a565b15610f87576040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081523360048201818152602483018790523060448401819052608060648501908152875160848601528751600160a060020a03871695638f4ffcb195948b94938b939192909160a490910190602085019080838360005b83811015610f1b578181015183820152602001610f03565b50505050905090810190601f168015610f485780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610f6a57600080fd5b505af1158015610f7e573d6000803e3d6000fd5b50505050600191505b509392505050565b60055460a060020a900460ff1615610fa657600080fd5b600554600160a060020a03163314610fbd57600080fd5b678ac7230489e800003414610fd157600080fd5b6005805474ff0000000000000000000000000000000000000000191660a060020a179055565b600c60209081526000928352604080842090915290825290205481565b600554600160a060020a0316331461102b57600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60055460a060020a900460ff1681565b600160a060020a0383166000908152600d602052604081205460ff161561109057600080fd5b600160a060020a0383166000908152600d602052604090205460ff16156110da57600a54600160a060020a0384166000908152600b6020526040902054830111156110da57600080fd5b600160a060020a03831615156110ef57600080fd5b600160a060020a0384166000908152600b602052604090205482111561111457600080fd5b600160a060020a0383166000908152600b60205260409020548281011161113a57600080fd5b50600160a060020a038083166000818152600b60209081526040808320805495891680855282852080548981039091559486905281548801909155815187815291519390950194927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3600160a060020a038084166000908152600b60205260408082205492871682529020540181146111d957fe5b505050505600a165627a7a72305820cfecf20d7c390211a42a13ea9c1d89c021333fd6a06220d527c063af7b5b90f40029

Deployed Bytecode

0x60806040526004361061018a5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461018f578063095ea7b31461021957806318160ddd1461025157806321c0b3421461027857806322bb4f531461029f57806323b872dd146102b457806324600fc3146102de57806327e235e3146102f5578063313ce567146103165780633f1199e61461034157806342966c6814610362578063549215a31461037a5780635af82abf146103925780635f5f2aef146103c357806361161aae146103e457806369e15404146103f957806370a082311461040e57806379cc67901461042f5780637dbc9fba14610453578063830953ab14610480578063900cf0cf1461049557806395d89b41146104aa578063a9059cbb146104bf578063c8705544146104e3578063c884ef83146104f8578063c89f2ce414610519578063cae9ca511461052e578063d1e7e81f14610597578063dd62ed3e1461059f578063ddd41ef6146105c6578063ffe2d77e146105e7575b600080fd5b34801561019b57600080fd5b506101a46105fc565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101de5781810151838201526020016101c6565b50505050905090810190601f16801561020b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561022557600080fd5b5061023d600160a060020a036004351660243561068a565b604080519115158252519081900360200190f35b34801561025d57600080fd5b5061026661070e565b60408051918252519081900360200190f35b34801561028457600080fd5b5061023d600160a060020a0360043581169060243516610714565b3480156102ab57600080fd5b50610266610926565b3480156102c057600080fd5b5061023d600160a060020a036004358116906024351660443561092c565b3480156102ea57600080fd5b506102f3610991565b005b34801561030157600080fd5b50610266600160a060020a03600435166109e5565b34801561032257600080fd5b5061032b6109f7565b6040805160ff9092168252519081900360200190f35b34801561034d57600080fd5b5061023d600160a060020a0360043516610a00565b34801561036e57600080fd5b5061023d600435610a15565b34801561038657600080fd5b5061023d600435610aaa565b34801561039e57600080fd5b506103a7610ae4565b60408051600160a060020a039092168252519081900360200190f35b3480156103cf57600080fd5b5061023d60ff60043581169060243516610af3565b3480156103f057600080fd5b5061023d610b45565b34801561040557600080fd5b50610266610c06565b34801561041a57600080fd5b50610266600160a060020a0360043516610c0c565b34801561043b57600080fd5b5061023d600160a060020a0360043516602435610c27565b34801561045f57600080fd5b5061023d60ff60043581169060243581169060443581169060643516610d1e565b34801561048c57600080fd5b50610266610de3565b3480156104a157600080fd5b50610266610de9565b3480156104b657600080fd5b506101a4610def565b3480156104cb57600080fd5b506102f3600160a060020a0360043516602435610e49565b3480156104ef57600080fd5b50610266610e58565b34801561050457600080fd5b50610266600160a060020a0360043516610e5e565b34801561052557600080fd5b50610266610e70565b34801561053a57600080fd5b50604080516020600460443581810135601f810184900484028501840190955284845261023d948235600160a060020a0316946024803595369594606494920191908190840183828082843750949750610e769650505050505050565b6102f3610f8f565b3480156105ab57600080fd5b50610266600160a060020a0360043581169060243516610ff7565b3480156105d257600080fd5b506102f3600160a060020a0360043516611014565b3480156105f357600080fd5b5061023d61105a565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106825780601f1061065757610100808354040283529160200191610682565b820191906000526020600020905b81548152906001019060200180831161066557829003601f168201915b505050505081565b336000908152600d602052604081205460ff16156106a757600080fd5b336000818152600c60209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60035481565b336000908152600d6020526040812054819060ff16151561073457600080fd5b600160a060020a03848116908416141561074d57600080fd5b33600160a060020a038516141561076357600080fd5b33600160a060020a038416141561077957600080fd5b336000908152600e6020526040902054600114806107aa5750600954336000908152600e6020526040902054420310155b15156107b557600080fd5b600654336000908152600b602052604090205410156107d357600080fd5b50336000818152600e60209081526040808320429055600160a060020a03868116808552600b90935281842080549189168086528386208054888852858820805460065481039091556007548354019092556008548789528454019093559351939091019091019492939092917fcac3ed26c9dd72a2c44999857298af9c72ba2d1ca9784f5dad48c933e2224c119190a46007546040805191825251600160a060020a0386169133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a36008546040805191825251600160a060020a0385169133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a3600160a060020a038084166000908152600b6020526040808220549287168252808220543383529120540101811461091c57fe5b5060019392505050565b600a5481565b600160a060020a0383166000908152600c6020908152604080832033845290915281205482111561095c57600080fd5b600160a060020a0384166000908152600c6020908152604080832033845290915290208054839003905561091c84848461106a565b600554600160a060020a031633146109a857600080fd5b600554604051600160a060020a0390911690303180156108fc02916000818181858888f193505050501580156109e2573d6000803e3d6000fd5b50565b600b6020526000908152604090205481565b60025460ff1681565b600d6020526000908152604090205460ff1681565b336000908152600d602052604081205460ff1615610a3257600080fd5b336000908152600b6020526040902054821115610a4e57600080fd5b336000818152600b602090815260409182902080548690039055600380548690039055815185815291517fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59281900390910190a2506001919050565b60055460009060a060020a900460ff1615610ac457600080fd5b600554600160a060020a03163314610adb57600080fd5b50600955600190565b600554600160a060020a031681565b60055460009060a060020a900460ff1615610b0d57600080fd5b600554600160a060020a03163314610b2457600080fd5b5060025460ff91821690821603600a90810a92909116919091029055600190565b336000908152600d602052604081205460ff1615610b6257600080fd5b600654336000908152600b60205260409020541015610b8057600080fd5b600a54336000908152600b60205260409020541115610b9e57600080fd5b336000818152600d60209081526040808320805460ff19166001908117909155600e835281842055600b82529182902054825190815291517fc96e8fee6eb65975d592ca9a340f33200433df4c42b2f623dd9fc6d22984d4959281900390910190a250600190565b60085481565b600160a060020a03166000908152600b602052604090205490565b600160a060020a0382166000908152600d602052604081205460ff1615610c4d57600080fd5b600160a060020a0383166000908152600b6020526040902054821115610c7257600080fd5b600160a060020a0383166000908152600c60209081526040808320338452909152902054821115610ca257600080fd5b600160a060020a0383166000818152600b6020908152604080832080548790039055600c825280832033845282529182902080548690039055600380548690039055815185815291517fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59281900390910190a250600192915050565b60055460009060a060020a900460ff1615610d3857600080fd5b600554600160a060020a03163314610d4f57600080fd5b82840160ff168560ff16141515610d6557600080fd5b60ff80861690851610610d7757600080fd5b60ff80861690841610610d8957600080fd5b600060ff861611610d9957600080fd5b600060ff851611610da957600080fd5b600060ff841611610db957600080fd5b5060025460ff91821690821603600a0a938116840260065591821683026007551602600855600190565b60065481565b60095481565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106825780601f1061065757610100808354040283529160200191610682565b610e5433838361106a565b5050565b60075481565b600e6020526000908152604090205481565b60045481565b600083610e83818561068a565b15610f87576040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081523360048201818152602483018790523060448401819052608060648501908152875160848601528751600160a060020a03871695638f4ffcb195948b94938b939192909160a490910190602085019080838360005b83811015610f1b578181015183820152602001610f03565b50505050905090810190601f168015610f485780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015610f6a57600080fd5b505af1158015610f7e573d6000803e3d6000fd5b50505050600191505b509392505050565b60055460a060020a900460ff1615610fa657600080fd5b600554600160a060020a03163314610fbd57600080fd5b678ac7230489e800003414610fd157600080fd5b6005805474ff0000000000000000000000000000000000000000191660a060020a179055565b600c60209081526000928352604080842090915290825290205481565b600554600160a060020a0316331461102b57600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60055460a060020a900460ff1681565b600160a060020a0383166000908152600d602052604081205460ff161561109057600080fd5b600160a060020a0383166000908152600d602052604090205460ff16156110da57600a54600160a060020a0384166000908152600b6020526040902054830111156110da57600080fd5b600160a060020a03831615156110ef57600080fd5b600160a060020a0384166000908152600b602052604090205482111561111457600080fd5b600160a060020a0383166000908152600b60205260409020548281011161113a57600080fd5b50600160a060020a038083166000818152600b60209081526040808320805495891680855282852080548981039091559486905281548801909155815187815291519390950194927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3600160a060020a038084166000908152600b60205260408082205492871682529020540181146111d957fe5b505050505600a165627a7a72305820cfecf20d7c390211a42a13ea9c1d89c021333fd6a06220d527c063af7b5b90f40029

Swarm Source

bzzr://cfecf20d7c390211a42a13ea9c1d89c021333fd6a06220d527c063af7b5b90f4

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

Opacity token contract has migrated to 0xDb05EA0877A2622883941b939f0bb11d1ac7c400

Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.