ETH Price: $3,313.77 (-2.86%)
Gas: 14 Gwei

Contract

0x67c597624B17b16fb77959217360B7cD18284253
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Benchmark (MARK) (@$0.5014)

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Value
Approve202020162024-06-30 4:08:593 days ago1719720539IN
Benchmark: MARK Token
0 ETH0.0018216839.2114681
Approve202009072024-06-30 0:24:593 days ago1719707099IN
Benchmark: MARK Token
0 ETH0.00003631.38717288
Approve202008942024-06-30 0:22:233 days ago1719706943IN
Benchmark: MARK Token
0 ETH0.000035031.44911514
Approve201584012024-06-24 1:55:239 days ago1719194123IN
Benchmark: MARK Token
0 ETH0.000085121.83227402
Transfer201580512024-06-24 0:45:239 days ago1719189923IN
Benchmark: MARK Token
0 ETH0.000107992.9329539
Transfer201580502024-06-24 0:45:119 days ago1719189911IN
Benchmark: MARK Token
0 ETH0.000143722.92521778
Approve200899612024-06-14 12:11:2319 days ago1718367083IN
Benchmark: MARK Token
0 ETH0.000140445.80961964
Approve200773462024-06-12 17:49:3520 days ago1718214575IN
Benchmark: MARK Token
0 ETH0.000335413.87442046
Approve200639442024-06-10 20:53:4722 days ago1718052827IN
Benchmark: MARK Token
0 ETH0.0012005526.02319517
Approve199932522024-06-01 0:00:3532 days ago1717200035IN
Benchmark: MARK Token
0 ETH0.000302056.50176079
Approve199924562024-05-31 21:20:1132 days ago1717190411IN
Benchmark: MARK Token
0 ETH0.000369387.95089895
Approve199769422024-05-29 17:15:4734 days ago1717002947IN
Benchmark: MARK Token
0 ETH0.0007188115.47237947
Approve199582132024-05-27 2:26:2337 days ago1716776783IN
Benchmark: MARK Token
0 ETH0.000328377.11978554
Approve199457442024-05-25 8:37:2339 days ago1716626243IN
Benchmark: MARK Token
0 ETH0.000220394.74402755
Approve199230532024-05-22 4:29:1142 days ago1716352151IN
Benchmark: MARK Token
0 ETH0.000164565.67049242
Transfer199173672024-05-21 9:23:5943 days ago1716283439IN
Benchmark: MARK Token
0 ETH0.0002668310
Transfer199172622024-05-21 9:02:5943 days ago1716282179IN
Benchmark: MARK Token
0 ETH0.000240039
Transfer199172462024-05-21 8:59:4743 days ago1716281987IN
Benchmark: MARK Token
0 ETH0.000240039
Approve198706042024-05-14 20:27:5949 days ago1715718479IN
Benchmark: MARK Token
0 ETH0.00024585.33504785
Approve198659422024-05-14 4:43:4750 days ago1715661827IN
Benchmark: MARK Token
0 ETH0.000217594.68375775
Approve198070842024-05-05 23:10:4758 days ago1714950647IN
Benchmark: MARK Token
0 ETH0.000112814.66676891
Approve197780792024-05-01 21:50:2362 days ago1714600223IN
Benchmark: MARK Token
0 ETH0.00031016.72183296
Approve197780662024-05-01 21:47:4762 days ago1714600067IN
Benchmark: MARK Token
0 ETH0.00032527
Approve197760822024-05-01 15:09:4763 days ago1714576187IN
Benchmark: MARK Token
0 ETH0.0002502510.35225992
Approve197655962024-04-30 3:59:5964 days ago1714449599IN
Benchmark: MARK Token
0 ETH0.000131525.4406258
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Benchmark

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2020-11-18
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.5.17;

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;

        return c;
    }

}

/******************************************/
/*       Benchmark starts here          */
/******************************************/

