ETH Price: $2,145.16 (-0.45%)

Contract

0x0A0b052D93EaA7C67F498fb3F8D9f4f56456BA51
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Bridge Send130850522021-08-24 1:25:511675 days ago1629768351IN
0x0A0b052D...56456BA51
0.00034 ETH0.0023694369.37086536
Bridge Send130850472021-08-24 1:25:021675 days ago1629768302IN
0x0A0b052D...56456BA51
0.00034 ETH0.0025820675.59609379
Bridge Send130850392021-08-24 1:22:321675 days ago1629768152IN
0x0A0b052D...56456BA51
0.00034 ETH0.002605176.27069379
Bridge Send130850162021-08-24 1:16:041675 days ago1629767764IN
0x0A0b052D...56456BA51
0.00034 ETH0.0033408297.8106837
Bridge Send130787162021-08-23 1:43:441676 days ago1629683024IN
0x0A0b052D...56456BA51
0.0034 ETH0.0043189248.98681555
Bridge Send130786432021-08-23 1:25:491676 days ago1629681949IN
0x0A0b052D...56456BA51
0.0034 ETH0.0030304934.37302374
Bridge Send130773122021-08-22 20:32:381676 days ago1629664358IN
0x0A0b052D...56456BA51
0.0034 ETH0.0025633929.07896035
Bridge Send130730962021-08-22 4:57:261676 days ago1629608246IN
0x0A0b052D...56456BA51
0.0034 ETH0.0022079125.04985658
Bridge Send130698662021-08-21 16:59:151677 days ago1629565155IN
0x0A0b052D...56456BA51
0.0034 ETH0.0050793257.61943567
Bridge Send130697842021-08-21 16:42:101677 days ago1629564130IN
0x0A0b052D...56456BA51
0.0034 ETH0.0051150758.01705396
Bridge Send130685932021-08-21 12:22:461677 days ago1629548566IN
0x0A0b052D...56456BA51
0.0034 ETH0.0014699317.63509296
Bridge Send130660892021-08-21 2:52:161677 days ago1629514336IN
0x0A0b052D...56456BA51
0.0034 ETH0.0023481526.63366021
Bridge Send130660472021-08-21 2:42:361677 days ago1629513756IN
0x0A0b052D...56456BA51
0.0034 ETH0.0035176139.90349012
Bridge Send130660012021-08-21 2:29:271678 days ago1629512967IN
0x0A0b052D...56456BA51
0.0034 ETH0.0022730325.78507857
Bridge Send130432232021-08-17 14:19:251681 days ago1629209965IN
0x0A0b052D...56456BA51
0.0034 ETH0.0040882346.37022237
Bridge Send129861902021-08-08 18:52:171690 days ago1628448737IN
0x0A0b052D...56456BA51
0.0034 ETH0.0044082550
Bridge Send129760352021-08-07 5:34:381691 days ago1628314478IN
0x0A0b052D...56456BA51
0.0034 ETH0.0043194949
Bridge Send129494052021-08-03 1:19:051696 days ago1627953545IN
0x0A0b052D...56456BA51
0.0034 ETH0.0021028429
Bridge Send129494042021-08-03 1:18:471696 days ago1627953527IN
0x0A0b052D...56456BA51
0.0034 ETH0.0025564329
Bridge Send129442102021-08-02 5:49:561696 days ago1627883396IN
0x0A0b052D...56456BA51
0.0034 ETH0.0022038225
Bridge Send129380152021-08-01 6:23:271697 days ago1627799007IN
0x0A0b052D...56456BA51
0.0034 ETH0.0022922926
Bridge Send129270732021-07-30 12:52:301699 days ago1627649550IN
0x0A0b052D...56456BA51
0.0034 ETH0.0023801327
Bridge Send129088362021-07-27 15:23:021702 days ago1627399382IN
0x0A0b052D...56456BA51
0.0034 ETH0.002997234
Bridge Send129085482021-07-27 14:19:481702 days ago1627395588IN
0x0A0b052D...56456BA51
0.0034 ETH0.0046257352.46675307
Bridge Send128964622021-07-25 16:27:351704 days ago1627230455IN
0x0A0b052D...56456BA51
0.0034 ETH0.0029240333.17
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-130787162021-08-23 1:43:441676 days ago1629683024
0x0A0b052D...56456BA51
0.0034 ETH
-130786432021-08-23 1:25:491676 days ago1629681949
0x0A0b052D...56456BA51
0.0034 ETH
-130773122021-08-22 20:32:381676 days ago1629664358
0x0A0b052D...56456BA51
0.0034 ETH
-130730962021-08-22 4:57:261676 days ago1629608246
0x0A0b052D...56456BA51
0.0034 ETH
-130698662021-08-21 16:59:151677 days ago1629565155
0x0A0b052D...56456BA51
0.0034 ETH
-130697842021-08-21 16:42:101677 days ago1629564130
0x0A0b052D...56456BA51
0.0034 ETH
-130685932021-08-21 12:22:461677 days ago1629548566
0x0A0b052D...56456BA51
0.0034 ETH
-130660892021-08-21 2:52:161677 days ago1629514336
0x0A0b052D...56456BA51
0.0034 ETH
-130660472021-08-21 2:42:361677 days ago1629513756
0x0A0b052D...56456BA51
0.0034 ETH
-130660012021-08-21 2:29:271678 days ago1629512967
0x0A0b052D...56456BA51
0.0034 ETH
-130432232021-08-17 14:19:251681 days ago1629209965
0x0A0b052D...56456BA51
0.0034 ETH
-129861902021-08-08 18:52:171690 days ago1628448737
0x0A0b052D...56456BA51
0.0034 ETH
-129760352021-08-07 5:34:381691 days ago1628314478
0x0A0b052D...56456BA51
0.0034 ETH
-129494052021-08-03 1:19:051696 days ago1627953545
0x0A0b052D...56456BA51
0.0034 ETH
-129494042021-08-03 1:18:471696 days ago1627953527
0x0A0b052D...56456BA51
0.0034 ETH
-129442102021-08-02 5:49:561696 days ago1627883396
0x0A0b052D...56456BA51
0.0034 ETH
-129380152021-08-01 6:23:271697 days ago1627799007
0x0A0b052D...56456BA51
0.0034 ETH
-129270732021-07-30 12:52:301699 days ago1627649550
0x0A0b052D...56456BA51
0.0034 ETH
-129088362021-07-27 15:23:021702 days ago1627399382
0x0A0b052D...56456BA51
0.0034 ETH
-129085482021-07-27 14:19:481702 days ago1627395588
0x0A0b052D...56456BA51
0.0034 ETH
-128964622021-07-25 16:27:351704 days ago1627230455
0x0A0b052D...56456BA51
0.0034 ETH
-128930572021-07-25 3:29:111704 days ago1627183751
0x0A0b052D...56456BA51
0.0034 ETH
-128917912021-07-24 22:46:531705 days ago1627166813
0x0A0b052D...56456BA51
0.0034 ETH
-128875562021-07-24 7:03:211705 days ago1627110201
0x0A0b052D...56456BA51
0.0034 ETH
-128847582021-07-23 20:25:471706 days ago1627071947
0x0A0b052D...56456BA51
0.0034 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Source Code Verified (Exact Match)

Contract Name:
POLCBridgeTransfers

Compiler Version
v0.8.2+commit.661d1103

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2021-07-01
*/

// SPDX-License-Identifier: MIT


pragma solidity 0.8.2;

