Contract 0x93A62dA5a14C80f265DAbC077fCEE437B1a0Efde 4

 

Contract Overview

yearn: Treasury Vault
Balance:
0 Ether

EtherValue:
$0.00

Token:
Txn Hash
Method
Block
From
To
Value
0x88143b55a98b9389d0eb184c52d4417e6e0b7f6fe063c31d997360cae6c50256To Voters118078822021-02-07 7:12:34550 days 10 hrs ago0x2d407ddb06311396fe14d4b49da5f0471447d45c IN  yearn: Treasury Vault0 Ether0.‍01084807137
0x71511309e2983cfd816203d51421d665b97bf5cb568e7b94a6e79f1a3ce12852To Voters117621822021-01-31 6:40:44557 days 11 hrs agoENS Name chest.codemonkey.eth IN  yearn: Treasury Vault0 Ether0.‍0055428170
0x5c499b6b72b2226205bbfead66e80bb8649b0f2e653dae4c65afc638af9cf878To Voters116891002021-01-20 0:45:16568 days 17 hrs agoENS Name chest.codemonkey.eth IN  yearn: Treasury Vault0 Ether0.‍0055630265
0xd0d0755c343d02915b305b9e15e32df2ce10e83483629182b84aa0550f99d570To Voters116772562021-01-18 5:11:18570 days 12 hrs agoENS Name chest.codemonkey.eth IN  yearn: Treasury Vault0 Ether0.‍0042792550
0x6ec292c15c5db4603804b80353b86e86b5e06aa57c02feea59e822a67fdd29a3To Voters116341702021-01-11 14:29:52577 days 3 hrs ago0x2d407ddb06311396fe14d4b49da5f0471447d45c IN  yearn: Treasury Vault0 Ether0.‍03791415443
0x20f99cffe52501bcb433caec08a5cd9918b18f4db6522e34a2dcb276f538c051To Voters116153472021-01-08 17:06:56580 days 52 mins agoENS Name chest.codemonkey.eth IN  yearn: Treasury Vault0 Ether0.‍0077026590
0x9a4cbf92a36611ba1ed7e100f089d36a29422f9fb6fc779603e1e9c4ce83b3ccTo Voters115956552021-01-05 16:42:04583 days 1 hr ago0x2d407ddb06311396fe14d4b49da5f0471447d45c IN  yearn: Treasury Vault0 Ether0.‍01631169206
0xe22653ca5aa92861740e93e197432e2b66f092837de35ec4d83afeac5d3f7770To Voters115465132020-12-29 3:33:07590 days 14 hrs ago0x2d407ddb06311396fe14d4b49da5f0471447d45c IN  yearn: Treasury Vault0 Ether0.‍00902686114
0xccef3d05a5ab02f2f525b28f7a1e8bfa5f683573610eae53fbf3f7ca46032e6dTo Voters114824042020-12-19 7:55:41600 days 10 hrs ago0x2d407ddb06311396fe14d4b49da5f0471447d45c IN  yearn: Treasury Vault0 Ether0.‍0029297737
0x2f5bf62fa56fa47ecf49624f1a9766301ac57810bd125db2f6af40c30d997035To Voters113852932020-12-04 9:28:25615 days 8 hrs agoENS Name chest.codemonkey.eth IN  yearn: Treasury Vault0 Ether0.‍0042792550
0x6003539a60d912443251f27b4a833fc9cb7597ed2c2ec10c9bd7702698360a2dTo Voters113774282020-12-03 4:22:21616 days 13 hrs agoENS Name chest.codemonkey.eth IN  yearn: Treasury Vault0 Ether0.‍002771435
0xf58c03c8cbb45d05d65f6493f9f11cecafd9eff1bcecd6397726235b934848c8To Voters113313062020-11-26 2:25:58623 days 15 hrs agoENS Name chest.codemonkey.eth IN  yearn: Treasury Vault0 Ether0.‍0043550655
0xbb81964a2527bccec0a21eb3d90123d0ceb187c1c6fed6128d75f21475b9be82To Voters112853932020-11-19 1:25:29630 days 16 hrs agoENS Name chest.codemonkey.eth IN  yearn: Treasury Vault0 Ether0.‍0042792550
0xe7a6f50f89973dbcaea8273b1471677817e1b8e12781e054b0d3350421e61b9cTo Voters112699762020-11-16 16:31:34633 days 1 hr ago0x744b130afb4e0dfb99868b7a64a1f934b69004c4 IN  yearn: Treasury Vault0 Ether0.‍0063346480
0x651672cde7ba6920672a8d95650810cd1eda6c82f6aa033cd02c534948b56a5dTo Voters112116012020-11-07 17:16:14642 days 42 mins agoENS Name pablopunkasso.eth IN  yearn: Treasury Vault0 Ether0.‍0026531331
0x240a41bc54f7d405da62e5e7a20a57e54360340352afd2c76f671c38a4abadb1To Voters111724292020-11-01 17:04:28648 days 54 mins agoENS Name pablopunkasso.eth IN  yearn: Treasury Vault0 Ether0.‍0019684523
0xe96ab29acbbabc534219b3c88772ae55a408a14fd1cc442214953099f0bba756To Voters111605742020-10-30 21:30:22649 days 20 hrs agoENS Name pablopunkasso.eth IN  yearn: Treasury Vault0 Ether0.‍0012837715.‍00000112
0xf2cefa5b96126f99961125b44d70d39d4322a63409aca49c6822887a19425ef9To Voters111410092020-10-27 21:15:26652 days 20 hrs agoENS Name pablopunkasso.eth IN  yearn: Treasury Vault0 Ether0.‍0012923315.‍1
0x83fd240e634f337388fa3a28f4adbc179ebf7af80c18d902ba45a6b76f731a42To Voters111302242020-10-26 5:45:32654 days 12 hrs agoENS Name chest.codemonkey.eth IN  yearn: Treasury Vault0 Ether0.‍006247773
0x917a5af8ba8c2180b8d451698c172817d8c01bd9a38eb6f3e95d2b5db759acc0To Voters111271872020-10-25 18:27:54654 days 23 hrs agoENS Name pablopunkasso.eth IN  yearn: Treasury Vault0 Ether0.‍0012923315.‍1
0x709e5d56b0b6881923a6591ba98ffe440a02998b37a96cbc7852c16eb93177faTo Voters111149212020-10-23 21:14:04656 days 20 hrs agoENS Name pablopunkasso.eth IN  yearn: Treasury Vault0 Ether0.‍0019770123.‍1
0xca1b4d0a01db866872fa3843d3bc635324ac9c72bf1f2cf5d88c58317dfc0405To Voters111110502020-10-23 6:53:41657 days 11 hrs agoENS Name chest.codemonkey.eth IN  yearn: Treasury Vault0 Ether0.‍0038513245
0x9fd09fc466abdcc98a2d906d1d0d1be2b78d71d294ce5b9d8d02edda98d75358To Voters110958362020-10-20 22:50:02659 days 19 hrs agoENS Name pablopunkasso.eth IN  yearn: Treasury Vault0 Ether0.‍0021396225
0xb117e25ba61a17912d8dfeb6a68c27ac1791f043ef1f6500b94a27f3e4a4be86To Voters110924532020-10-20 10:26:45660 days 7 hrs agoENS Name chest.codemonkey.eth IN  yearn: Treasury Vault0 Ether0.‍003423440
0xc58e55863d21e34e0462d860a5e7690b1a0513d2c503f23cb5d24c9bfabfc638To Voters110901692020-10-20 2:05:05660 days 15 hrs agoENS Name chest.codemonkey.eth IN  yearn: Treasury Vault0 Ether0.‍0025675530
[ Download CSV Export 
View more zero value Internal Transactions in Advanced View mode
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TreasuryVault

Compiler Version
v0.5.17+commit.d19bba13

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-08-23
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.5.16;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    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;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;

        return c;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != 0x0 && codehash != accountHash);
    }
    function toPayable(address account) internal pure returns (address payable) {
        return address(uint160(account));
    }
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-call-value
        (bool success, ) = recipient.call.value(amount)("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

library SafeERC20 {
    using SafeMath for uint256;
    using Address for address;

    function safeTransfer(IERC20 token, address to, uint256 value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
    }

    function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
        callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
    }

    function safeApprove(IERC20 token, address spender, uint256 value) internal {
        require((value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
    }
    function callOptionalReturn(IERC20 token, bytes memory data) private {
        require(address(token).isContract(), "SafeERC20: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");

        if (returndata.length > 0) { // Return data is optional
            // solhint-disable-next-line max-line-length
            require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
        }
    }
}

interface OneSplitAudit {
    function swap(
        address fromToken,
        address destToken,
        uint256 amount,
        uint256 minReturn,
        uint256[] calldata distribution,
        uint256 flags
    )
        external
        payable
        returns(uint256 returnAmount);
    
    function getExpectedReturn(
        address fromToken,
        address destToken,
        uint256 amount,
        uint256 parts,
        uint256 flags // See constants in IOneSplit.sol
    )
        external
        view
        returns(
            uint256 returnAmount,
            uint256[] memory distribution
        );
}

interface Governance {
    function notifyRewardAmount(uint) external;
}

contract TreasuryVault {
    using SafeERC20 for IERC20;
    
    address public governance;
    address public onesplit;
    address public rewards = address(0xdF5e0e81Dff6FAF3A7e52BA697820c5e32D806A8);
    address public ygov = address(0xBa37B002AbaFDd8E89a1995dA52740bbC013D992);
    
    mapping(address => bool) authorized;
    
    constructor() public {
        governance = msg.sender;
        onesplit = address(0x50FDA034C0Ce7a8f7EFDAebDA7Aa7cA21CC1267e);
    }
    
    function setOnesplit(address _onesplit) external {
        require(msg.sender == governance, "!governance");
        onesplit = _onesplit;
    }
    
    function setRewards(address _rewards) external {
        require(msg.sender == governance, "!governance");
        rewards = _rewards;
    }
    
    function setYGov(address _ygov) external {
        require(msg.sender == governance, "!governance");
        ygov = _ygov;
    }
    
    function setAuthorized(address _authorized) external {
        require(msg.sender == governance, "!governance");
        authorized[_authorized] = true;
    }
    
    function revokeAuthorized(address _authorized) external {
        require(msg.sender == governance, "!governance");
        authorized[_authorized] = false;
    }
    
    function setGovernance(address _governance) external {
        require(msg.sender == governance, "!governance");
        governance = _governance;
    }
    
    function toGovernance(address _token, uint _amount) external {
        require(msg.sender == governance, "!governance");
        IERC20(_token).safeTransfer(governance, _amount);
    }
    
    function toVoters() external {
        uint _balance = IERC20(rewards).balanceOf(address(this));
        IERC20(rewards).safeApprove(ygov, 0);
        IERC20(rewards).safeApprove(ygov, _balance);
        Governance(ygov).notifyRewardAmount(_balance);
    }
    
    function getExpectedReturn(address _from, address _to, uint parts) external view returns (uint expected) {
        uint _balance = IERC20(_from).balanceOf(address(this));
        (expected,) = OneSplitAudit(onesplit).getExpectedReturn(_from, _to, _balance, parts, 0);
    }
    
    // Only allows to withdraw non-core strategy tokens ~ this is over and above normal yield
    function convert(address _from, uint parts) external {
        require(authorized[msg.sender]==true,"!authorized");
        uint _amount = IERC20(_from).balanceOf(address(this));
        uint[] memory _distribution;
        uint _expected;
        IERC20(_from).safeApprove(onesplit, 0);
        IERC20(_from).safeApprove(onesplit, _amount);
        (_expected, _distribution) = OneSplitAudit(onesplit).getExpectedReturn(_from, rewards, _amount, parts, 0);
        OneSplitAudit(onesplit).swap(_from, rewards, _amount, _expected, _distribution, 0);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"parts","type":"uint256"}],"name":"convert","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"parts","type":"uint256"}],"name":"getExpectedReturn","outputs":[{"internalType":"uint256","name":"expected","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"onesplit","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_authorized","type":"address"}],"name":"revokeAuthorized","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rewards","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_authorized","type":"address"}],"name":"setAuthorized","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_governance","type":"address"}],"name":"setGovernance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_onesplit","type":"address"}],"name":"setOnesplit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_rewards","type":"address"}],"name":"setRewards","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_ygov","type":"address"}],"name":"setYGov","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"toGovernance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"toVoters","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ygov","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"}]