contract Benchmark {

    using SafeMath for uint256;

    address public rebaseOracle;       // Used for authentication
    address public owner;              // Used for authentication
    address public newOwner;

    uint8 public decimals;
    uint256 public totalSupply;
    string public name;
    string public symbol;

    uint256 private constant MAX_UINT256 = ~uint256(0);   // (2^256) - 1
    uint256 private constant MAXSUPPLY = ~uint128(0);  // (2^128) - 1

    uint256 private totalAtoms;
    uint256 private atomsPerMolecule;

    mapping (address => uint256) private atomBalances;
    mapping (address => mapping (address => uint256)) private allowedMolecules;

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
    event LogRebase(uint256 _totalSupply);
    event LogNewRebaseOracle(address _rebaseOracle);
    event OwnershipTransferred(address indexed _from, address indexed _to);

    constructor(address allocationsContract) public
    {
        decimals = 9;                               // decimals  
        totalSupply = 75000000*10**9;                // initialSupply
        name = "Benchmark";                         // Set the name for display purposes
        symbol = "MARK";                            // Set the symbol for display purposes

        owner = msg.sender;
        totalAtoms = MAX_UINT256 - (MAX_UINT256 % totalSupply);     // totalAtoms is a multiple of totalSupply so that atomsPerMolecule is an integer.
        atomBalances[allocationsContract] = totalAtoms;
        atomsPerMolecule = totalAtoms.div(totalSupply);

        emit Transfer(address(0), allocationsContract, totalSupply);
    }

    /**
     * @param newRebaseOracle The address of the new oracle for rebasement (used for authentication).
     */
    function setRebaseOracle(address newRebaseOracle) external {
        require(msg.sender == owner, "Can only be executed by owner.");
        rebaseOracle = newRebaseOracle;

        emit LogNewRebaseOracle(rebaseOracle);
    }

    /**
     * @dev Propose a new owner.
     * @param _newOwner The address of the new owner.
     */
    function transferOwnership(address _newOwner) public
    {
        require(msg.sender == owner, "Can only be executed by owner.");
        require(_newOwner != address(0), "0x00 address not allowed.");
        newOwner = _newOwner;
    }

    /**
     * @dev Accept new owner.
     */
    function acceptOwnership() public
    {
        require(msg.sender == newOwner, "Sender not authorized.");
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
        newOwner = address(0);
    }

    /**
     * @dev Notifies Benchmark contract about a new rebase cycle.
     * @param supplyDelta The number of new molecule tokens to add into or remove from circulation.
     * @param increaseSupply Whether to increase or decrease the total supply.
     * @return The total number of molecules after the supply adjustment.
     */
    function rebase(uint256 supplyDelta, bool increaseSupply) external returns (uint256) {
        require(msg.sender == rebaseOracle, "Can only be executed by rebaseOracle.");
        
        if (supplyDelta == 0) {
            emit LogRebase(totalSupply);
            return totalSupply;
        }

        if (increaseSupply == true) {
            totalSupply = totalSupply.add(supplyDelta);
        } else {
            totalSupply = totalSupply.sub(supplyDelta);
        }

        if (totalSupply > MAXSUPPLY) {
            totalSupply = MAXSUPPLY;
        }

        atomsPerMolecule = totalAtoms.div(totalSupply);

        emit LogRebase(totalSupply);
        return totalSupply;
    }

    /**
     * @param who The address to query.
     * @return The balance of the specified address.
     */
    function balanceOf(address who) public view returns (uint256) {
        return atomBalances[who].div(atomsPerMolecule);
    }

    /**
     * @dev Transfer tokens to a specified address.
     * @param to The address to transfer to.
     * @param value The amount to be transferred.
     * @return True on success, false otherwise.
     */
    function transfer(address to, uint256 value) public returns (bool) {
        require(to != address(0),"Invalid address.");
        require(to != address(this),"Molecules contract can't receive MARK.");

        uint256 atomValue = value.mul(atomsPerMolecule);

        atomBalances[msg.sender] = atomBalances[msg.sender].sub(atomValue);
        atomBalances[to] = atomBalances[to].add(atomValue);

        emit Transfer(msg.sender, to, value);
        return true;
    }

    /**
     * @dev Function to check the amount of tokens that an owner has allowed to a spender.
     * @param owner_ The address which owns the funds.
     * @param spender The address which will spend the funds.
     * @return The number of tokens still available for the spender.
     */
    function allowance(address owner_, address spender) public view returns (uint256) {
        return allowedMolecules[owner_][spender];
    }

    /**
     * @dev Transfer tokens from one address to another.
     * @param from The address you want to send tokens from.
     * @param to The address you want to transfer to.
     * @param value The amount of tokens to be transferred.
     */
    function transferFrom(address from, address to, uint256 value) public returns (bool) {
        require(to != address(0),"Invalid address.");
        require(to != address(this),"Molecules contract can't receive MARK.");

        allowedMolecules[from][msg.sender] = allowedMolecules[from][msg.sender].sub(value);

        uint256 atomValue = value.mul(atomsPerMolecule);
        atomBalances[from] = atomBalances[from].sub(atomValue);
        atomBalances[to] = atomBalances[to].add(atomValue);
        
        emit Transfer(from, to, value);
        return true;
    }

    /**
     * @dev Approve the passed address to spend the specified amount of tokens on behalf of
     * msg.sender. This method is included for ERC20 compatibility.
     * IncreaseAllowance and decreaseAllowance should be used instead.
     * @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) {
        allowedMolecules[msg.sender][spender] = value;

        emit Approval(msg.sender, spender, value);
        return true;
    }

    /**
     * @dev Increase the amount of tokens that an owner has allowed to a spender.
     * This method should be used instead of approve() to avoid the double approval vulnerability.
     * @param spender The address which will spend the funds.
     * @param addedValue The amount of tokens to increase the allowance by.
     */
    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        allowedMolecules[msg.sender][spender] = allowedMolecules[msg.sender][spender].add(addedValue);

        emit Approval(msg.sender, spender, allowedMolecules[msg.sender][spender]);
        return true;
    }

    /**
     * @dev Decrease the amount of tokens that an owner has allowed to a spender.
     * @param spender The address which will spend the funds.
     * @param subtractedValue The amount of tokens to decrease the allowance by.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        uint256 oldValue = allowedMolecules[msg.sender][spender];
        if (subtractedValue >= oldValue) {
            allowedMolecules[msg.sender][spender] = 0;
        } else {
            allowedMolecules[msg.sender][spender] = oldValue.sub(subtractedValue);
        }
        emit Approval(msg.sender, spender, allowedMolecules[msg.sender][spender]);
        return true;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"allocationsContract","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_rebaseOracle","type":"address"}],"name":"LogNewRebaseOracle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_totalSupply","type":"uint256"}],"name":"LogRebase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"supplyDelta","type":"uint256"},{"internalType":"bool","name":"increaseSupply","type":"bool"}],"name":"rebase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rebaseOracle","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newRebaseOracle","type":"address"}],"name":"setRebaseOracle","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040516200236c3803806200236c833981810160405260208110156200003757600080fd5b81019080805190602001909291905050506009600260146101000a81548160ff021916908360ff16021790555067010a741a462780006003819055506040518060400160405280600981526020017f42656e63686d61726b000000000000000000000000000000000000000000000081525060049080519060200190620000c0929190620002d3565b506040518060400160405280600481526020017f4d41524b00000000000000000000000000000000000000000000000000000000815250600590805190602001906200010e929190620002d3565b5033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600354600019816200015e57fe5b0660001903600681905550600654600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620001cd6003546006546200024260201b62001eaa1790919060201c565b6007819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040518082815260200191505060405180910390a35062000382565b6000808211620002ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b6000828481620002c657fe5b0490508091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200031657805160ff191683800117855562000347565b8280016001018555821562000347579182015b828111156200034657825182559160200191906001019062000329565b5b5090506200035691906200035a565b5090565b6200037f91905b808211156200037b57600081600090555060010162000361565b5090565b90565b611fda80620003926000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80638da5cb5b116100a2578063d4ee1d9011610071578063d4ee1d9014610571578063dd07a2a3146105bb578063dd62ed3e14610609578063f2fde38b14610681578063f905448d146106c557610116565b80638da5cb5b146103d857806395d89b4114610422578063a457c2d7146104a5578063a9059cbb1461050b57610116565b8063313ce567116100e9578063313ce567146102a857806339509351146102cc578063644c156b1461033257806370a082311461037657806379ba5097146103ce57610116565b806306fdde031461011b578063095ea7b31461019e57806318160ddd1461020457806323b872dd14610222575b600080fd5b61012361070f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610163578082015181840152602081019050610148565b50505050905090810190601f1680156101905780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ea600480360360408110156101b457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107ad565b604051808215151515815260200191505060405180910390f35b61020c61089f565b6040518082815260200191505060405180910390f35b61028e6004803603606081101561023857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108a5565b604051808215151515815260200191505060405180910390f35b6102b0610c91565b604051808260ff1660ff16815260200191505060405180910390f35b610318600480360360408110156102e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ca4565b604051808215151515815260200191505060405180910390f35b6103746004803603602081101561034857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ea0565b005b6103b86004803603602081101561038c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061102a565b6040518082815260200191505060405180910390f35b6103d6611087565b005b6103e061128f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61042a6112b5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561046a57808201518184015260208101905061044f565b50505050905090810190601f1680156104975780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104f1600480360360408110156104bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611353565b604051808215151515815260200191505060405180910390f35b6105576004803603604081101561052157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115e3565b604051808215151515815260200191505060405180910390f35b6105796118bf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105f3600480360360408110156105d157600080fd5b81019080803590602001909291908035151590602001909291905050506118e5565b6040518082815260200191505060405180910390f35b61066b6004803603604081101561061f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611abd565b6040518082815260200191505060405180910390f35b6106c36004803603602081101561069757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b44565b005b6106cd611cee565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107a55780601f1061077a576101008083540402835291602001916107a5565b820191906000526020600020905b81548152906001019060200180831161078857829003601f168201915b505050505081565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60035481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610949576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f496e76616c696420616464726573732e0000000000000000000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156109ce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611f5f6026913960400191505060405180910390fd5b610a5d82600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1390919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000610af460075484611d9c90919063ffffffff16565b9050610b4881600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1390919063ffffffff16565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610bdd81600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e2290919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b600260149054906101000a900460ff1681565b6000610d3582600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e2290919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f63576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f43616e206f6e6c79206265206578656375746564206279206f776e65722e000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f22b25066c51ea7127ee35cd450c8903c071037ac478564ba60a09d01958c92266000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000611080600754600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eaa90919063ffffffff16565b9050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461114a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561134b5780601f106113205761010080835404028352916020019161134b565b820191906000526020600020905b81548152906001019060200180831161132e57829003601f168201915b505050505081565b600080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808310611463576000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114f7565b6114768382611d1390919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611687576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f496e76616c696420616464726573732e0000000000000000000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561170c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611f5f6026913960400191505060405180910390fd5b600061172360075484611d9c90919063ffffffff16565b905061177781600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1390919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061180c81600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e2290919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461198c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611f3a6025913960400191505060405180910390fd5b60008314156119d8577f60633057fb2c2558942a126acc1dc7c639b6fdee660a0171f7500e2ac5918b2e6003546040518082815260200191505060405180910390a16003549050611ab7565b600115158215151415611a05576119fa83600354611e2290919063ffffffff16565b600381905550611a21565b611a1a83600354611d1390919063ffffffff16565b6003819055505b6000196fffffffffffffffffffffffffffffffff166003541115611a5b576000196fffffffffffffffffffffffffffffffff166003819055505b611a72600354600654611eaa90919063ffffffff16565b6007819055507f60633057fb2c2558942a126acc1dc7c639b6fdee660a0171f7500e2ac5918b2e6003546040518082815260200191505060405180910390a160035490505b92915050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f43616e206f6e6c79206265206578656375746564206279206f776e65722e000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611caa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600082821115611d8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b600080831415611daf5760009050611e1c565b6000828402905082848281611dc057fe5b0414611e17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611f856021913960400191505060405180910390fd5b809150505b92915050565b600080828401905083811015611ea0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000808211611f21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b6000828481611f2c57fe5b049050809150509291505056fe43616e206f6e6c79206265206578656375746564206279207265626173654f7261636c652e4d6f6c6563756c657320636f6e74726163742063616e27742072656365697665204d41524b2e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a723158209e811da449f0499a913dd7ce2dd7dc6a2200fa224c4f042e85913a96441e7de864736f6c6343000511003200000000000000000000000048b4a5b68394c9970ac52182acbb1036bc7b3cc3

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101165760003560e01c80638da5cb5b116100a2578063d4ee1d9011610071578063d4ee1d9014610571578063dd07a2a3146105bb578063dd62ed3e14610609578063f2fde38b14610681578063f905448d146106c557610116565b80638da5cb5b146103d857806395d89b4114610422578063a457c2d7146104a5578063a9059cbb1461050b57610116565b8063313ce567116100e9578063313ce567146102a857806339509351146102cc578063644c156b1461033257806370a082311461037657806379ba5097146103ce57610116565b806306fdde031461011b578063095ea7b31461019e57806318160ddd1461020457806323b872dd14610222575b600080fd5b61012361070f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610163578082015181840152602081019050610148565b50505050905090810190601f1680156101905780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101ea600480360360408110156101b457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107ad565b604051808215151515815260200191505060405180910390f35b61020c61089f565b6040518082815260200191505060405180910390f35b61028e6004803603606081101561023857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108a5565b604051808215151515815260200191505060405180910390f35b6102b0610c91565b604051808260ff1660ff16815260200191505060405180910390f35b610318600480360360408110156102e257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ca4565b604051808215151515815260200191505060405180910390f35b6103746004803603602081101561034857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ea0565b005b6103b86004803603602081101561038c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061102a565b6040518082815260200191505060405180910390f35b6103d6611087565b005b6103e061128f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61042a6112b5565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561046a57808201518184015260208101905061044f565b50505050905090810190601f1680156104975780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104f1600480360360408110156104bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611353565b604051808215151515815260200191505060405180910390f35b6105576004803603604081101561052157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115e3565b604051808215151515815260200191505060405180910390f35b6105796118bf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105f3600480360360408110156105d157600080fd5b81019080803590602001909291908035151590602001909291905050506118e5565b6040518082815260200191505060405180910390f35b61066b6004803603604081101561061f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611abd565b6040518082815260200191505060405180910390f35b6106c36004803603602081101561069757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b44565b005b6106cd611cee565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107a55780601f1061077a576101008083540402835291602001916107a5565b820191906000526020600020905b81548152906001019060200180831161078857829003601f168201915b505050505081565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60035481565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610949576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f496e76616c696420616464726573732e0000000000000000000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156109ce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611f5f6026913960400191505060405180910390fd5b610a5d82600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1390919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000610af460075484611d9c90919063ffffffff16565b9050610b4881600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1390919063ffffffff16565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610bdd81600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e2290919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150509392505050565b600260149054906101000a900460ff1681565b6000610d3582600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e2290919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f63576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f43616e206f6e6c79206265206578656375746564206279206f776e65722e000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f22b25066c51ea7127ee35cd450c8903c071037ac478564ba60a09d01958c92266000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000611080600754600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611eaa90919063ffffffff16565b9050919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461114a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206e6f7420617574686f72697a65642e0000000000000000000081525060200191505060405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561134b5780601f106113205761010080835404028352916020019161134b565b820191906000526020600020905b81548152906001019060200180831161132e57829003601f168201915b505050505081565b600080600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808310611463576000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114f7565b6114768382611d1390919063ffffffff16565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611687576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f496e76616c696420616464726573732e0000000000000000000000000000000081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561170c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180611f5f6026913960400191505060405180910390fd5b600061172360075484611d9c90919063ffffffff16565b905061177781600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d1390919063ffffffff16565b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061180c81600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e2290919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461198c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611f3a6025913960400191505060405180910390fd5b60008314156119d8577f60633057fb2c2558942a126acc1dc7c639b6fdee660a0171f7500e2ac5918b2e6003546040518082815260200191505060405180910390a16003549050611ab7565b600115158215151415611a05576119fa83600354611e2290919063ffffffff16565b600381905550611a21565b611a1a83600354611d1390919063ffffffff16565b6003819055505b6000196fffffffffffffffffffffffffffffffff166003541115611a5b576000196fffffffffffffffffffffffffffffffff166003819055505b611a72600354600654611eaa90919063ffffffff16565b6007819055507f60633057fb2c2558942a126acc1dc7c639b6fdee660a0171f7500e2ac5918b2e6003546040518082815260200191505060405180910390a160035490505b92915050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f43616e206f6e6c79206265206578656375746564206279206f776e65722e000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611caa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f307830302061646472657373206e6f7420616c6c6f7765642e0000000000000081525060200191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600082821115611d8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b600080831415611daf5760009050611e1c565b6000828402905082848281611dc057fe5b0414611e17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611f856021913960400191505060405180910390fd5b809150505b92915050565b600080828401905083811015611ea0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000808211611f21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b6000828481611f2c57fe5b049050809150509291505056fe43616e206f6e6c79206265206578656375746564206279207265626173654f7261636c652e4d6f6c6563756c657320636f6e74726163742063616e27742072656365697665204d41524b2e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a723158209e811da449f0499a913dd7ce2dd7dc6a2200fa224c4f042e85913a96441e7de864736f6c63430005110032

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

00000000000000000000000048b4a5b68394c9970ac52182acbb1036bc7b3cc3

-----Decoded View---------------
Arg [0] : allocationsContract (address): 0x48B4a5B68394c9970ac52182ACbb1036bC7b3Cc3

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000048b4a5b68394c9970ac52182acbb1036bc7b3cc3


Deployed Bytecode Sourcemap

1577:8094:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1577:8094:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1867:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1867:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8063:211;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8063:211:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1834:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7103:582;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7103:582:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1806:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8623:306;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8623:306:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3505:231;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3505:231:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;5559:127;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5559:127:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4150:227;;;:::i;:::-;;1707:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1892;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1892:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9183:485;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9183:485:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5912:481;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5912:481:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1774:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4726:712;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4726:712:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6700:141;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6700:141:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3851:242;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3851:242:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;1640:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1867:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8063:211::-;8128:4;8185:5;8145:16;:28;8162:10;8145:28;;;;;;;;;;;;;;;:37;8174:7;8145:37;;;;;;;;;;;;;;;:45;;;;8229:7;8208:36;;8217:10;8208:36;;;8238:5;8208:36;;;;;;;;;;;;;;;;;;8262:4;8255:11;;8063:211;;;;:::o;1834:26::-;;;;:::o;7103:582::-;7182:4;7221:1;7207:16;;:2;:16;;;;7199:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7276:4;7262:19;;:2;:19;;;;7254:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7373:45;7412:5;7373:16;:22;7390:4;7373:22;;;;;;;;;;;;;;;:34;7396:10;7373:34;;;;;;;;;;;;;;;;:38;;:45;;;;:::i;:::-;7336:16;:22;7353:4;7336:22;;;;;;;;;;;;;;;:34;7359:10;7336:34;;;;;;;;;;;;;;;:82;;;;7431:17;7451:27;7461:16;;7451:5;:9;;:27;;;;:::i;:::-;7431:47;;7510:33;7533:9;7510:12;:18;7523:4;7510:18;;;;;;;;;;;;;;;;:22;;:33;;;;:::i;:::-;7489:12;:18;7502:4;7489:18;;;;;;;;;;;;;;;:54;;;;7573:31;7594:9;7573:12;:16;7586:2;7573:16;;;;;;;;;;;;;;;;:20;;:31;;;;:::i;:::-;7554:12;:16;7567:2;7554:16;;;;;;;;;;;;;;;:50;;;;7645:2;7630:25;;7639:4;7630:25;;;7649:5;7630:25;;;;;;;;;;;;;;;;;;7673:4;7666:11;;;7103:582;;;;;:::o;1806:21::-;;;;;;;;;;;;;:::o;8623:306::-;8703:4;8760:53;8802:10;8760:16;:28;8777:10;8760:28;;;;;;;;;;;;;;;:37;8789:7;8760:37;;;;;;;;;;;;;;;;:41;;:53;;;;:::i;:::-;8720:16;:28;8737:10;8720:28;;;;;;;;;;;;;;;:37;8749:7;8720:37;;;;;;;;;;;;;;;:93;;;;8852:7;8831:68;;8840:10;8831:68;;;8861:16;:28;8878:10;8861:28;;;;;;;;;;;;;;;:37;8890:7;8861:37;;;;;;;;;;;;;;;;8831:68;;;;;;;;;;;;;;;;;;8917:4;8910:11;;8623:306;;;;:::o;3505:231::-;3597:5;;;;;;;;;;;3583:19;;:10;:19;;;3575:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3663:15;3648:12;;:30;;;;;;;;;;;;;;;;;;3696:32;3715:12;;;;;;;;;;;3696:32;;;;;;;;;;;;;;;;;;;;;;3505:231;:::o;5559:127::-;5612:7;5639:39;5661:16;;5639:12;:17;5652:3;5639:17;;;;;;;;;;;;;;;;:21;;:39;;;;:::i;:::-;5632:46;;5559:127;;;:::o;4150:227::-;4222:8;;;;;;;;;;;4208:22;;:10;:22;;;4200:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4301:8;;;;;;;;;;;4273:37;;4294:5;;;;;;;;;;;4273:37;;;;;;;;;;;;4329:8;;;;;;;;;;;4321:5;;:16;;;;;;;;;;;;;;;;;;4367:1;4348:8;;:21;;;;;;;;;;;;;;;;;;4150:227::o;1707:20::-;;;;;;;;;;;;;:::o;1892:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9183:485::-;9268:4;9285:16;9304;:28;9321:10;9304:28;;;;;;;;;;;;;;;:37;9333:7;9304:37;;;;;;;;;;;;;;;;9285:56;;9375:8;9356:15;:27;9352:203;;9440:1;9400:16;:28;9417:10;9400:28;;;;;;;;;;;;;;;:37;9429:7;9400:37;;;;;;;;;;;;;;;:41;;;;9352:203;;;9514:29;9527:15;9514:8;:12;;:29;;;;:::i;:::-;9474:16;:28;9491:10;9474:28;;;;;;;;;;;;;;;:37;9503:7;9474:37;;;;;;;;;;;;;;;:69;;;;9352:203;9591:7;9570:68;;9579:10;9570:68;;;9600:16;:28;9617:10;9600:28;;;;;;;;;;;;;;;:37;9629:7;9600:37;;;;;;;;;;;;;;;;9570:68;;;;;;;;;;;;;;;;;;9656:4;9649:11;;;9183:485;;;;:::o;5912:481::-;5973:4;6012:1;5998:16;;:2;:16;;;;5990:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6067:4;6053:19;;:2;:19;;;;6045:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6127:17;6147:27;6157:16;;6147:5;:9;;:27;;;;:::i;:::-;6127:47;;6214:39;6243:9;6214:12;:24;6227:10;6214:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;6187:12;:24;6200:10;6187:24;;;;;;;;;;;;;;;:66;;;;6283:31;6304:9;6283:12;:16;6296:2;6283:16;;;;;;;;;;;;;;;;:20;;:31;;;;:::i;:::-;6264:12;:16;6277:2;6264:16;;;;;;;;;;;;;;;:50;;;;6353:2;6332:31;;6341:10;6332:31;;;6357:5;6332:31;;;;;;;;;;;;;;;;;;6381:4;6374:11;;;5912:481;;;;:::o;1774:23::-;;;;;;;;;;;;;:::o;4726:712::-;4802:7;4844:12;;;;;;;;;;;4830:26;;:10;:26;;;4822:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4938:1;4923:11;:16;4919:109;;;4961:22;4971:11;;4961:22;;;;;;;;;;;;;;;;;;5005:11;;4998:18;;;;4919:109;5062:4;5044:22;;:14;:22;;;5040:172;;;5097:28;5113:11;5097;;:15;;:28;;;;:::i;:::-;5083:11;:42;;;;5040:172;;;5172:28;5188:11;5172;;:15;;:28;;;;:::i;:::-;5158:11;:42;;;;5040:172;2041:1;2032:11;5242:9;;5228:11;;:23;5224:79;;;2041:1;2032:11;5282:9;;5268:11;:23;;;;5224:79;5334:27;5349:11;;5334:10;;:14;;:27;;;;:::i;:::-;5315:16;:46;;;;5379:22;5389:11;;5379:22;;;;;;;;;;;;;;;;;;5419:11;;5412:18;;4726:712;;;;;:::o;6700:141::-;6773:7;6800:16;:24;6817:6;6800:24;;;;;;;;;;;;;;;:33;6825:7;6800:33;;;;;;;;;;;;;;;;6793:40;;6700:141;;;;:::o;3851:242::-;3942:5;;;;;;;;;;;3928:19;;:10;:19;;;3920:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4022:1;4001:23;;:9;:23;;;;3993:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4076:9;4065:8;;:20;;;;;;;;;;;;;;;;;;3851:242;:::o;1640:27::-;;;;;;;;;;;;;:::o;527:184::-;585:7;618:1;613;:6;;605:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;665:9;681:1;677;:5;665:17;;702:1;695:8;;;527:184;;;;:::o;834:250::-;892:7;921:1;916;:6;912:47;;;946:1;939:8;;;;912:47;971:9;987:1;983;:5;971:17;;1016:1;1011;1007;:5;;;;;;:10;999:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1075:1;1068:8;;;834:250;;;;;:::o;196:181::-;254:7;274:9;290:1;286;:5;274:17;;315:1;310;:6;;302:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;368:1;361:8;;;196:181;;;;:::o;1251:179::-;1309:7;1341:1;1337;:5;1329:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1384:9;1400:1;1396;:5;;;;;;1384:17;;1421:1;1414:8;;;1251:179;;;;:::o

Swarm Source

bzzr://9e811da449f0499a913dd7ce2dd7dc6a2200fa224c4f042e85913a96441e7de8

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

The Benchmark Protocol is an uncorrelated, liquid, VIX-denominated collateral utility. The protocol is a rules-based, supply-elastic collateral utility that adjusts supply based on volatility indexes (VIX) and deviations from the target metric - equal to 1 Special Drawing Rights (SDR) unit.

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.