interface IERC20Token {
    function totalSupply() external view returns (uint256 supply);
    function transfer(address _to, uint256 _value) external  returns (bool success);
    function transferFrom(address _from, address _to, uint256 _value) external returns (bool success);
    function balanceOf(address _owner) external view returns (uint256 balance);
    function approve(address _spender, uint256 _value) external returns (bool success);
    function allowance(address _owner, address _spender) external view returns (uint256 remaining);
    function mint(address account, uint256 value) external returns (bool);
}

interface POLCProfits {
    function addBankEarnings(uint256 _amount) external;
}

library ECDSA {
    /**
     * @dev Returns the address that signed a hashed message (`hash`) with
     * `signature`. This address can then be used for verification purposes.
     *
     * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:
     * this function rejects them by requiring the `s` value to be in the lower
     * half order, and the `v` value to be either 27 or 28.
     *
     * IMPORTANT: `hash` _must_ be the result of a hash operation for the
     * verification to be secure: it is possible to craft signatures that
     * recover to arbitrary addresses for non-hashed data. A safe way to ensure
     * this is by receiving a hash of the original message (which may otherwise
     * be too long), and then calling {toEthSignedMessageHash} on it.
     *
     * Documentation for signature generation:
     * - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]
     * - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]
     */
    function recover(bytes32 hash, bytes memory signature) internal pure returns (address) {
        // Divide the signature in r, s and v variables
        bytes32 r;
        bytes32 s;
        uint8 v;

        // Check the signature length
        // - case 65: r,s,v signature (standard)
        // - case 64: r,vs signature (cf https://eips.ethereum.org/EIPS/eip-2098) _Available since v4.1._
        if (signature.length == 65) {
            // ecrecover takes the signature parameters, and the only way to get them
            // currently is to use assembly.
            // solhint-disable-next-line no-inline-assembly
            assembly {
                r := mload(add(signature, 0x20))
                s := mload(add(signature, 0x40))
                v := byte(0, mload(add(signature, 0x60)))
            }
        } else if (signature.length == 64) {
            // ecrecover takes the signature parameters, and the only way to get them
            // currently is to use assembly.
            // solhint-disable-next-line no-inline-assembly
            assembly {
                let vs := mload(add(signature, 0x40))
                r := mload(add(signature, 0x20))
                s := and(vs, 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)
                v := add(shr(255, vs), 27)
            }
        } else {
            revert("ECDSA: invalid signature length");
        }

        return recover(hash, v, r, s);
    }

    /**
     * @dev Overload of {ECDSA-recover} that receives the `v`,
     * `r` and `s` signature fields separately.
     */
    function recover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) {
        // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature
        // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines
        // the valid range for s in (281): 0 < s < secp256k1n ÷ 2 + 1, and for v in (282): v ∈ {27, 28}. Most
        // signatures from current libraries generate a unique signature with an s-value in the lower half order.
        //
        // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value
        // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or
        // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept
        // these malleable signatures as well.
        require(uint256(s) <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0, "ECDSA: invalid signature 's' value");
        require(v == 27 || v == 28, "ECDSA: invalid signature 'v' value");

        // If the signature is valid (and not malleable), return the signer address
        address signer = ecrecover(hash, v, r, s);
        require(signer != address(0), "ECDSA: invalid signature");

        return signer;
    }

    /**
     * @dev Returns an Ethereum Signed Message, created from a `hash`. This
     * produces hash corresponding to the one signed with the
     * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`]
     * JSON-RPC method as part of EIP-191.
     *
     * See {recover}.
     */
    function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32) {
        // 32 is the length in bytes of hash,
        // enforced by the type signature above
        return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash));
    }

    /**
     * @dev Returns an Ethereum Signed Typed Data, created from a
     * `domainSeparator` and a `structHash`. This produces hash corresponding
     * to the one signed with the
     * https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`]
     * JSON-RPC method as part of EIP-712.
     *
     * See {recover}.
     */
    function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32) {
        return keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash));
    }
}

library Address {

    function isContract(address account) internal view returns (bool) {
        // This method relies on extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly { size := extcodesize(account) }
        return size > 0;
    }


    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

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

   
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }

    
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: value }(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

   
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    
    function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.staticcall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

   
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

  
    function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.delegatecall(data);
        return _verifyCallResult(success, returndata, errorMessage);
    }

    function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