608060405273df5e0e81dff6faf3a7e52ba697820c5e32d806a8600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ba37b002abafdd8e89a1995da52740bbc013d992600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156100ba57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507350fda034c0ce7a8f7efdaebda7aa7ca21cc1267e600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611d818061015f6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806378e32e261161008c578063ab033ea911610066578063ab033ea9146103c1578063bbc4c4f314610405578063ec38a86214610449578063f712adbb1461048d576100ea565b806378e32e26146102df57806397811ce01461032d5780639ec5a89414610377576100ea565b80635aa6e675116100c85780635aa6e675146101815780635fa6e5ef146101cb57806367c6e39c1461020f5780636dcd64e51461025d576100ea565b806314fc2812146100ef5780633f48be2d146101335780633fa7444b14610177575b600080fd5b6101316004803603602081101561010557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104d7565b005b6101756004803603602081101561014957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105f4565b005b61017f610711565b005b61018961095e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61020d600480360360208110156101e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610983565b005b61025b6004803603604081101561022557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a89565b005b6102c96004803603606081101561027357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061103b565b6040518082815260200191505060405180910390f35b61032b600480360360408110156102f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112d0565b005b6103356113e2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61037f611408565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610403600480360360208110156103d757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061142e565b005b6104476004803603602081101561041b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611533565b005b61048b6004803603602081101561045f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611639565b005b61049561173f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610599576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156107b257600080fd5b505afa1580156107c6573d6000803e3d6000fd5b505050506040513d60208110156107dc57600080fd5b8101908080519060200190929190505050905061085f600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117659092919063ffffffff16565b6108ce600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166117659092919063ffffffff16565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633c6b16ab826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561094357600080fd5b505af1158015610957573d6000803e3d6000fd5b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a45576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60011515600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610b4f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21617574686f72697a656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610bce57600080fd5b505afa158015610be2573d6000803e3d6000fd5b505050506040513d6020811015610bf857600080fd5b8101908080519060200190929190505050905060606000610c5d600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008773ffffffffffffffffffffffffffffffffffffffff166117659092919063ffffffff16565b610caa600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16848773ffffffffffffffffffffffffffffffffffffffff166117659092919063ffffffff16565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663085e2c5b86600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16868860006040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020018281526020019550505050505060006040518083038186803b158015610db857600080fd5b505afa158015610dcc573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052506040811015610df657600080fd5b810190808051906020019092919080516040519392919084640100000000821115610e2057600080fd5b83820191506020820185811115610e3657600080fd5b8251866020820283011164010000000082111715610e5357600080fd5b8083526020830192505050908051906020019060200280838360005b83811015610e8a578082015181840152602081019050610e6f565b505050509050016040525050508093508192505050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e2a7515e86600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1686858760006040518763ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185815260200184815260200180602001838152602001828103825284818151815260200191508051906020019060200280838360005b83811015610fce578082015181840152602081019050610fb3565b50505050905001975050505050505050602060405180830381600087803b158015610ff857600080fd5b505af115801561100c573d6000803e3d6000fd5b505050506040513d602081101561102257600080fd5b8101908080519060200190929190505050505050505050565b6000808473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156110bb57600080fd5b505afa1580156110cf573d6000803e3d6000fd5b505050506040513d60208110156110e557600080fd5b81019080805190602001909291905050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663085e2c5b8686848760006040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020018281526020019550505050505060006040518083038186803b1580156111e457600080fd5b505afa1580156111f8573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250604081101561122257600080fd5b81019080805190602001909291908051604051939291908464010000000082111561124c57600080fd5b8382019150602082018581111561126257600080fd5b825186602082028301116401000000008211171561127f57600080fd5b8083526020830192505050908051906020019060200280838360005b838110156112b657808201518184015260208101905061129b565b505050509050016040525050505080925050509392505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b6113de6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff166119859092919063ffffffff16565b5050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116fb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f21676f7665726e616e636500000000000000000000000000000000000000000081525060200191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081148061185f575060008373ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30856040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b15801561182257600080fd5b505afa158015611836573d6000803e3d6000fd5b505050506040513d602081101561184c57600080fd5b8101908080519060200190929190505050145b6118b4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180611d176036913960400191505060405180910390fd5b611980838473ffffffffffffffffffffffffffffffffffffffff1663095ea7b3905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611a56565b505050565b611a51838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb905060e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611a56565b505050565b611a758273ffffffffffffffffffffffffffffffffffffffff16611ca1565b611ae7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e74726163740081525060200191505060405180910390fd5b600060608373ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b60208310611b365780518252602082019150602081019050602083039250611b13565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611b98576040519150601f19603f3d011682016040523d82523d6000602084013e611b9d565b606091505b509150915081611c15576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656481525060200191505060405180910390fd5b600081511115611c9b57808060200190516020811015611c3457600080fd5b8101908080519060200190929190505050611c9a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180611ced602a913960400191505060405180910390fd5b5b50505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f91506000801b8214158015611ce35750808214155b9250505091905056fe5361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365a265627a7a723158207a58a9535c0cd90a5b8c305e8c54161c3229b8802abbbf6992b6fb8017ca683064736f6c63430005110032

