ETH Price: $2,261.64 (+7.46%)
Gas: 0.06 Gwei

Contract

0x3a4131E478992CD856D2f8bE4CB5cD8E56e635B3
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Referrer128882862021-07-24 9:54:411695 days ago1627120481IN
0x3a4131E4...E56e635B3
0 ETH0.0003316913.80000155
Set Referrer126575622021-06-18 9:08:441731 days ago1624007324IN
0x3a4131E4...E56e635B3
0 ETH0.0003124613.00000145
Set Referrer123884322021-05-07 17:13:581773 days ago1620407638IN
0x3a4131E4...E56e635B3
0 ETH0.0029247121.68
Set Referrer123133182021-04-26 2:44:531785 days ago1619405093IN
0x3a4131E4...E56e635B3
0 ETH0.0014661961
Set Referrer121661572021-04-03 10:47:501807 days ago1617446870IN
0x3a4131E4...E56e635B3
0 ETH0.00296872123
Set Referrer121416882021-03-30 16:39:311811 days ago1617122371IN
0x3a4131E4...E56e635B3
0 ETH0.00772955320.25
Set Referrer118983652021-02-21 5:19:221848 days ago1613884762IN
0x3a4131E4...E56e635B3
0 ETH0.00287218119.00000146
Set Referrer117325602021-01-26 16:57:001874 days ago1611680220IN
0x3a4131E4...E56e635B3
0 ETH0.00466263107
Set Referrer116852962021-01-19 10:51:191881 days ago1611053479IN
0x3a4131E4...E56e635B3
0 ETH0.0021722490
Set Referrer116766422021-01-18 2:53:341883 days ago1610938414IN
0x3a4131E4...E56e635B3
0 ETH0.0014481660
Set Referrer116665232021-01-16 13:30:451884 days ago1610803845IN
0x3a4131E4...E56e635B3
0 ETH0.001810275
Set Referrer116664462021-01-16 13:11:161884 days ago1610802676IN
0x3a4131E4...E56e635B3
0 ETH0.0017619273
Set Referrer116532752021-01-14 12:40:261886 days ago1610628026IN
0x3a4131E4...E56e635B3
0 ETH0.001650968.4
Set Referrer116044692021-01-07 1:07:441894 days ago1609981664IN
0x3a4131E4...E56e635B3
0 ETH0.00286615118.75
Set Referrer115991002021-01-06 5:24:431894 days ago1609910683IN
0x3a4131E4...E56e635B3
0 ETH0.0030894128
Set Referrer115990932021-01-06 5:23:061894 days ago1609910586IN
0x3a4131E4...E56e635B3
0 ETH0.0030894128
Set Referrer115983752021-01-06 2:36:291895 days ago1609900589IN
0x3a4131E4...E56e635B3
0 ETH0.00303389125.7
Set Referrer115978322021-01-06 0:29:261895 days ago1609892966IN
0x3a4131E4...E56e635B3
0 ETH0.00277564115
Set Referrer115973922021-01-05 22:54:101895 days ago1609887250IN
0x3a4131E4...E56e635B3
0 ETH0.00251014104
Set Referrer115972522021-01-05 22:24:131895 days ago1609885453IN
0x3a4131E4...E56e635B3
0 ETH0.0023072795.59473684
Set Referrer115882432021-01-04 13:30:371896 days ago1609767037IN
0x3a4131E4...E56e635B3
0 ETH0.00680635282
Set Referrer115720672021-01-02 1:51:201899 days ago1609552280IN
0x3a4131E4...E56e635B3
0 ETH0.0021239688.00000156
Set Referrer115666752021-01-01 5:52:261899 days ago1609480346IN
0x3a4131E4...E56e635B3
0 ETH0.0010137142
Set Referrer115665632021-01-01 5:30:381899 days ago1609479038IN
0x3a4131E4...E56e635B3
0 ETH0.0010716344.40000175
Set Referrer115639972020-12-31 20:13:131900 days ago1609445593IN
0x3a4131E4...E56e635B3
0 ETH0.0013516156
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:
Affiliates

Compiler Version
v0.5.15+commit.6a57276f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU LGPLv3 license
pragma solidity 0.5.15;

contract IOwnable {
    function getOwner() public view returns (address);
    function transferOwnership(address _newOwner) public returns (bool);
}