contract POLCBridgeTransfers is Context {
    event BridgeTransfer(address indexed from, address indexed to, uint256 amount, uint256 gasFee);

    address payable public bankVault;
    address public feesVault;
    address public polcTokenAddress;
    uint256 public bridgeFee;
    uint256 public gasFee;
    IERC20Token private polcToken;
    POLCProfits public profitsContract;
    mapping (uint8 => address) public managers;
    mapping (bytes32 => bool) public executedTask;

    uint16 public taskIndex;
    
    modifier isManager() {
        require(managers[0] == msg.sender || managers[1] == msg.sender || managers[2] == msg.sender, "Not manager");
        _;
    }
    
    constructor() {
        polcTokenAddress = 0xaA8330FB2B4D5D07ABFE7A72262752a8505C6B37;
        polcToken = IERC20Token(polcTokenAddress);
        bankVault = payable(0xf7A9F6001ff8b499149569C54852226d719f2D76);
        feesVault = 0xf7A9F6001ff8b499149569C54852226d719f2D76;
        
        managers[0] = msg.sender;
        managers[1] = 0xeA50CE6EBb1a5E4A8F90Bfb35A2fb3c3F0C673ec;
        managers[2] = 0xB1A951141F1b3A16824241f687C3741459E33225;
        bridgeFee = 1;
        gasFee = (1 gwei)*70000;
    }

    function bridgeSend(address _receiver, uint256 _amount) public payable returns (bool) {
        require((_amount>=(50 ether) && _amount<=(50000 ether)), "Invalid amount");
        require(msg.value >= gasFee, "Invalid gas fee");
        uint256 fee;
        if (bridgeFee > 0) {
            fee = (_amount * bridgeFee) /100;  // bridge transaction fee
            profitsContract.addBankEarnings((fee / 20)); //25% of the fees goes to bank hodlers, 5 banks = 5% each
        }
        uint256 transferAmount = _amount-fee;
        Address.sendValue(bankVault, msg.value);
        require(polcToken.transferFrom(msg.sender, feesVault, _amount));
        emit BridgeTransfer(msg.sender, _receiver, transferAmount, msg.value);
        return true;
    }
    
    function setBankVault(address _vault, bytes memory _sig) public isManager {
        uint8 mId = 1;
        bytes32 taskHash = keccak256(abi.encode(_vault, taskIndex, mId));
        verifyApproval(taskHash, _sig);
        bankVault = payable(_vault);
    }
    
    function setFeesVault(address _vault, bytes memory _sig) public isManager {
        uint8 mId = 2;
        bytes32 taskHash = keccak256(abi.encode(_vault, taskIndex, mId));
        verifyApproval(taskHash, _sig);
        feesVault = _vault;
    }
    
    function setFee(uint256 _fee, bytes memory _sig) public isManager {
        uint8 mId = 3;
        bytes32 taskHash = keccak256(abi.encode(_fee, taskIndex, mId));
        verifyApproval(taskHash, _sig);
        bridgeFee = _fee;   
    }
    
    function setProfitsContract(address _contract, bytes memory _sig) public isManager {
        uint8 mId = 4;
        bytes32 taskHash = keccak256(abi.encode(_contract, taskIndex, mId));
        verifyApproval(taskHash, _sig);
        profitsContract = POLCProfits(_contract);
    }

    function setGasFee(uint256 _fee, bytes memory _sig) public isManager {
        uint8 mId = 5;
        bytes32 taskHash = keccak256(abi.encode(_fee, taskIndex, mId));
        verifyApproval(taskHash, _sig);
        gasFee = _fee;
    }
    
    function verifyApproval(bytes32 _taskHash, bytes memory _sig) private {
        require(executedTask[_taskHash] == false, "Task already executed");
        address mSigner = ECDSA.recover(ECDSA.toEthSignedMessageHash(_taskHash), _sig);
        require(mSigner == managers[0] || mSigner == managers[1] || mSigner == managers[2], "Invalid signature"  );
        require(mSigner != msg.sender, "Signature from different managers required");
        executedTask[_taskHash] = true;
        taskIndex += 1;
    }
    
    function changeManager(address _manager, uint8 _index, bytes memory _sig) public isManager {
        require(_index >= 0 && _index <= 2, "Invalid index");
        uint8 mId = 100;
        bytes32 taskHash = keccak256(abi.encode(_manager, taskIndex, mId));
        verifyApproval(taskHash, _sig);
        managers[_index] = _manager;
    }
    

    
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"gasFee","type":"uint256"}],"name":"BridgeTransfer","type":"event"},{"inputs":[],"name":"bankVault","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bridgeFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"bridgeSend","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_manager","type":"address"},{"internalType":"uint8","name":"_index","type":"uint8"},{"internalType":"bytes","name":"_sig","type":"bytes"}],"name":"changeManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"executedTask","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feesVault","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gasFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"","type":"uint8"}],"name":"managers","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"polcTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"profitsContract","outputs":[{"internalType":"contract POLCProfits","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"},{"internalType":"bytes","name":"_sig","type":"bytes"}],"name":"setBankVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"},{"internalType":"bytes","name":"_sig","type":"bytes"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"},{"internalType":"bytes","name":"_sig","type":"bytes"}],"name":"setFeesVault","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"},{"internalType":"bytes","name":"_sig","type":"bytes"}],"name":"setGasFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_contract","type":"address"},{"internalType":"bytes","name":"_sig","type":"bytes"}],"name":"setProfitsContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"taskIndex","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b50600280546001600160a01b031990811673aa8330fb2b4d5d07abfe7a72262752a8505c6b37178083556005805483166001600160a01b039290921691909117905560008054821673f7a9f6001ff8b499149569c54852226d719f2d769081178255600180548416909117815560076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df80548416331790557fb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b8288054841673ea50ce6ebb1a5e4a8f90bfb35a2fb3c3f0c673ec1790559290527fb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d805490911673b1a951141f1b3a16824241f687c3741459e33225179055600355653faa2522600060045561151f806101456000396000f3fe6080604052600436106100f35760003560e01c8063b76bb6101161008a578063d58177fe11610059578063d58177fe146102c8578063ec58d180146102e8578063ec8d3f5214610308578063fdc5c83714610328576100f3565b8063b76bb61014610224578063b84254d71461025a578063c717a86e14610288578063cea93fc3146102a8576100f3565b80637fdb6de4116100c65780637fdb6de4146101a357806382b12dd7146101b65780638bad535f146101cc578063b46bdcdb14610204576100f3565b80631b9ab685146100f8578063375e65b21461013d5780633d55d3f61461015f578063658612e91461017f575b600080fd5b34801561010457600080fd5b50610128610113366004611333565b60086020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561014957600080fd5b5061015d61015836600461134b565b610348565b005b34801561016b57600080fd5b5061015d61017a36600461134b565b61043b565b34801561018b57600080fd5b5061019560045481565b604051908152602001610134565b6101286101b1366004611287565b610525565b3480156101c257600080fd5b5061019560035481565b3480156101d857600080fd5b506000546101ec906001600160a01b031681565b6040516001600160a01b039091168152602001610134565b34801561021057600080fd5b5061015d61021f36600461123b565b61076c565b34801561023057600080fd5b506101ec61023f36600461137a565b6007602052600090815260409020546001600160a01b031681565b34801561026657600080fd5b506009546102759061ffff1681565b60405161ffff9091168152602001610134565b34801561029457600080fd5b506001546101ec906001600160a01b031681565b3480156102b457600080fd5b506006546101ec906001600160a01b031681565b3480156102d457600080fd5b5061015d6102e336600461123b565b61086f565b3480156102f457600080fd5b5061015d6103033660046112b0565b610972565b34801561031457600080fd5b5061015d61032336600461123b565b610ac7565b34801561033457600080fd5b506002546101ec906001600160a01b031681565b6000805260076020526000805160206114ca833981519152546001600160a01b031633148061039857506001600052600760205260008051602061148a833981519152546001600160a01b031633145b806103c45750600260005260076020526000805160206114aa833981519152546001600160a01b031633145b6103e95760405162461bcd60e51b81526004016103e0906113bc565b60405180910390fd5b600954604080516020810185905261ffff90921690820152600360608201819052906000906080016040516020818303038152906040528051906020012090506104338184610bca565b505050600355565b6000805260076020526000805160206114ca833981519152546001600160a01b031633148061048b57506001600052600760205260008051602061148a833981519152546001600160a01b031633145b806104b75750600260005260076020526000805160206114aa833981519152546001600160a01b031633145b6104d35760405162461bcd60e51b81526004016103e0906113bc565b600954604080516020810185905261ffff909216908201526005606082018190529060009060800160405160208183030381529060405280519060200120905061051d8184610bca565b505050600455565b60006802b5e3af16b1880000821015801561054a5750690a968163f0a57b4000008211155b6105875760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b60448201526064016103e0565b6004543410156105cb5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206761732066656560881b60448201526064016103e0565b60035460009015610660576064600354846105e69190611427565b6105f09190611407565b6006549091506001600160a01b03166312f28f1061060f601484611407565b6040518263ffffffff1660e01b815260040161062d91815260200190565b600060405180830381600087803b15801561064757600080fd5b505af115801561065b573d6000803e3d6000fd5b505050505b600061066c8285611446565b600054909150610685906001600160a01b031634610dbb565b6005546001546040516323b872dd60e01b81523360048201526001600160a01b039182166024820152604481018790529116906323b872dd90606401602060405180830381600087803b1580156106db57600080fd5b505af11580156106ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610713919061130c565b61071c57600080fd5b604080518281523460208201526001600160a01b0387169133917ff96bbaed0f71c8642f761c4f790187c4ba5488fa2c374bc9a86d2e0e120da2da910160405180910390a3506001949350505050565b6000805260076020526000805160206114ca833981519152546001600160a01b03163314806107bc57506001600052600760205260008051602061148a833981519152546001600160a01b031633145b806107e85750600260005260076020526000805160206114aa833981519152546001600160a01b031633145b6108045760405162461bcd60e51b81526004016103e0906113bc565b60095460405160049160009161082791869161ffff909116908590602001611394565b6040516020818303038152906040528051906020012090506108498184610bca565b5050600680546001600160a01b0319166001600160a01b03939093169290921790915550565b6000805260076020526000805160206114ca833981519152546001600160a01b03163314806108bf57506001600052600760205260008051602061148a833981519152546001600160a01b031633145b806108eb5750600260005260076020526000805160206114aa833981519152546001600160a01b031633145b6109075760405162461bcd60e51b81526004016103e0906113bc565b60095460405160019160009161092a91869161ffff909116908590602001611394565b60405160208183030381529060405280519060200120905061094c8184610bca565b5050600080546001600160a01b0319166001600160a01b03939093169290921790915550565b6000805260076020526000805160206114ca833981519152546001600160a01b03163314806109c257506001600052600760205260008051602061148a833981519152546001600160a01b031633145b806109ee5750600260005260076020526000805160206114aa833981519152546001600160a01b031633145b610a0a5760405162461bcd60e51b81526004016103e0906113bc565b60028260ff161115610a4e5760405162461bcd60e51b815260206004820152600d60248201526c092dcecc2d8d2c840d2dcc8caf609b1b60448201526064016103e0565b600954604051606491600091610a7191879161ffff909116908590602001611394565b604051602081830303815290604052805190602001209050610a938184610bca565b50505060ff16600090815260076020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6000805260076020526000805160206114ca833981519152546001600160a01b0316331480610b1757506001600052600760205260008051602061148a833981519152546001600160a01b031633145b80610b435750600260005260076020526000805160206114aa833981519152546001600160a01b031633145b610b5f5760405162461bcd60e51b81526004016103e0906113bc565b600954604051600291600091610b8291869161ffff909116908590602001611394565b604051602081830303815290604052805190602001209050610ba48184610bca565b5050600180546001600160a01b0319166001600160a01b03939093169290921790915550565b60008281526008602052604090205460ff1615610c215760405162461bcd60e51b815260206004820152601560248201527415185cdac8185b1c9958591e48195e1958dd5d1959605a1b60448201526064016103e0565b6000610c35610c2f84610ed9565b83610f2d565b6000805260076020526000805160206114ca833981519152549091506001600160a01b0380831691161480610c8e57506001600052600760205260008051602061148a833981519152546001600160a01b038281169116145b80610cbd5750600260005260076020526000805160206114aa833981519152546001600160a01b038281169116145b610cfd5760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b60448201526064016103e0565b6001600160a01b038116331415610d695760405162461bcd60e51b815260206004820152602a60248201527f5369676e61747572652066726f6d20646966666572656e74206d616e616765726044820152691cc81c995c5d5a5c995960b21b60648201526084016103e0565b6000838152600860205260408120805460ff191660019081179091556009805491929091610d9c90849061ffff166113e1565b92506101000a81548161ffff021916908361ffff160217905550505050565b80471015610e0b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016103e0565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610e58576040519150601f19603f3d011682016040523d82523d6000602084013e610e5d565b606091505b5050905080610ed45760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016103e0565b505050565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c016040516020818303038152906040528051906020012090505b919050565b600080600080845160411415610f575750505060208201516040830151606084015160001a610fcd565b845160401415610f855750505060408201516020830151906001600160ff1b0381169060ff1c601b01610fcd565b60405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016103e0565b610fd986828585610fe3565b9695505050505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156110605760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016103e0565b8360ff16601b148061107557508360ff16601c145b6110cc5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016103e0565b6040805160008082526020820180845288905260ff871692820192909252606081018590526080810184905260019060a0016020604051602081039080840390855afa158015611120573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166111835760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016103e0565b95945050505050565b80356001600160a01b0381168114610f2857600080fd5b600082601f8301126111b3578081fd5b813567ffffffffffffffff808211156111ce576111ce611473565b604051601f8301601f19908116603f011681019082821181831017156111f6576111f6611473565b8160405283815286602085880101111561120e578485fd5b8360208701602083013792830160200193909352509392505050565b803560ff81168114610f2857600080fd5b6000806040838503121561124d578182fd5b6112568361118c565b9150602083013567ffffffffffffffff811115611271578182fd5b61127d858286016111a3565b9150509250929050565b60008060408385031215611299578182fd5b6112a28361118c565b946020939093013593505050565b6000806000606084860312156112c4578081fd5b6112cd8461118c565b92506112db6020850161122a565b9150604084013567ffffffffffffffff8111156112f6578182fd5b611302868287016111a3565b9150509250925092565b60006020828403121561131d578081fd5b8151801515811461132c578182fd5b9392505050565b600060208284031215611344578081fd5b5035919050565b6000806040838503121561135d578182fd5b82359150602083013567ffffffffffffffff811115611271578182fd5b60006020828403121561138b578081fd5b61132c8261122a565b6001600160a01b0393909316835261ffff91909116602083015260ff16604082015260600190565b6020808252600b908201526a2737ba1036b0b730b3b2b960a91b604082015260600190565b600061ffff8083168185168083038211156113fe576113fe61145d565b01949350505050565b60008261142257634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156114415761144161145d565b500290565b6000828210156114585761145861145d565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfeb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b828b7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6dfa26469706673582212209d1923e7c74708a41c5d0a8ad7b9bd10d67fbd85fb82b1ef18dc99455fa4385c64736f6c63430008020033