Deployed ByteCode Sourcemap

5352:2891:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5352:2891:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6305:161;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6305:161:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;6478:165;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6478:165:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;7021:261;;;:::i;:::-;;5421:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5848:147;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5848:147:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;7677:563;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7677:563:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7294:276;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7294:276:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6822:187;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6822:187:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5566:73;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5483:76;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6655:155;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6655:155:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;6162:131;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6162:131:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;6007:143;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6007:143:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;5453:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6305:161;6391:10;;;;;;;;;;;6377:24;;:10;:24;;;6369:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6454:4;6428:10;:23;6439:11;6428:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;6305:161;:::o;6478:165::-;6567:10;;;;;;;;;;;6553:24;;:10;:24;;;6545:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6630:5;6604:10;:23;6615:11;6604:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;6478:165;:::o;7021:261::-;7061:13;7084:7;;;;;;;;;;;7077:25;;;7111:4;7077:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7077:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7077:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7077:40:0;;;;;;;;;;;;;;;;7061:56;;7128:36;7156:4;;;;;;;;;;;7162:1;7135:7;;;;;;;;;;;7128:27;;;;:36;;;;;:::i;:::-;7175:43;7203:4;;;;;;;;;;;7209:8;7182:7;;;;;;;;;;;7175:27;;;;:43;;;;;:::i;:::-;7240:4;;;;;;;;;;;7229:35;;;7265:8;7229:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7229:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7229:45:0;;;;7021:261;:::o;5421:25::-;;;;;;;;;;;;;:::o;5848:147::-;5930:10;;;;;;;;;;;5916:24;;:10;:24;;;5908:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5978:9;5967:8;;:20;;;;;;;;;;;;;;;;;;5848:147;:::o;7677:563::-;7773:4;7749:28;;:10;:22;7760:10;7749:22;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;7741:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7803:12;7825:5;7818:23;;;7850:4;7818:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7818:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7818:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7818:38:0;;;;;;;;;;;;;;;;7803:53;;7867:27;7905:14;7930:38;7956:8;;;;;;;;;;;7966:1;7937:5;7930:25;;;;:38;;;;;:::i;:::-;7979:44;8005:8;;;;;;;;;;;8015:7;7986:5;7979:25;;;;:44;;;;;:::i;:::-;8077:8;;;;;;;;;;;8063:41;;;8105:5;8112:7;;;;;;;;;;;8121;8130:5;8137:1;8063:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8063:76:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8063:76:0;;;;;;39:16:-1;36:1;17:17;2:54;8063:76:0;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8063:76:0;;;;;;;;;;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;331:9;325:2;311:12;307:21;289:16;285:44;282:59;261:11;247:12;244:29;233:116;230:2;;;362:1;359;352:12;230:2;385:12;380:3;373:25;421:4;416:3;412:14;405:21;;0:433;;8063:76:0;;;;;;;;;;;;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;8063:76:0;;;;;;;;;;;8034:105;;;;;;;;8164:8;;;;;;;;;;;8150:28;;;8179:5;8186:7;;;;;;;;;;;8195;8204:9;8215:13;8230:1;8150:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;8150:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8150:82:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8150:82:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8150:82:0;;;;;;;;;;;;;;;;;7677:563;;;;;:::o;7294:276::-;7384:13;7410;7433:5;7426:23;;;7458:4;7426:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7426:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7426:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7426:38:0;;;;;;;;;;;;;;;;7410:54;;7503:8;;;;;;;;;;;7489:41;;;7531:5;7538:3;7543:8;7553:5;7560:1;7489:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7489:73:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7489:73:0;;;;;;39:16:-1;36:1;17:17;2:54;7489:73:0;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7489:73:0;;;;;;;;;;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;71:11;66:3;62:21;55:28;;123:4;118:3;114:14;159:9;141:16;138:31;135:2;;;182:1;179;172:12;135:2;219:3;213:10;331:9;325:2;311:12;307:21;289:16;285:44;282:59;261:11;247:12;244:29;233:116;230:2;;;362:1;359;352:12;230:2;385:12;380:3;373:25;421:4;416:3;412:14;405:21;;0:433;;7489:73:0;;;;;;;;;;;;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;7489:73:0;;;;;;;;;;;7475:87;;;;;7294:276;;;;;;:::o;6822:187::-;6916:10;;;;;;;;;;;6902:24;;:10;:24;;;6894:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6953;6981:10;;;;;;;;;;;6993:7;6960:6;6953:27;;;;:48;;;;;:::i;:::-;6822:187;;:::o;5566:73::-;;;;;;;;;;;;;:::o;5483:76::-;;;;;;;;;;;;;:::o;6655:155::-;6741:10;;;;;;;;;;;6727:24;;:10;:24;;;6719:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6791:11;6778:10;;:24;;;;;;;;;;;;;;;;;;6655:155;:::o;6162:131::-;6236:10;;;;;;;;;;;6222:24;;:10;:24;;;6214:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6280:5;6273:4;;:12;;;;;;;;;;;;;;;;;;6162:131;:::o;6007:143::-;6087:10;;;;;;;;;;;6073:24;;:10;:24;;;6065:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6134:8;6124:7;;:18;;;;;;;;;;;;;;;;;;6007:143;:::o;5453:23::-;;;;;;;;;;;;;:::o;3660:347::-;3765:1;3756:5;:10;3755:62;;;;3815:1;3772:5;:15;;;3796:4;3803:7;3772:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3772:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3772:39:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3772:39:0;;;;;;;;;;;;;;;;:44;3755:62;3747:152;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3910:89;3929:5;3959;:13;;;:22;;;;3983:7;3992:5;3936:62;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3936:62:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;3936:62:0;3910:18;:89::i;:::-;3660:347;;;:::o;3264:176::-;3347:85;3366:5;3396;:14;;;:23;;;;3421:2;3425:5;3373:58;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3373:58:0;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;3373:58:0;3347:18;:85::i;:::-;3264:176;;;:::o;4013:598::-;4101:27;4109:5;4101:25;;;:27::i;:::-;4093:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4238:12;4252:23;4287:5;4279:19;;4299:4;4279:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4279:25:0;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;4237:67:0;;;;4323:7;4315:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4404:1;4384:10;:17;:21;4380:224;;;4526:10;4515:30;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4515:30:0;;;;;;;;;;;;;;;;4507:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4380:224;4013:598;;;;:::o;2281:374::-;2341:4;2358:16;2385:19;2407:66;2385:88;;;;2576:7;2564:20;2552:32;;2616:3;2604:15;;:8;:15;;:42;;;;;2635:11;2623:8;:23;;2604:42;2596:51;;;;2281:374;;;:::o

Swarm Source

bzzr://7a58a9535c0cd90a5b8c305e8c54161c3229b8802abbbf6992b6fb8017ca6830
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

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.