contract Ownable is IOwnable {
    address internal owner;

    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor() public {
        owner = msg.sender;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    function getOwner() public view returns (address) {
        return owner;
    }

    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param _newOwner The address to transfer ownership to.
     */
    function transferOwnership(address _newOwner) public onlyOwner returns (bool) {
        require(_newOwner != address(0));
        onTransferOwnership(owner, _newOwner);
        owner = _newOwner;
        return true;
    }

    // Subclasses of this token may want to send additional logs through the centralized Augur log emitter contract
    function onTransferOwnership(address, address) internal;
}

contract IAffiliateValidator {
    function validateReference(address _account, address _referrer) external view returns (bool);
}

contract AffiliateValidator is Ownable, IAffiliateValidator {
    // Mapping of affiliate address to their key
    mapping (address => bytes32) public keys;

    mapping (address => bool) public operators;

    mapping (uint256 => bool) public usedSalts;

    /**
     * @notice Add an operator who can sign keys to admit accounts into this affiliate validator
     * @param _operator The address of the new operator
     */
    function addOperator(address _operator) external onlyOwner {
        operators[_operator] = true;
    }

    /**
     * @notice Remove an existing operator
     * @param _operator The operator to remove from the authorized operators
     */
    function removeOperator(address _operator) external onlyOwner {
        operators[_operator] = false;
    }

    /**
     * @notice Apply a key provided by an operator in order to be added to this validator
     * @param _key The key to store. This is used to check if an account is attempting to self trade
     * @param _salt A salt to secure the key hash
     * @param _r r portion of the signature
     * @param _s s portion of the signature
     * @param _v v portion of the signature
     * @return bytes32
     */
    function addKey(bytes32 _key, uint256 _salt, bytes32 _r, bytes32 _s, uint8 _v) external {
        require(!usedSalts[_salt], "Salt already used");
        bytes32 _hash = getKeyHash(_key, msg.sender, _salt);
        require(isValidSignature(_hash, _r, _s, _v), "Signature invalid");
        usedSalts[_salt] = true;
        keys[msg.sender] = _key;
    }

    /**
     * @notice Get the key hash for a given key
     * @param _key The key to get a hash for
     * @param _account The account to get a hash for
     * @param _salt A salt to secure the key hash
     * @return bytes32
     */
    function getKeyHash(bytes32 _key, address _account, uint256 _salt) public view returns (bytes32) {
        return keccak256(abi.encodePacked(_key, _account, address(this), _salt));
    }

    function isValidSignature(bytes32 _hash, bytes32 _r, bytes32 _s, uint8 _v) public view returns (bool) {
        address recovered = ecrecover(
            keccak256(abi.encodePacked(
                "\x19Ethereum Signed Message:\n32",
                _hash
            )),
            _v,
            _r,
            _s
        );
        return operators[recovered];
    }

    function validateReference(address _account, address _referrer) external view returns (bool) {
        bytes32 _accountKey = keys[_account];
        bytes32 _referralKey = keys[_referrer];
        if (_accountKey == bytes32(0) || _referralKey == bytes32(0)) {
            return false;
        }
        return _accountKey != _referralKey;
    }

    function onTransferOwnership(address, address) internal {}
}

contract Affiliates {
    // Maps an account to their fingerprint. Used to naively filter out attempts at self reference
    mapping (address => bytes32) public fingerprints;

    // Maps an account to the referral account. Used to apply affiliate fees on settlement.
    mapping (address => address) public referrals;

    // Mapping of valid Affiliate Validators
    mapping (address => bool) public affiliateValidators;

    /**
     * @notice Create a new Affiliate Validator contract to be used in markets
     * @return AffiliateValidator
     */
    function createAffiliateValidator() public returns (AffiliateValidator) {
        AffiliateValidator _affiliateValidator = new AffiliateValidator();
        _affiliateValidator.transferOwnership(msg.sender);
        affiliateValidators[address(_affiliateValidator)] = true;
        return _affiliateValidator;
    }

    /**
     * @notice Sets the browser fingerprint for an account
     * @param _fingerprint The account browser fingerprint
     */
    function setFingerprint(bytes32 _fingerprint) external {
        fingerprints[msg.sender] = _fingerprint;
    }

    /**
     * @notice Set the referring account for the sender.
     * @param _referrer The referrer who should recieve affiliate fees when possible for this account
     */
    function setReferrer(address _referrer) external {
        require(msg.sender != _referrer);

        if (referrals[msg.sender] != address(0)) {
            return;
        }

        referrals[msg.sender] = _referrer;
    }

    /**
     * @notice Get the fingerprint for an account
     * @param _account The account whose fingerprint to look up
     * @return bytes32
     */
    function getAccountFingerprint(address _account) external view returns (bytes32) {
        return fingerprints[_account];
    }

    /**
     * @notice Get the referrer for an account
     * @param _account The account whose referrer to look up
     * @return address
     */
    function getReferrer(address _account) external view returns (address) {
        return referrals[_account];
    }

    function getAndValidateReferrer(address _account, IAffiliateValidator _affiliateValidator) external view returns (address) {
        address _referrer = referrals[_account];
        if (_referrer == address(0) || _account == _referrer) {
            return address(0);
        }
        if (_affiliateValidator == IAffiliateValidator(0)) {
            return _referrer;
        }
        bool _success = _affiliateValidator.validateReference(_account, _referrer);
        if (!_success) {
            return address(0);
        }
        return _referrer;
    }
}

Settings
{
  "remappings": [
    "ROOT=/home/achapman/augur/packages/augur-core/src/contracts//"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200,
    "details": {
      "yul": true,
      "deduplicate": true,
      "cse": true,
      "constantOptimizer": true
    }
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"affiliateValidators","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"createAffiliateValidator","outputs":[{"internalType":"contract AffiliateValidator","name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"fingerprints","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getAccountFingerprint","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"contract IAffiliateValidator","name":"_affiliateValidator","type":"address"}],"name":"getAndValidateReferrer","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getReferrer","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"referrals","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_fingerprint","type":"bytes32"}],"name":"setFingerprint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_referrer","type":"address"}],"name":"setReferrer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50610b8d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c806358b0b9541161006657806358b0b954146101545780635f5961f5146101735780639ca423b314610199578063a18a7bfc146101bf578063b3086358146101e557610093565b80630617c4a614610098578063255b963c146100d05780634a9fefc71461010a5780635632c1ba1461014c575b600080fd5b6100be600480360360208110156100ae57600080fd5b50356001600160a01b0316610213565b60408051918252519081900360200190f35b6100f6600480360360208110156100e657600080fd5b50356001600160a01b031661022e565b604080519115158252519081900360200190f35b6101306004803603602081101561012057600080fd5b50356001600160a01b0316610243565b604080516001600160a01b039092168252519081900360200190f35b610130610261565b6101716004803603602081101561016a57600080fd5b503561032d565b005b6100be6004803603602081101561018957600080fd5b50356001600160a01b031661033f565b610130600480360360208110156101af57600080fd5b50356001600160a01b0316610351565b610171600480360360208110156101d557600080fd5b50356001600160a01b031661036c565b610130600480360360408110156101fb57600080fd5b506001600160a01b03813581169160200135166103d1565b6001600160a01b031660009081526020819052604090205490565b60026020526000908152604090205460ff1681565b6001600160a01b039081166000908152600160205260409020541690565b600080604051610270906104cb565b604051809103906000f08015801561028c573d6000803e3d6000fd5b506040805163f2fde38b60e01b815233600482015290519192506001600160a01b0383169163f2fde38b916024808201926020929091908290030181600087803b1580156102d957600080fd5b505af11580156102ed573d6000803e3d6000fd5b505050506040513d602081101561030357600080fd5b50506001600160a01b0381166000908152600260205260409020805460ff19166001179055905090565b33600090815260208190526040902055565b60006020819052908152604090205481565b6001602052600090815260409020546001600160a01b031681565b336001600160a01b038216141561038257600080fd5b336000908152600160205260409020546001600160a01b0316156103a5576103ce565b33600090815260016020526040902080546001600160a01b0319166001600160a01b0383161790555b50565b6001600160a01b0380831660009081526001602052604081205490911680158061040c5750806001600160a01b0316846001600160a01b0316145b1561041b5760009150506104c5565b6001600160a01b0383166104305790506104c5565b6040805163d8844c9160e01b81526001600160a01b0386811660048301528381166024830152915160009286169163d8844c91916044808301926020929190829003018186803b15801561048357600080fd5b505afa158015610497573d6000803e3d6000fd5b505050506040513d60208110156104ad57600080fd5b50519050806104c1576000925050506104c5565b5090505b92915050565b610680806104d98339019056fe6080604052600080546001600160a01b0319163317905561065b806100256000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063893d20e811610071578063893d20e8146101be5780639870d7fe146101e2578063ac8a584a14610208578063c775a2e41461022e578063d8844c911461024b578063f2fde38b14610279576100a9565b806313e7c9d8146100ae5780631575d1d0146100e8578063670d14b21461011a5780636769e5c81461015257806372a0d72814610184575b600080fd5b6100d4600480360360208110156100c457600080fd5b50356001600160a01b031661029f565b604080519115158252519081900360200190f35b6100d4600480360360808110156100fe57600080fd5b508035906020810135906040810135906060013560ff166102b4565b6101406004803603602081101561013057600080fd5b50356001600160a01b0316610390565b60408051918252519081900360200190f35b6101406004803603606081101561016857600080fd5b508035906001600160a01b0360208201351690604001356103a2565b6101bc600480360360a081101561019a57600080fd5b508035906020810135906040810135906060810135906080013560ff166103f3565b005b6101c66104d9565b604080516001600160a01b039092168252519081900360200190f35b6101bc600480360360208110156101f857600080fd5b50356001600160a01b03166104e8565b6101bc6004803603602081101561021e57600080fd5b50356001600160a01b0316610523565b6100d46004803603602081101561024457600080fd5b503561055b565b6100d46004803603604081101561026157600080fd5b506001600160a01b0381358116916020013516610570565b6100d46004803603602081101561028f57600080fd5b50356001600160a01b03166105bc565b60026020526000908152604090205460ff1681565b60008060018660405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084878760405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610362573d6000803e3d6000fd5b505060408051601f1901516001600160a01b031660009081526002602052205460ff16979650505050505050565b60016020526000908152604090205481565b60408051602080820195909552606093841b6bffffffffffffffffffffffff1916818301523090931b6054840152606880840192909252805180840390920182526088909201909152805191012090565b60008481526003602052604090205460ff161561044b576040805162461bcd60e51b815260206004820152601160248201527014d85b1d08185b1c9958591e481d5cd959607a1b604482015290519081900360640190fd5b60006104588633876103a2565b9050610466818585856102b4565b6104ab576040805162461bcd60e51b815260206004820152601160248201527014da59db985d1d5c99481a5b9d985b1a59607a1b604482015290519081900360640190fd5b505050600091825250600360209081526040808320805460ff19166001908117909155338452909152902055565b6000546001600160a01b031690565b6000546001600160a01b031633146104ff57600080fd5b6001600160a01b03166000908152600260205260409020805460ff19166001179055565b6000546001600160a01b0316331461053a57600080fd5b6001600160a01b03166000908152600260205260409020805460ff19169055565b60036020526000908152604090205460ff1681565b6001600160a01b038083166000908152600160205260408082205492841682528120549091908115806105a1575080155b156105b1576000925050506105b6565b141590505b92915050565b600080546001600160a01b031633146105d457600080fd5b6001600160a01b0382166105e757600080fd5b6000546105fd906001600160a01b031683610622565b50600080546001600160a01b0383166001600160a01b03199091161790556001919050565b505056fea265627a7a723158200f0d67f60a16f0d44604933ea31241dcb689f62f291b39a4627d1b44d85230c764736f6c634300050f0032a265627a7a7231582060d6b2301cbd751738642fbf6245e3d1626823be3ce96e1b50b46a34c9d137d164736f6c634300050f0032

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100935760003560e01c806358b0b9541161006657806358b0b954146101545780635f5961f5146101735780639ca423b314610199578063a18a7bfc146101bf578063b3086358146101e557610093565b80630617c4a614610098578063255b963c146100d05780634a9fefc71461010a5780635632c1ba1461014c575b600080fd5b6100be600480360360208110156100ae57600080fd5b50356001600160a01b0316610213565b60408051918252519081900360200190f35b6100f6600480360360208110156100e657600080fd5b50356001600160a01b031661022e565b604080519115158252519081900360200190f35b6101306004803603602081101561012057600080fd5b50356001600160a01b0316610243565b604080516001600160a01b039092168252519081900360200190f35b610130610261565b6101716004803603602081101561016a57600080fd5b503561032d565b005b6100be6004803603602081101561018957600080fd5b50356001600160a01b031661033f565b610130600480360360208110156101af57600080fd5b50356001600160a01b0316610351565b610171600480360360208110156101d557600080fd5b50356001600160a01b031661036c565b610130600480360360408110156101fb57600080fd5b506001600160a01b03813581169160200135166103d1565b6001600160a01b031660009081526020819052604090205490565b60026020526000908152604090205460ff1681565b6001600160a01b039081166000908152600160205260409020541690565b600080604051610270906104cb565b604051809103906000f08015801561028c573d6000803e3d6000fd5b506040805163f2fde38b60e01b815233600482015290519192506001600160a01b0383169163f2fde38b916024808201926020929091908290030181600087803b1580156102d957600080fd5b505af11580156102ed573d6000803e3d6000fd5b505050506040513d602081101561030357600080fd5b50506001600160a01b0381166000908152600260205260409020805460ff19166001179055905090565b33600090815260208190526040902055565b60006020819052908152604090205481565b6001602052600090815260409020546001600160a01b031681565b336001600160a01b038216141561038257600080fd5b336000908152600160205260409020546001600160a01b0316156103a5576103ce565b33600090815260016020526040902080546001600160a01b0319166001600160a01b0383161790555b50565b6001600160a01b0380831660009081526001602052604081205490911680158061040c5750806001600160a01b0316846001600160a01b0316145b1561041b5760009150506104c5565b6001600160a01b0383166104305790506104c5565b6040805163d8844c9160e01b81526001600160a01b0386811660048301528381166024830152915160009286169163d8844c91916044808301926020929190829003018186803b15801561048357600080fd5b505afa158015610497573d6000803e3d6000fd5b505050506040513d60208110156104ad57600080fd5b50519050806104c1576000925050506104c5565b5090505b92915050565b610680806104d98339019056fe6080604052600080546001600160a01b0319163317905561065b806100256000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c8063893d20e811610071578063893d20e8146101be5780639870d7fe146101e2578063ac8a584a14610208578063c775a2e41461022e578063d8844c911461024b578063f2fde38b14610279576100a9565b806313e7c9d8146100ae5780631575d1d0146100e8578063670d14b21461011a5780636769e5c81461015257806372a0d72814610184575b600080fd5b6100d4600480360360208110156100c457600080fd5b50356001600160a01b031661029f565b604080519115158252519081900360200190f35b6100d4600480360360808110156100fe57600080fd5b508035906020810135906040810135906060013560ff166102b4565b6101406004803603602081101561013057600080fd5b50356001600160a01b0316610390565b60408051918252519081900360200190f35b6101406004803603606081101561016857600080fd5b508035906001600160a01b0360208201351690604001356103a2565b6101bc600480360360a081101561019a57600080fd5b508035906020810135906040810135906060810135906080013560ff166103f3565b005b6101c66104d9565b604080516001600160a01b039092168252519081900360200190f35b6101bc600480360360208110156101f857600080fd5b50356001600160a01b03166104e8565b6101bc6004803603602081101561021e57600080fd5b50356001600160a01b0316610523565b6100d46004803603602081101561024457600080fd5b503561055b565b6100d46004803603604081101561026157600080fd5b506001600160a01b0381358116916020013516610570565b6100d46004803603602081101561028f57600080fd5b50356001600160a01b03166105bc565b60026020526000908152604090205460ff1681565b60008060018660405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012084878760405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610362573d6000803e3d6000fd5b505060408051601f1901516001600160a01b031660009081526002602052205460ff16979650505050505050565b60016020526000908152604090205481565b60408051602080820195909552606093841b6bffffffffffffffffffffffff1916818301523090931b6054840152606880840192909252805180840390920182526088909201909152805191012090565b60008481526003602052604090205460ff161561044b576040805162461bcd60e51b815260206004820152601160248201527014d85b1d08185b1c9958591e481d5cd959607a1b604482015290519081900360640190fd5b60006104588633876103a2565b9050610466818585856102b4565b6104ab576040805162461bcd60e51b815260206004820152601160248201527014da59db985d1d5c99481a5b9d985b1a59607a1b604482015290519081900360640190fd5b505050600091825250600360209081526040808320805460ff19166001908117909155338452909152902055565b6000546001600160a01b031690565b6000546001600160a01b031633146104ff57600080fd5b6001600160a01b03166000908152600260205260409020805460ff19166001179055565b6000546001600160a01b0316331461053a57600080fd5b6001600160a01b03166000908152600260205260409020805460ff19169055565b60036020526000908152604090205460ff1681565b6001600160a01b038083166000908152600160205260408082205492841682528120549091908115806105a1575080155b156105b1576000925050506105b6565b141590505b92915050565b600080546001600160a01b031633146105d457600080fd5b6001600160a01b0382166105e757600080fd5b6000546105fd906001600160a01b031683610622565b50600080546001600160a01b0383166001600160a01b03199091161790556001919050565b505056fea265627a7a723158200f0d67f60a16f0d44604933ea31241dcb689f62f291b39a4627d1b44d85230c764736f6c634300050f0032a265627a7a7231582060d6b2301cbd751738642fbf6245e3d1626823be3ce96e1b50b46a34c9d137d164736f6c634300050f0032