Deployed Bytecode

0x6080604052600436106100f35760003560e01c8063b76bb6101161008a578063d58177fe11610059578063d58177fe146102c8578063ec58d180146102e8578063ec8d3f5214610308578063fdc5c83714610328576100f3565b8063b76bb61014610224578063b84254d71461025a578063c717a86e14610288578063cea93fc3146102a8576100f3565b80637fdb6de4116100c65780637fdb6de4146101a357806382b12dd7146101b65780638bad535f146101cc578063b46bdcdb14610204576100f3565b80631b9ab685146100f8578063375e65b21461013d5780633d55d3f61461015f578063658612e91461017f575b600080fd5b34801561010457600080fd5b50610128610113366004611333565b60086020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561014957600080fd5b5061015d61015836600461134b565b610348565b005b34801561016b57600080fd5b5061015d61017a36600461134b565b61043b565b34801561018b57600080fd5b5061019560045481565b604051908152602001610134565b6101286101b1366004611287565b610525565b3480156101c257600080fd5b5061019560035481565b3480156101d857600080fd5b506000546101ec906001600160a01b031681565b6040516001600160a01b039091168152602001610134565b34801561021057600080fd5b5061015d61021f36600461123b565b61076c565b34801561023057600080fd5b506101ec61023f36600461137a565b6007602052600090815260409020546001600160a01b031681565b34801561026657600080fd5b506009546102759061ffff1681565b60405161ffff9091168152602001610134565b34801561029457600080fd5b506001546101ec906001600160a01b031681565b3480156102b457600080fd5b506006546101ec906001600160a01b031681565b3480156102d457600080fd5b5061015d6102e336600461123b565b61086f565b3480156102f457600080fd5b5061015d6103033660046112b0565b610972565b34801561031457600080fd5b5061015d61032336600461123b565b610ac7565b34801561033457600080fd5b506002546101ec906001600160a01b031681565b6000805260076020526000805160206114ca833981519152546001600160a01b031633148061039857506001600052600760205260008051602061148a833981519152546001600160a01b031633145b806103c45750600260005260076020526000805160206114aa833981519152546001600160a01b031633145b6103e95760405162461bcd60e51b81526004016103e0906113bc565b60405180910390fd5b600954604080516020810185905261ffff90921690820152600360608201819052906000906080016040516020818303038152906040528051906020012090506104338184610bca565b505050600355565b6000805260076020526000805160206114ca833981519152546001600160a01b031633148061048b57506001600052600760205260008051602061148a833981519152546001600160a01b031633145b806104b75750600260005260076020526000805160206114aa833981519152546001600160a01b031633145b6104d35760405162461bcd60e51b81526004016103e0906113bc565b600954604080516020810185905261ffff909216908201526005606082018190529060009060800160405160208183030381529060405280519060200120905061051d8184610bca565b505050600455565b60006802b5e3af16b1880000821015801561054a5750690a968163f0a57b4000008211155b6105875760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b60448201526064016103e0565b6004543410156105cb5760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206761732066656560881b60448201526064016103e0565b60035460009015610660576064600354846105e69190611427565b6105f09190611407565b6006549091506001600160a01b03166312f28f1061060f601484611407565b6040518263ffffffff1660e01b815260040161062d91815260200190565b600060405180830381600087803b15801561064757600080fd5b505af115801561065b573d6000803e3d6000fd5b505050505b600061066c8285611446565b600054909150610685906001600160a01b031634610dbb565b6005546001546040516323b872dd60e01b81523360048201526001600160a01b039182166024820152604481018790529116906323b872dd90606401602060405180830381600087803b1580156106db57600080fd5b505af11580156106ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610713919061130c565b61071c57600080fd5b604080518281523460208201526001600160a01b0387169133917ff96bbaed0f71c8642f761c4f790187c4ba5488fa2c374bc9a86d2e0e120da2da910160405180910390a3506001949350505050565b6000805260076020526000805160206114ca833981519152546001600160a01b03163314806107bc57506001600052600760205260008051602061148a833981519152546001600160a01b031633145b806107e85750600260005260076020526000805160206114aa833981519152546001600160a01b031633145b6108045760405162461bcd60e51b81526004016103e0906113bc565b60095460405160049160009161082791869161ffff909116908590602001611394565b6040516020818303038152906040528051906020012090506108498184610bca565b5050600680546001600160a01b0319166001600160a01b03939093169290921790915550565b6000805260076020526000805160206114ca833981519152546001600160a01b03163314806108bf57506001600052600760205260008051602061148a833981519152546001600160a01b031633145b806108eb5750600260005260076020526000805160206114aa833981519152546001600160a01b031633145b6109075760405162461bcd60e51b81526004016103e0906113bc565b60095460405160019160009161092a91869161ffff909116908590602001611394565b60405160208183030381529060405280519060200120905061094c8184610bca565b5050600080546001600160a01b0319166001600160a01b03939093169290921790915550565b6000805260076020526000805160206114ca833981519152546001600160a01b03163314806109c257506001600052600760205260008051602061148a833981519152546001600160a01b031633145b806109ee5750600260005260076020526000805160206114aa833981519152546001600160a01b031633145b610a0a5760405162461bcd60e51b81526004016103e0906113bc565b60028260ff161115610a4e5760405162461bcd60e51b815260206004820152600d60248201526c092dcecc2d8d2c840d2dcc8caf609b1b60448201526064016103e0565b600954604051606491600091610a7191879161ffff909116908590602001611394565b604051602081830303815290604052805190602001209050610a938184610bca565b50505060ff16600090815260076020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6000805260076020526000805160206114ca833981519152546001600160a01b0316331480610b1757506001600052600760205260008051602061148a833981519152546001600160a01b031633145b80610b435750600260005260076020526000805160206114aa833981519152546001600160a01b031633145b610b5f5760405162461bcd60e51b81526004016103e0906113bc565b600954604051600291600091610b8291869161ffff909116908590602001611394565b604051602081830303815290604052805190602001209050610ba48184610bca565b5050600180546001600160a01b0319166001600160a01b03939093169290921790915550565b60008281526008602052604090205460ff1615610c215760405162461bcd60e51b815260206004820152601560248201527415185cdac8185b1c9958591e48195e1958dd5d1959605a1b60448201526064016103e0565b6000610c35610c2f84610ed9565b83610f2d565b6000805260076020526000805160206114ca833981519152549091506001600160a01b0380831691161480610c8e57506001600052600760205260008051602061148a833981519152546001600160a01b038281169116145b80610cbd5750600260005260076020526000805160206114aa833981519152546001600160a01b038281169116145b610cfd5760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964207369676e617475726560781b60448201526064016103e0565b6001600160a01b038116331415610d695760405162461bcd60e51b815260206004820152602a60248201527f5369676e61747572652066726f6d20646966666572656e74206d616e616765726044820152691cc81c995c5d5a5c995960b21b60648201526084016103e0565b6000838152600860205260408120805460ff191660019081179091556009805491929091610d9c90849061ffff166113e1565b92506101000a81548161ffff021916908361ffff160217905550505050565b80471015610e0b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016103e0565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610e58576040519150601f19603f3d011682016040523d82523d6000602084013e610e5d565b606091505b5050905080610ed45760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016103e0565b505050565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c016040516020818303038152906040528051906020012090505b919050565b600080600080845160411415610f575750505060208201516040830151606084015160001a610fcd565b845160401415610f855750505060408201516020830151906001600160ff1b0381169060ff1c601b01610fcd565b60405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016103e0565b610fd986828585610fe3565b9695505050505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156110605760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016103e0565b8360ff16601b148061107557508360ff16601c145b6110cc5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016103e0565b6040805160008082526020820180845288905260ff871692820192909252606081018590526080810184905260019060a0016020604051602081039080840390855afa158015611120573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166111835760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016103e0565b95945050505050565b80356001600160a01b0381168114610f2857600080fd5b600082601f8301126111b3578081fd5b813567ffffffffffffffff808211156111ce576111ce611473565b604051601f8301601f19908116603f011681019082821181831017156111f6576111f6611473565b8160405283815286602085880101111561120e578485fd5b8360208701602083013792830160200193909352509392505050565b803560ff81168114610f2857600080fd5b6000806040838503121561124d578182fd5b6112568361118c565b9150602083013567ffffffffffffffff811115611271578182fd5b61127d858286016111a3565b9150509250929050565b60008060408385031215611299578182fd5b6112a28361118c565b946020939093013593505050565b6000806000606084860312156112c4578081fd5b6112cd8461118c565b92506112db6020850161122a565b9150604084013567ffffffffffffffff8111156112f6578182fd5b611302868287016111a3565b9150509250925092565b60006020828403121561131d578081fd5b8151801515811461132c578182fd5b9392505050565b600060208284031215611344578081fd5b5035919050565b6000806040838503121561135d578182fd5b82359150602083013567ffffffffffffffff811115611271578182fd5b60006020828403121561138b578081fd5b61132c8261122a565b6001600160a01b0393909316835261ffff91909116602083015260ff16604082015260600190565b6020808252600b908201526a2737ba1036b0b730b3b2b960a91b604082015260600190565b600061ffff8083168185168083038211156113fe576113fe61145d565b01949350505050565b60008261142257634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156114415761144161145d565b500290565b6000828210156114585761145861145d565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfeb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b828b7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6dfa26469706673582212209d1923e7c74708a41c5d0a8ad7b9bd10d67fbd85fb82b1ef18dc99455fa4385c64736f6c63430008020033

Deployed Bytecode Sourcemap

10480:4229:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10923:45;;;;;;;;;;-1:-1:-1;10923:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5320:14:1;;5313:22;5295:41;;5283:2;5268:18;10923:45:0;;;;;;;;13024:242;;;;;;;;;;-1:-1:-1;13024:242:0;;;;;:::i;:::-;;:::i;:::-;;13571:239;;;;;;;;;;-1:-1:-1;13571:239:0;;;;;:::i;:::-;;:::i;10769:21::-;;;;;;;;;;;;;;;;;;;11095:25:1;;;11083:2;11068:18;10769:21:0;11050:76:1;11714:763:0;;;;;;:::i;:::-;;:::i;10738:24::-;;;;;;;;;;;;;;;;10630:32;;;;;;;;;;-1:-1:-1;10630:32:0;;;;-1:-1:-1;;;;;10630:32:0;;;;;;-1:-1:-1;;;;;4139:32:1;;;4121:51;;4109:2;4094:18;10630:32:0;4076:102:1;13278:285:0;;;;;;;;;;-1:-1:-1;13278:285:0;;;;;:::i;:::-;;:::i;10874:42::-;;;;;;;;;;-1:-1:-1;10874:42:0;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;10874:42:0;;;10977:23;;;;;;;;;;-1:-1:-1;10977:23:0;;;;;;;;;;;10930:6:1;10918:19;;;10900:38;;10888:2;10873:18;10977:23:0;10855:89:1;10669:24:0;;;;;;;;;;-1:-1:-1;10669:24:0;;;;-1:-1:-1;;;;;10669:24:0;;;10833:34;;;;;;;;;;-1:-1:-1;10833:34:0;;;;-1:-1:-1;;;;;10833:34:0;;;12489:260;;;;;;;;;;-1:-1:-1;12489:260:0;;;;;:::i;:::-;;:::i;14348:344::-;;;;;;;;;;-1:-1:-1;14348:344:0;;;;;:::i;:::-;;:::i;12761:251::-;;;;;;;;;;-1:-1:-1;12761:251:0;;;;;:::i;:::-;;:::i;10700:31::-;;;;;;;;;;-1:-1:-1;10700:31:0;;;;-1:-1:-1;;;;;10700:31:0;;;13024:242;11053:11;;;:8;:11;;-1:-1:-1;;;;;;;;;;;11053:11:0;-1:-1:-1;;;;;11053:11:0;11068:10;11053:25;;:54;;-1:-1:-1;11091:1:0;11082:11;;:8;:11;;-1:-1:-1;;;;;;;;;;;11082:11:0;-1:-1:-1;;;;;11082:11:0;11097:10;11082:25;11053:54;:83;;;-1:-1:-1;11120:1:0;11111:11;;:8;:11;;-1:-1:-1;;;;;;;;;;;11111:11:0;-1:-1:-1;;;;;11111:11:0;11126:10;11111:25;11053:83;11045:107;;;;-1:-1:-1;;;11045:107:0;;;;;;;:::i;:::-;;;;;;;;;13171:9:::1;::::0;13154:32:::1;::::0;;::::1;::::0;::::1;11327:25:1::0;;;13171:9:0::1;::::0;;::::1;11368:18:1::0;;;11361:47;13113:1:0::1;11424:18:1::0;;;11417:45;;;13113:1:0;13101:9:::1;::::0;11300:18:1;;13154:32:0::1;;;;;;;;;;;;13144:43;;;;;;13125:62;;13198:30;13213:8;13223:4;13198:14;:30::i;:::-;-1:-1:-1::0;;;13239:9:0::1;:16:::0;13024:242::o;13571:239::-;11053:11;;;:8;:11;;-1:-1:-1;;;;;;;;;;;11053:11:0;-1:-1:-1;;;;;11053:11:0;11068:10;11053:25;;:54;;-1:-1:-1;11091:1:0;11082:11;;:8;:11;;-1:-1:-1;;;;;;;;;;;11082:11:0;-1:-1:-1;;;;;11082:11:0;11097:10;11082:25;11053:54;:83;;;-1:-1:-1;11120:1:0;11111:11;;:8;:11;;-1:-1:-1;;;;;;;;;;;11111:11:0;-1:-1:-1;;;;;11111:11:0;11126:10;11111:25;11053:83;11045:107;;;;-1:-1:-1;;;11045:107:0;;;;;;;:::i;:::-;13721:9:::1;::::0;13704:32:::1;::::0;;::::1;::::0;::::1;11327:25:1::0;;;13721:9:0::1;::::0;;::::1;11368:18:1::0;;;11361:47;13663:1:0::1;11424:18:1::0;;;11417:45;;;13663:1:0;13651:9:::1;::::0;11300:18:1;;13704:32:0::1;;;;;;;;;;;;13694:43;;;;;;13675:62;;13748:30;13763:8;13773:4;13748:14;:30::i;:::-;-1:-1:-1::0;;;13789:6:0::1;:13:::0;13571:239::o;11714:763::-;11794:4;11830:8;11820:7;:19;;:45;;;;;11853:11;11843:7;:22;;11820:45;11811:74;;;;-1:-1:-1;;;11811:74:0;;7231:2:1;11811:74:0;;;7213:21:1;7270:2;7250:18;;;7243:30;-1:-1:-1;;;7289:18:1;;;7282:44;7343:18;;11811:74:0;7203:164:1;11811:74:0;11917:6;;11904:9;:19;;11896:47;;;;-1:-1:-1;;;11896:47:0;;10614:2:1;11896:47:0;;;10596:21:1;10653:2;10633:18;;;10626:30;-1:-1:-1;;;10672:18:1;;;10665:45;10727:18;;11896:47:0;10586:165:1;11896:47:0;11980:9;;11954:11;;11980:13;11976:221;;12039:3;12027:9;;12017:7;:19;;;;:::i;:::-;12016:26;;;;:::i;:::-;12084:15;;12010:32;;-1:-1:-1;;;;;;12084:15:0;:31;12117:8;12123:2;12010:32;12117:8;:::i;:::-;12084:43;;;;;;;;;;;;;11095:25:1;;11083:2;11068:18;;11050:76;12084:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11976:221;12207:22;12232:11;12240:3;12232:7;:11;:::i;:::-;12272:9;;12207:36;;-1:-1:-1;12254:39:0;;-1:-1:-1;;;;;12272:9:0;12283;12254:17;:39::i;:::-;12312:9;;;12347;12312:54;;-1:-1:-1;;;12312:54:0;;12335:10;12312:54;;;4647:34:1;-1:-1:-1;;;;;12347:9:0;;;4697:18:1;;;4690:43;4749:18;;;4742:34;;;12312:9:0;;;:22;;4582:18:1;;12312:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12304:63;;;;;;12383:64;;;11647:25:1;;;12437:9:0;11703:2:1;11688:18;;11681:34;-1:-1:-1;;;;;12383:64:0;;;12398:10;;12383:64;;11620:18:1;12383:64:0;;;;;;;-1:-1:-1;12465:4:0;;11714:763;-1:-1:-1;;;;11714:763:0:o;13278:285::-;11053:11;;;:8;:11;;-1:-1:-1;;;;;;;;;;;11053:11:0;-1:-1:-1;;;;;11053:11:0;11068:10;11053:25;;:54;;-1:-1:-1;11091:1:0;11082:11;;:8;:11;;-1:-1:-1;;;;;;;;;;;11082:11:0;-1:-1:-1;;;;;11082:11:0;11097:10;11082:25;11053:54;:83;;;-1:-1:-1;11120:1:0;11111:11;;:8;:11;;-1:-1:-1;;;;;;;;;;;11111:11:0;-1:-1:-1;;;;;11111:11:0;11126:10;11111:25;11053:83;11045:107;;;;-1:-1:-1;;;11045:107:0;;;;;;;:::i;:::-;13447:9:::1;::::0;13425:37:::1;::::0;13384:1:::1;::::0;13372:9:::1;::::0;13425:37:::1;::::0;13436:9;;13447::::1;::::0;;::::1;::::0;13384:1;;13425:37:::1;;;:::i;:::-;;;;;;;;;;;;;13415:48;;;;;;13396:67;;13474:30;13489:8;13499:4;13474:14;:30::i;:::-;-1:-1:-1::0;;13515:15:0::1;:40:::0;;-1:-1:-1;;;;;;13515:40:0::1;-1:-1:-1::0;;;;;13515:40:0;;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;13278:285:0:o;12489:260::-;11053:11;;;:8;:11;;-1:-1:-1;;;;;;;;;;;11053:11:0;-1:-1:-1;;;;;11053:11:0;11068:10;11053:25;;:54;;-1:-1:-1;11091:1:0;11082:11;;:8;:11;;-1:-1:-1;;;;;;;;;;;11082:11:0;-1:-1:-1;;;;;11082:11:0;11097:10;11082:25;11053:54;:83;;;-1:-1:-1;11120:1:0;11111:11;;:8;:11;;-1:-1:-1;;;;;;;;;;;11111:11:0;-1:-1:-1;;;;;11111:11:0;11126:10;11111:25;11053:83;11045:107;;;;-1:-1:-1;;;11045:107:0;;;;;;;:::i;:::-;12646:9:::1;::::0;12627:34:::1;::::0;12586:1:::1;::::0;12574:9:::1;::::0;12627:34:::1;::::0;12638:6;;12646:9:::1;::::0;;::::1;::::0;12586:1;;12627:34:::1;;;:::i;:::-;;;;;;;;;;;;;12617:45;;;;;;12598:64;;12673:30;12688:8;12698:4;12673:14;:30::i;:::-;-1:-1:-1::0;;12714:9:0::1;:27:::0;;-1:-1:-1;;;;;;12714:27:0::1;-1:-1:-1::0;;;;;12714:27:0;;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;12489:260:0:o;14348:344::-;11053:11;;;:8;:11;;-1:-1:-1;;;;;;;;;;;11053:11:0;-1:-1:-1;;;;;11053:11:0;11068:10;11053:25;;:54;;-1:-1:-1;11091:1:0;11082:11;;:8;:11;;-1:-1:-1;;;;;;;;;;;11082:11:0;-1:-1:-1;;;;;11082:11:0;11097:10;11082:25;11053:54;:83;;;-1:-1:-1;11120:1:0;11111:11;;:8;:11;;-1:-1:-1;;;;;;;;;;;11111:11:0;-1:-1:-1;;;;;11111:11:0;11126:10;11111:25;11053:83;11045:107;;;;-1:-1:-1;;;11045:107:0;;;;;;;:::i;:::-;14483:1:::1;14473:6;:11;;;;14450:52;;;::::0;-1:-1:-1;;;14450:52:0;;7574:2:1;14450:52:0::1;::::0;::::1;7556:21:1::0;7613:2;7593:18;;;7586:30;-1:-1:-1;;;7632:18:1;;;7625:43;7685:18;;14450:52:0::1;7546:163:1::0;14450:52:0::1;14589:9;::::0;14568:36:::1;::::0;14525:3:::1;::::0;14513:9:::1;::::0;14568:36:::1;::::0;14579:8;;14589:9:::1;::::0;;::::1;::::0;14525:3;;14568:36:::1;;;:::i;:::-;;;;;;;;;;;;;14558:47;;;;;;14539:66;;14616:30;14631:8;14641:4;14616:14;:30::i;:::-;-1:-1:-1::0;;;14657:16:0::1;;;::::0;;;:8:::1;:16;::::0;;;;:27;;-1:-1:-1;;;;;;14657:27:0::1;-1:-1:-1::0;;;;;14657:27:0;;;::::1;::::0;;;::::1;::::0;;14348:344::o;12761:251::-;11053:11;;;:8;:11;;-1:-1:-1;;;;;;;;;;;11053:11:0;-1:-1:-1;;;;;11053:11:0;11068:10;11053:25;;:54;;-1:-1:-1;11091:1:0;11082:11;;:8;:11;;-1:-1:-1;;;;;;;;;;;11082:11:0;-1:-1:-1;;;;;11082:11:0;11097:10;11082:25;11053:54;:83;;;-1:-1:-1;11120:1:0;11111:11;;:8;:11;;-1:-1:-1;;;;;;;;;;;11111:11:0;-1:-1:-1;;;;;11111:11:0;11126:10;11111:25;11053:83;11045:107;;;;-1:-1:-1;;;11045:107:0;;;;;;;:::i;:::-;12918:9:::1;::::0;12899:34:::1;::::0;12858:1:::1;::::0;12846:9:::1;::::0;12899:34:::1;::::0;12910:6;;12918:9:::1;::::0;;::::1;::::0;12858:1;;12899:34:::1;;;:::i;:::-;;;;;;;;;;;;;12889:45;;;;;;12870:64;;12945:30;12960:8;12970:4;12945:14;:30::i;:::-;-1:-1:-1::0;;12986:9:0::1;:18:::0;;-1:-1:-1;;;;;;12986:18:0::1;-1:-1:-1::0;;;;;12986:18:0;;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;12761:251:0:o;13822:514::-;13911:23;;;;:12;:23;;;;;;;;:32;13903:66;;;;-1:-1:-1;;;13903:66:0;;7916:2:1;13903:66:0;;;7898:21:1;7955:2;7935:18;;;7928:30;-1:-1:-1;;;7974:18:1;;;7967:51;8035:18;;13903:66:0;7888:171:1;13903:66:0;13980:15;13998:60;14012:39;14041:9;14012:28;:39::i;:::-;14053:4;13998:13;:60::i;:::-;14088:11;;;:8;:11;;-1:-1:-1;;;;;;;;;;;14088:11:0;13980:78;;-1:-1:-1;;;;;;14077:22:0;;;14088:11;;14077:22;;:48;;-1:-1:-1;14123:1:0;14114:11;;:8;:11;;-1:-1:-1;;;;;;;;;;;14114:11:0;-1:-1:-1;;;;;14103:22:0;;;14114:11;;14103:22;14077:48;:74;;;-1:-1:-1;14149:1:0;14140:11;;:8;:11;;-1:-1:-1;;;;;;;;;;;14140:11:0;-1:-1:-1;;;;;14129:22:0;;;14140:11;;14129:22;14077:74;14069:106;;;;-1:-1:-1;;;14069:106:0;;8266:2:1;14069:106:0;;;8248:21:1;8305:2;8285:18;;;8278:30;-1:-1:-1;;;8324:18:1;;;8317:47;8381:18;;14069:106:0;8238:167:1;14069:106:0;-1:-1:-1;;;;;14194:21:0;;14205:10;14194:21;;14186:76;;;;-1:-1:-1;;;14186:76:0;;9800:2:1;14186:76:0;;;9782:21:1;9839:2;9819:18;;;9812:30;9878:34;9858:18;;;9851:62;-1:-1:-1;;;9929:18:1;;;9922:40;9979:19;;14186:76:0;9772:232:1;14186:76:0;14273:23;;;;:12;:23;;;;;:30;;-1:-1:-1;;14273:30:0;14299:4;14273:30;;;;;;14314:9;:14;;14299:4;;14314:9;;:14;;14299:4;;14314:14;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13822:514;;;:::o;6470:397::-;6585:6;6560:21;:31;;6552:73;;;;-1:-1:-1;;;6552:73:0;;9442:2:1;6552:73:0;;;9424:21:1;9481:2;9461:18;;;9454:30;9520:31;9500:18;;;9493:59;9569:18;;6552:73:0;9414:179:1;6552:73:0;6717:12;6735:9;-1:-1:-1;;;;;6735:14:0;6758:6;6735:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6716:54;;;6789:7;6781:78;;;;-1:-1:-1;;;6781:78:0;;8612:2:1;6781:78:0;;;8594:21:1;8651:2;8631:18;;;8624:30;8690:34;8670:18;;;8663:62;8761:28;8741:18;;;8734:56;8807:19;;6781:78:0;8584:248:1;6781:78:0;6470:397;;;:::o;5191:269::-;5393:58;;3622:66:1;5393:58:0;;;3610:79:1;3705:12;;;3698:28;;;5260:7:0;;3742:12:1;;5393:58:0;;;;;;;;;;;;5383:69;;;;;;5376:76;;5191:269;;;;:::o;1828:1492::-;1906:7;1983:9;2003;2023:7;2243:9;:16;2263:2;2243:22;2239:1032;;;-1:-1:-1;;;2530:4:0;2515:20;;2509:27;2580:4;2565:20;;2559:27;2638:4;2623:20;;2617:27;2614:1;2609:36;2485:175;;;2681:9;:16;2701:2;2681:22;2677:594;;;-1:-1:-1;;;2973:4:0;2958:20;;2952:27;3023:4;3008:20;;3002:27;;-1:-1:-1;;;;;3052:75:0;;;3158:3;3154:12;3168:2;3150:21;2923:263;;;3218:41;;-1:-1:-1;;;3218:41:0;;6871:2:1;3218:41:0;;;6853:21:1;6910:2;6890:18;;;6883:30;6949:33;6929:18;;;6922:61;7000:18;;3218:41:0;6843:181:1;2677:594:0;3290:22;3298:4;3304:1;3307;3310;3290:7;:22::i;:::-;3283:29;1828:1492;-1:-1:-1;;;;;;1828:1492:0:o;3459:1432::-;3544:7;4469:66;4455:80;;;4447:127;;;;-1:-1:-1;;;4447:127:0;;9039:2:1;4447:127:0;;;9021:21:1;9078:2;9058:18;;;9051:30;9117:34;9097:18;;;9090:62;-1:-1:-1;;;9168:18:1;;;9161:32;9210:19;;4447:127:0;9011:224:1;4447:127:0;4593:1;:7;;4598:2;4593:7;:18;;;;4604:1;:7;;4609:2;4604:7;4593:18;4585:65;;;;-1:-1:-1;;;4585:65:0;;10211:2:1;4585:65:0;;;10193:21:1;10250:2;10230:18;;;10223:30;10289:34;10269:18;;;10262:62;-1:-1:-1;;;10340:18:1;;;10333:32;10382:19;;4585:65:0;10183:224:1;4585:65:0;4765:24;;;4748:14;4765:24;;;;;;;;;5574:25:1;;;5647:4;5635:17;;5615:18;;;5608:45;;;;5669:18;;;5662:34;;;5712:18;;;5705:34;;;4765:24:0;;5546:19:1;;4765:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4765:24:0;;-1:-1:-1;;4765:24:0;;;-1:-1:-1;;;;;;;4808:20:0;;4800:57;;;;-1:-1:-1;;;4800:57:0;;6178:2:1;4800:57:0;;;6160:21:1;6217:2;6197:18;;;6190:30;6256:26;6236:18;;;6229:54;6300:18;;4800:57:0;6150:174:1;4800:57:0;4877:6;3459:1432;-1:-1:-1;;;;;3459:1432:0:o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;192:738;;287:3;280:4;272:6;268:17;264:27;254:2;;309:5;302;295:20;254:2;349:6;336:20;375:18;412:2;408;405:10;402:2;;;418:18;;:::i;:::-;493:2;487:9;461:2;547:13;;-1:-1:-1;;543:22:1;;;567:2;539:31;535:40;523:53;;;591:18;;;611:22;;;588:46;585:2;;;637:18;;:::i;:::-;677:10;673:2;666:22;712:2;704:6;697:18;758:3;751:4;746:2;738:6;734:15;730:26;727:35;724:2;;;779:5;772;765:20;724:2;847;840:4;832:6;828:17;821:4;813:6;809:17;796:54;870:15;;;887:4;866:26;859:41;;;;-1:-1:-1;874:6:1;244:686;-1:-1:-1;;;244:686:1:o;935:156::-;1001:20;;1061:4;1050:16;;1040:27;;1030:2;;1081:1;1078;1071:12;1096:414;;;1234:2;1222:9;1213:7;1209:23;1205:32;1202:2;;;1255:6;1247;1240:22;1202:2;1283:29;1302:9;1283:29;:::i;:::-;1273:39;;1363:2;1352:9;1348:18;1335:32;1390:18;1382:6;1379:30;1376:2;;;1427:6;1419;1412:22;1376:2;1455:49;1496:7;1487:6;1476:9;1472:22;1455:49;:::i;:::-;1445:59;;;1192:318;;;;;:::o;1515:264::-;;;1644:2;1632:9;1623:7;1619:23;1615:32;1612:2;;;1665:6;1657;1650:22;1612:2;1693:29;1712:9;1693:29;:::i;:::-;1683:39;1769:2;1754:18;;;;1741:32;;-1:-1:-1;;;1602:177:1:o;1784:484::-;;;;1937:2;1925:9;1916:7;1912:23;1908:32;1905:2;;;1958:6;1950;1943:22;1905:2;1986:29;2005:9;1986:29;:::i;:::-;1976:39;;2034:36;2066:2;2055:9;2051:18;2034:36;:::i;:::-;2024:46;;2121:2;2110:9;2106:18;2093:32;2148:18;2140:6;2137:30;2134:2;;;2185:6;2177;2170:22;2134:2;2213:49;2254:7;2245:6;2234:9;2230:22;2213:49;:::i;:::-;2203:59;;;1895:373;;;;;:::o;2273:297::-;;2393:2;2381:9;2372:7;2368:23;2364:32;2361:2;;;2414:6;2406;2399:22;2361:2;2451:9;2445:16;2504:5;2497:13;2490:21;2483:5;2480:32;2470:2;;2531:6;2523;2516:22;2470:2;2559:5;2351:219;-1:-1:-1;;;2351:219:1:o;2575:190::-;;2687:2;2675:9;2666:7;2662:23;2658:32;2655:2;;;2708:6;2700;2693:22;2655:2;-1:-1:-1;2736:23:1;;2645:120;-1:-1:-1;2645:120:1:o;2770:408::-;;;2908:2;2896:9;2887:7;2883:23;2879:32;2876:2;;;2929:6;2921;2914:22;2876:2;2970:9;2957:23;2947:33;;3031:2;3020:9;3016:18;3003:32;3058:18;3050:6;3047:30;3044:2;;;3095:6;3087;3080:22;3183:192;;3293:2;3281:9;3272:7;3268:23;3264:32;3261:2;;;3314:6;3306;3299:22;3261:2;3342:27;3359:9;3342:27;:::i;4787:363::-;-1:-1:-1;;;;;5001:32:1;;;;4983:51;;5082:6;5070:19;;;;5065:2;5050:18;;5043:47;5138:4;5126:17;5121:2;5106:18;;5099:45;4971:2;4956:18;;4938:212::o;6329:335::-;6531:2;6513:21;;;6570:2;6550:18;;;6543:30;-1:-1:-1;;;6604:2:1;6589:18;;6582:41;6655:2;6640:18;;6503:161::o;11726:224::-;;11793:6;11826:2;11823:1;11819:10;11856:2;11853:1;11849:10;11887:3;11883:2;11879:12;11874:3;11871:21;11868:2;;;11895:18;;:::i;:::-;11931:13;;11773:177;-1:-1:-1;;;;11773:177:1:o;11955:217::-;;12021:1;12011:2;;-1:-1:-1;;;12046:31:1;;12100:4;12097:1;12090:15;12128:4;12053:1;12118:15;12011:2;-1:-1:-1;12157:9:1;;12001:171::o;12177:168::-;;12283:1;12279;12275:6;12271:14;12268:1;12265:21;12260:1;12253:9;12246:17;12242:45;12239:2;;;12290:18;;:::i;:::-;-1:-1:-1;12330:9:1;;12229:116::o;12350:125::-;;12418:1;12415;12412:8;12409:2;;;12423:18;;:::i;:::-;-1:-1:-1;12460:9:1;;12399:76::o;12480:127::-;12541:10;12536:3;12532:20;12529:1;12522:31;12572:4;12569:1;12562:15;12596:4;12593:1;12586:15;12612:127;12673:10;12668:3;12664:20;12661:1;12654:31;12704:4;12701:1;12694:15;12728:4;12725:1;12718:15

Swarm Source

ipfs://9d1923e7c74708a41c5d0a8ad7b9bd10d67fbd85fb82b1ef18dc99455fa4385c

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ 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.