Deployed Bytecode Sourcemap

4156:2650:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4156:2650:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5843:127;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5843:127:0;-1:-1:-1;;;;;5843:127:0;;:::i;:::-;;;;;;;;;;;;;;;;4525:52;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4525:52:0;-1:-1:-1;;;;;4525:52:0;;:::i;:::-;;;;;;;;;;;;;;;;;;6123:114;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6123:114:0;-1:-1:-1;;;;;6123:114:0;;:::i;:::-;;;;-1:-1:-1;;;;;6123:114:0;;;;;;;;;;;;;;4713:315;;;:::i;5168:111::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5168:111:0;;:::i;:::-;;4281:48;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4281:48:0;-1:-1:-1;;;;;4281:48:0;;:::i;4428:45::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4428:45:0;-1:-1:-1;;;;;4428:45:0;;:::i;5460:224::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5460:224:0;-1:-1:-1;;;;;5460:224:0;;:::i;6243:561::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6243:561:0;;;;;;;;;;:::i;5843:127::-;-1:-1:-1;;;;;5941:22:0;5915:7;5941:22;;;;;;;;;;;;5843:127::o;4525:52::-;;;;;;;;;;;;;;;:::o;6123:114::-;-1:-1:-1;;;;;6211:19:0;;;6185:7;6211:19;;;:9;:19;;;;;;;;6123:114::o;4713:315::-;4765:18;4795:38;4836:24;;;;;:::i;:::-;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;4870:49:0;;;-1:-1:-1;;;4870:49:0;;4908:10;4870:49;;;;;;4795:65;;-1:-1:-1;;;;;;4870:37:0;;;;;:49;;;;;;;;;;;;;;;-1:-1:-1;4870:37:0;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;4870:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4870:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;;4929:49:0;;;;;;:19;4870:49;4929;;;;:56;;-1:-1:-1;;4929:56:0;4981:4;4929:56;;;4957:19;-1:-1:-1;4713:315:0;:::o;5168:111::-;5246:10;5233:12;:24;;;;;;;;;;:39;5168:111::o;4281:48::-;;;;;;;;;;;;;;:::o;4428:45::-;;;;;;;;;;;;-1:-1:-1;;;;;4428:45:0;;:::o;5460:224::-;5527:10;-1:-1:-1;;;;;5527:23:0;;;;5519:32;;;;;;5576:10;5599:1;5566:21;;;:9;:21;;;;;;-1:-1:-1;;;;;5566:21:0;:35;5562:72;;5617:7;;5562:72;5654:10;5644:21;;;;:9;:21;;;;;:33;;-1:-1:-1;;;;;;5644:33:0;-1:-1:-1;;;;;5644:33:0;;;;;5460:224;;:::o;6243:561::-;-1:-1:-1;;;;;6396:19:0;;;6357:7;6396:19;;;:9;:19;;;;;;6357:7;;6396:19;6429:23;;;:48;;;6468:9;-1:-1:-1;;;;;6456:21:0;:8;-1:-1:-1;;;;;6456:21:0;;6429:48;6425:96;;;6508:1;6493:17;;;;;6425:96;-1:-1:-1;;;;;6534:45:0;;6530:92;;6602:9;-1:-1:-1;6595:16:0;;6530:92;6647:58;;;-1:-1:-1;;;6647:58:0;;-1:-1:-1;;;;;6647:58:0;;;;;;;;;;;;;;;;6631:13;;6647:37;;;;;:58;;;;;;;;;;;;;;:37;:58;;;5:2:-1;;;;30:1;27;20:12;5:2;6647:58:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6647:58:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6647:58:0;;-1:-1:-1;6647:58:0;6715:57;;6759:1;6744:17;;;;;;6715:57;-1:-1:-1;6788:9:0;-1:-1:-1;6243:561:0;;;;;:::o;4156:2650::-;;;;;;;;:::o

Swarm Source

bzzr://60d6b2301cbd751738642fbf6245e3d1626823be3ce96e1b50b46a34c9d137d1

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.