POL Price: $0.477943 (-5.05%)
 

Overview

POL Balance

Polygon PoS Chain LogoPolygon PoS Chain LogoPolygon PoS Chain Logo0 POL

POL Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Execute Meta Tra...508889142023-12-08 11:47:37407 days ago1702036057IN
0x1FdC5e69...a8886F661
0 POL0.28378402806.90608104
Execute Meta Tra...508888222023-12-08 11:44:21407 days ago1702035861IN
0x1FdC5e69...a8886F661
0 POL0.22897326739.59206566
Execute Meta Tra...508884832023-12-08 11:32:21407 days ago1702035141IN
0x1FdC5e69...a8886F661
0 POL0.03033538674.37451449
Execute Meta Tra...508883212023-12-08 11:26:37407 days ago1702034797IN
0x1FdC5e69...a8886F661
0 POL0.03176957706.06892526
Execute Meta Tra...508883212023-12-08 11:26:37407 days ago1702034797IN
0x1FdC5e69...a8886F661
0 POL0.03184582706.06892526
Execute Meta Tra...508882812023-12-08 11:25:11407 days ago1702034711IN
0x1FdC5e69...a8886F661
0 POL0.03027614669.18960735
Execute Meta Tra...508882662023-12-08 11:24:39407 days ago1702034679IN
0x1FdC5e69...a8886F661
0 POL0.02937201651.22078217
Execute Meta Tra...508882522023-12-08 11:24:09407 days ago1702034649IN
0x1FdC5e69...a8886F661
0 POL0.02973261660.2699019
Execute Meta Tra...508882492023-12-08 11:24:03407 days ago1702034643IN
0x1FdC5e69...a8886F661
0 POL0.02962438658.21724029
Execute Meta Tra...508882372023-12-08 11:23:37407 days ago1702034617IN
0x1FdC5e69...a8886F661
0 POL0.0295435656.4202749
Execute Meta Tra...508882332023-12-08 11:23:29407 days ago1702034609IN
0x1FdC5e69...a8886F661
0 POL0.0303115669.79361263
Execute Meta Tra...508882292023-12-08 11:23:21407 days ago1702034601IN
0x1FdC5e69...a8886F661
0 POL0.03207535712.29505782
Execute Meta Tra...508882252023-12-08 11:23:13407 days ago1702034593IN
0x1FdC5e69...a8886F661
0 POL0.03228195713.33457941
Execute Meta Tra...508881862023-12-08 11:21:49407 days ago1702034509IN
0x1FdC5e69...a8886F661
0 POL0.37838968789.14538823
Execute Meta Tra...508881672023-12-08 11:21:09407 days ago1702034469IN
0x1FdC5e69...a8886F661
0 POL0.03301832731.67557813
Execute Meta Tra...508881462023-12-08 11:20:25407 days ago1702034425IN
0x1FdC5e69...a8886F661
0 POL0.0383642852.40538893
Execute Meta Tra...508881372023-12-08 11:20:05407 days ago1702034405IN
0x1FdC5e69...a8886F661
0 POL0.03698488819.79141608
Execute Meta Tra...508881082023-12-08 11:19:03407 days ago1702034343IN
0x1FdC5e69...a8886F661
0 POL0.40239919810.33949418
Execute Meta Tra...508880802023-12-08 11:18:05407 days ago1702034285IN
0x1FdC5e69...a8886F661
0 POL0.04161401919.78906639
Execute Meta Tra...508879062023-12-08 11:11:55407 days ago1702033915IN
0x1FdC5e69...a8886F661
0 POL0.32528882918.84047533
Execute Meta Tra...508878742023-12-08 11:10:47407 days ago1702033847IN
0x1FdC5e69...a8886F661
0 POL0.04507413996.00334084
Execute Meta Tra...508878152023-12-08 11:08:41407 days ago1702033721IN
0x1FdC5e69...a8886F661
0 POL0.04052646899.9680653
Execute Meta Tra...508878092023-12-08 11:08:29407 days ago1702033709IN
0x1FdC5e69...a8886F661
0 POL0.04080974904.81218664
Execute Meta Tra...508877772023-12-08 11:07:21407 days ago1702033641IN
0x1FdC5e69...a8886F661
0 POL0.0409157909.09655178
Execute Meta Tra...508877262023-12-08 11:05:31407 days ago1702033531IN
0x1FdC5e69...a8886F661
0 POL0.04050348899.69746908
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
508889142023-12-08 11:47:37407 days ago1702036057
0x1FdC5e69...a8886F661
1.00999835 POL
508889142023-12-08 11:47:37407 days ago1702036057
0x1FdC5e69...a8886F661
1.00999835 POL
508888222023-12-08 11:44:21407 days ago1702035861
0x1FdC5e69...a8886F661
14.1266655 POL
508888222023-12-08 11:44:21407 days ago1702035861
0x1FdC5e69...a8886F661
14.1266655 POL
508881862023-12-08 11:21:49407 days ago1702034509
0x1FdC5e69...a8886F661
5.05284431 POL
508881862023-12-08 11:21:49407 days ago1702034509
0x1FdC5e69...a8886F661
5.05284431 POL
508881082023-12-08 11:19:03407 days ago1702034343
0x1FdC5e69...a8886F661
5.04999833 POL
508881082023-12-08 11:19:03407 days ago1702034343
0x1FdC5e69...a8886F661
5.04999833 POL
508879062023-12-08 11:11:55407 days ago1702033915
0x1FdC5e69...a8886F661
5.04231646 POL
508879062023-12-08 11:11:55407 days ago1702033915
0x1FdC5e69...a8886F661
5.04231646 POL
508876872023-12-08 11:04:09407 days ago1702033449
0x1FdC5e69...a8886F661
5.02154265 POL
508876872023-12-08 11:04:09407 days ago1702033449
0x1FdC5e69...a8886F661
5.02154265 POL
508876762023-12-08 11:03:45407 days ago1702033425
0x1FdC5e69...a8886F661
1.00336096 POL
508876762023-12-08 11:03:45407 days ago1702033425
0x1FdC5e69...a8886F661
1.00336096 POL
508874522023-12-08 10:55:45407 days ago1702032945
0x1FdC5e69...a8886F661
1.00735587 POL
508874522023-12-08 10:55:45407 days ago1702032945
0x1FdC5e69...a8886F661
1.00735587 POL
508874172023-12-08 10:54:31407 days ago1702032871
0x1FdC5e69...a8886F661
1.00999836 POL
508874172023-12-08 10:54:31407 days ago1702032871
0x1FdC5e69...a8886F661
1.00999836 POL
508873702023-12-08 10:52:51407 days ago1702032771
0x1FdC5e69...a8886F661
1.00824117 POL
508873702023-12-08 10:52:51407 days ago1702032771
0x1FdC5e69...a8886F661
1.00824117 POL
508872242023-12-08 10:47:41407 days ago1702032461
0x1FdC5e69...a8886F661
5.04106387 POL
508872242023-12-08 10:47:41407 days ago1702032461
0x1FdC5e69...a8886F661
5.04106387 POL
508825952023-12-08 8:03:13407 days ago1702022593
0x1FdC5e69...a8886F661
5.04954915 POL
508825952023-12-08 8:03:13407 days ago1702022593
0x1FdC5e69...a8886F661
5.04954915 POL
508799592023-12-08 6:29:12407 days ago1702016952
0x1FdC5e69...a8886F661
5.04999803 POL
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GasSwap

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 999 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 3: GasSwap.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.6;

import "./EIP712MetaTransaction.sol";

struct Transformation {
    uint32 _uint32;
    bytes _bytes;
}

interface IERC20 {
    function approve(address spender, uint256 amount) external returns (bool);
    function transfer(address to, uint256 amount) external returns (bool);
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

contract GasSwap is EIP712MetaTransaction("GasSwap", "2") {
    address public owner;
    address public authorizedTarget;

    constructor() {
        owner = msg.sender;
        authorizedTarget = 0xDef1C0ded9bec7F1a1670819833240f027b25EfF;
    }

    modifier onlyOwner() {
        require(msg.sender == owner, "ONLY_OWNER");
        _;
    }

    receive() external payable {
        require(isContract(msgSender()), "REVERT_EOA_DEPOSIT");
    }

    function changeOwner(address newOwner)
        external
        onlyOwner
    {
        owner = newOwner;
    }

    function changeTarget(address newTarget)
        external
        onlyOwner
    {
        require(isContract(newTarget), "NO_CONTRACT_AT_ADDRESS");
        authorizedTarget = newTarget;
    }

    function withdrawToken(IERC20 token, uint256 amount)
        external
        onlyOwner
    {
        require(token.transfer(msg.sender, amount));
    }

    // Transfer ETH held by this contract to the sender/owner.
    function withdrawETH(uint256 amount)
        external
        onlyOwner
    {
        payable(msg.sender).transfer(amount);
    }

    // Swaps ERC20->MATIC tokens held by this contract using a 0x-API quote.
    function fillQuote(address spender, bytes calldata swapCallData) external returns (uint256)
    {
        (address inputToken,address outputToken,uint256 inputAmount,uint256 minOutputAmount,) = abi.decode(swapCallData[4:], (address,address,uint256,uint256,Transformation[]));
        require(outputToken == 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE, "INVALID_OUTPUT_TOKEN");
        IERC20 sellToken = IERC20(inputToken);
        require(sellToken.transferFrom(msgSender(), address(this), inputAmount), "TRANSFER_FAILED");
        require(sellToken.approve(spender, uint256(0)), "APPROVAL_WIPE_FAILED");
        require(sellToken.approve(spender, inputAmount), "REAPPROVAL_FAILED");
        (bool success, bytes memory res) = authorizedTarget.call(swapCallData);
        require(success, string(concat(bytes("SWAP_FAILED: "),bytes(getRevertMsg(res)))));
        uint256 outputTokenAmount = abi.decode(res, (uint256));
        require(outputTokenAmount >= minOutputAmount, "SWAP_VALUE_MISMATCH");
        payable(msgSender()).transfer(outputTokenAmount);
        return outputTokenAmount;
    }

    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function concat(bytes memory a, bytes memory b) internal pure returns (bytes memory) {
        return abi.encodePacked(a, b);
    }

    function getRevertMsg(bytes memory _returnData) internal pure returns (string memory) {
        if (_returnData.length < 68)
            return "Transaction reverted silently";

        assembly {
            _returnData := add(_returnData, 0x04)
        }

        return abi.decode(_returnData, (string));
    }
}

File 2 of 3: EIP712Base.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.6;

contract EIP712Base {

    struct EIP712Domain {
        string name;
        string version;
        address verifyingContract;
        bytes32 salt;
    }

    bytes32 internal constant EIP712_DOMAIN_TYPEHASH = keccak256(bytes("EIP712Domain(string name,string version,address verifyingContract,bytes32 salt)"));

    bytes32 internal domainSeparator;

    constructor(string memory name, string memory version) {
        domainSeparator = keccak256(abi.encode(
            EIP712_DOMAIN_TYPEHASH,
            keccak256(bytes(name)),
            keccak256(bytes(version)),
            address(this),
            bytes32(getChainID())
        ));
    }

    function getChainID() internal view returns (uint256 id) {
        assembly {
            id := chainid()
        }
    }

    function getDomainSeparator() private view returns(bytes32) {
        return domainSeparator;
    }

    /**
    * Accept message hash and returns hash message in EIP712 compatible form
    * So that it can be used to recover signer from signature signed using EIP712 formatted data
    * https://eips.ethereum.org/EIPS/eip-712
    * "\\x19" makes the encoding deterministic
    * "\\x01" is the version byte to make it compatible to EIP-191
    */
    function toTypedMessageHash(bytes32 messageHash) internal view returns(bytes32) {
        return keccak256(abi.encodePacked("\x19\x01", getDomainSeparator(), messageHash));
    }

}

File 3 of 3: EIP712MetaTransaction.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.6;

import "./EIP712Base.sol";

contract EIP712MetaTransaction is EIP712Base {
    bytes32 private constant META_TRANSACTION_TYPEHASH = keccak256(bytes("MetaTransaction(uint256 nonce,address from,bytes functionSignature)"));

    event MetaTransactionExecuted(address userAddress, address payable relayerAddress, bytes functionSignature);
    mapping(address => uint256) private nonces;

    /*
     * Meta transaction structure.
     * No point of including value field here as if user is doing value transfer then he has the funds to pay for gas
     * He should call the desired function directly in that case.
     */
    struct MetaTransaction {
        uint256 nonce;
        address from;
        bytes functionSignature;
    }

    constructor(string memory name, string memory version) EIP712Base(name, version) {}

    function convertBytesToBytes4(bytes memory inBytes) internal pure returns (bytes4 outBytes4) {
        if (inBytes.length == 0) {
            return 0x0;
        }

        assembly {
            outBytes4 := mload(add(inBytes, 32))
        }
    }

    function executeMetaTransaction(address userAddress,
        bytes memory functionSignature, bytes32 sigR, bytes32 sigS, uint8 sigV) public payable returns(bytes memory) {
        bytes4 destinationFunctionSig = convertBytesToBytes4(functionSignature);
        require(destinationFunctionSig != msg.sig, "functionSignature can not be of executeMetaTransaction method");
        MetaTransaction memory metaTx = MetaTransaction({
            nonce: nonces[userAddress],
            from: userAddress,
            functionSignature: functionSignature
        });
        require(verify(userAddress, metaTx, sigR, sigS, sigV), "Signer and signature do not match");
        nonces[userAddress] += 1;
        // Append userAddress at the end to extract it from calling context
        (bool success, bytes memory returnData) = address(this).call(abi.encodePacked(functionSignature, userAddress));

        require(success, "Function call not successful");
        emit MetaTransactionExecuted(userAddress, payable(msg.sender), functionSignature);
        return returnData;
    }

    function hashMetaTransaction(MetaTransaction memory metaTx) internal pure returns (bytes32) {
        return keccak256(abi.encode(
            META_TRANSACTION_TYPEHASH,
            metaTx.nonce,
            metaTx.from,
            keccak256(metaTx.functionSignature)
        ));
    }

    function getNonce(address user) external view returns(uint256 nonce) {
        nonce = nonces[user];
    }

    function verify(address user, MetaTransaction memory metaTx, bytes32 sigR, bytes32 sigS, uint8 sigV) internal view returns (bool) {
        address signer = ecrecover(toTypedMessageHash(hashMetaTransaction(metaTx)), sigV, sigR, sigS);
        require(signer != address(0), "Invalid signature");
        return signer == user;
    }

    function msgSender() internal view returns(address sender) {
        if(msg.sender == address(this)) {
            bytes memory array = msg.data;
            uint256 index = msg.data.length;
            assembly {
                // Load the 32 bytes word from memory with the address on the lower 20 bytes, and mask those.
                sender := and(mload(add(array, index)), 0xffffffffffffffffffffffffffffffffffffffff)
            }
        } else {
            sender = msg.sender;
        }
        return sender;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"address payable","name":"relayerAddress","type":"address"},{"indexed":false,"internalType":"bytes","name":"functionSignature","type":"bytes"}],"name":"MetaTransactionExecuted","type":"event"},{"inputs":[],"name":"authorizedTarget","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTarget","type":"address"}],"name":"changeTarget","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"bytes","name":"functionSignature","type":"bytes"},{"internalType":"bytes32","name":"sigR","type":"bytes32"},{"internalType":"bytes32","name":"sigS","type":"bytes32"},{"internalType":"uint8","name":"sigV","type":"uint8"}],"name":"executeMetaTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"bytes","name":"swapCallData","type":"bytes"}],"name":"fillQuote","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getNonce","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b50604051806040016040528060078152602001660476173537761760cc1b815250604051806040016040528060018152602001601960f91b81525081816040518060800160405280604f81526020016116db604f913980519060200120828051906020012082805190602001203061008c61011560201b60201c565b60408051602081019690965285019390935260608401919091526001600160a01b0316608083015260a082015260c00160408051601f1981840301815291905280516020909101206000555050600280546001600160a01b031990811633179091556003805490911673def1c0ded9bec7f1a1670819833240f027b25eff179055506101199050565b4690565b6115b3806101286000396000f3fe60806040526004361061009a5760003560e01c80638da5cb5b11610069578063a6f9dae11161004e578063a6f9dae114610209578063dcf7bb5c14610229578063f14210a61461024957600080fd5b80638da5cb5b146101c95780639e281a98146101e957600080fd5b806303e7c56b146101085780630c53c51c146101455780632d0335ab1461016557806370ca1d14146101a957600080fd5b36610103576100b06100aa610269565b3b151590565b6101015760405162461bcd60e51b815260206004820152601260248201527f5245564552545f454f415f4445504f534954000000000000000000000000000060448201526064015b60405180910390fd5b005b600080fd5b34801561011457600080fd5b50600354610128906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b610158610153366004611198565b6102c6565b60405161013c91906113f7565b34801561017157600080fd5b5061019b610180366004610f6f565b6001600160a01b031660009081526001602052604090205490565b60405190815260200161013c565b3480156101b557600080fd5b5061019b6101c4366004611113565b610562565b3480156101d557600080fd5b50600254610128906001600160a01b031681565b3480156101f557600080fd5b50610101610204366004611238565b610a28565b34801561021557600080fd5b50610101610224366004610f6f565b610b15565b34801561023557600080fd5b50610101610244366004610f6f565b610b8b565b34801561025557600080fd5b506101016102643660046112db565b610c4f565b6000333014156102c057600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b031691506102c39050565b50335b90565b606060006102d386610cc3565b90506000357fffffffff0000000000000000000000000000000000000000000000000000000090811690821614156103735760405162461bcd60e51b815260206004820152603d60248201527f66756e6374696f6e5369676e61747572652063616e206e6f74206265206f662060448201527f657865637574654d6574615472616e73616374696f6e206d6574686f6400000060648201526084016100f8565b604080516060810182526001600160a01b038916600081815260016020908152908490205483528201529081018790526103b08882888888610cdf565b6104225760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d61746360448201527f680000000000000000000000000000000000000000000000000000000000000060648201526084016100f8565b6001600160a01b0388166000908152600160208190526040822080549192909161044d9084906114b6565b90915550506040516000908190309061046c908b908d90602001611365565b60408051601f198184030181529082905261048691611349565b6000604051808303816000865af19150503d80600081146104c3576040519150601f19603f3d011682016040523d82523d6000602084013e6104c8565b606091505b50915091508161051a5760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c0000000060448201526064016100f8565b7f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b8a338b60405161054d939291906113cb565b60405180910390a19998505050505050505050565b600080808080610575866004818a61148c565b8101906105829190610f93565b509350935093509350826001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b0316146106005760405162461bcd60e51b815260206004820152601460248201527f494e56414c49445f4f55545055545f544f4b454e00000000000000000000000060448201526064016100f8565b836001600160a01b0381166323b872dd610618610269565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015230602482015260448101869052606401602060405180830381600087803b15801561067e57600080fd5b505af1158015610692573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b69190611216565b6107025760405162461bcd60e51b815260206004820152600f60248201527f5452414e534645525f4641494c4544000000000000000000000000000000000060448201526064016100f8565b60405163095ea7b360e01b81526001600160a01b038a811660048301526000602483015282169063095ea7b390604401602060405180830381600087803b15801561074c57600080fd5b505af1158015610760573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107849190611216565b6107d05760405162461bcd60e51b815260206004820152601460248201527f415050524f56414c5f574950455f4641494c454400000000000000000000000060448201526064016100f8565b60405163095ea7b360e01b81526001600160a01b038a811660048301526024820185905282169063095ea7b390604401602060405180830381600087803b15801561081a57600080fd5b505af115801561082e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108529190611216565b61089e5760405162461bcd60e51b815260206004820152601160248201527f5245415050524f56414c5f4641494c454400000000000000000000000000000060448201526064016100f8565b60035460405160009182916001600160a01b03909116906108c2908c908c90611339565b6000604051808303816000865af19150503d80600081146108ff576040519150601f19603f3d011682016040523d82523d6000602084013e610904565b606091505b5091509150816109516040518060400160405280600d81526020017f535741505f4641494c45443a200000000000000000000000000000000000000081525061094c84610dc7565b610e2c565b9061096f5760405162461bcd60e51b81526004016100f891906113f7565b5060008180602001905181019061098691906112f4565b9050848110156109d85760405162461bcd60e51b815260206004820152601360248201527f535741505f56414c55455f4d49534d415443480000000000000000000000000060448201526064016100f8565b6109e0610269565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610a18573d6000803e3d6000fd5b509b9a5050505050505050505050565b6002546001600160a01b03163314610a6f5760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b60448201526064016100f8565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290526001600160a01b0383169063a9059cbb90604401602060405180830381600087803b158015610ad057600080fd5b505af1158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190611216565b610b1157600080fd5b5050565b6002546001600160a01b03163314610b5c5760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b60448201526064016100f8565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6002546001600160a01b03163314610bd25760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b60448201526064016100f8565b803b610c205760405162461bcd60e51b815260206004820152601660248201527f4e4f5f434f4e54524143545f41545f414444524553530000000000000000000060448201526064016100f8565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6002546001600160a01b03163314610c965760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b60448201526064016100f8565b604051339082156108fc029083906000818181858888f19350505050158015610b11573d6000803e3d6000fd5b6000815160001415610cd757506000919050565b506020015190565b6000806001610cf5610cf088610e58565b610ed5565b6040805160008152602081018083529290925260ff861690820152606081018790526080810186905260a0016020604051602081039080840390855afa158015610d43573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610da65760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e617475726500000000000000000000000000000060448201526064016100f8565b866001600160a01b0316816001600160a01b03161491505095945050505050565b6060604482511015610e0c57505060408051808201909152601d81527f5472616e73616374696f6e2072657665727465642073696c656e746c79000000602082015290565b60048201915081806020019051810190610e269190611264565b92915050565b60608282604051602001610e4192919061139c565b604051602081830303815290604052905092915050565b600060405180608001604052806043815260200161153b6043913980516020918201208351848301516040808701518051908601209051610eb8950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b600080546040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281019190915260428101839052606201610eb8565b600082601f830112610f2a57600080fd5b8135610f3d610f3882611464565b611433565b818152846020838601011115610f5257600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215610f8157600080fd5b8135610f8c81611522565b9392505050565b600080600080600060a08688031215610fab57600080fd5b610fb58635611522565b85359450610fc66020870135611522565b60208601359350604086013592506060860135915067ffffffffffffffff60808701351115610ff457600080fd5b6080860135860187601f82011261100a57600080fd5b67ffffffffffffffff813511156110235761102361150c565b6110336020823560051b01611433565b8082358252602082019150602083018a6020853560051b860101111561105857600080fd5b60005b84358110156111015767ffffffffffffffff8235111561107a57600080fd5b813585016040818e03601f1901121561109257600080fd5b61109a61140a565b602082013563ffffffff8116146110b057600080fd5b6020820135815267ffffffffffffffff604083013511156110d057600080fd5b6110e38e60206040850135850101610f19565b6020828101919091529086529485019492909201915060010161105b565b50508093505050509295509295909350565b60008060006040848603121561112857600080fd5b833561113381611522565b9250602084013567ffffffffffffffff8082111561115057600080fd5b818601915086601f83011261116457600080fd5b81358181111561117357600080fd5b87602082850101111561118557600080fd5b6020830194508093505050509250925092565b600080600080600060a086880312156111b057600080fd5b85356111bb81611522565b9450602086013567ffffffffffffffff8111156111d757600080fd5b6111e388828901610f19565b9450506040860135925060608601359150608086013560ff8116811461120857600080fd5b809150509295509295909350565b60006020828403121561122857600080fd5b81518015158114610f8c57600080fd5b6000806040838503121561124b57600080fd5b823561125681611522565b946020939093013593505050565b60006020828403121561127657600080fd5b815167ffffffffffffffff81111561128d57600080fd5b8201601f8101841361129e57600080fd5b80516112ac610f3882611464565b8181528560208385010111156112c157600080fd5b6112d28260208301602086016114dc565b95945050505050565b6000602082840312156112ed57600080fd5b5035919050565b60006020828403121561130657600080fd5b5051919050565b600081518084526113258160208601602086016114dc565b601f01601f19169290920160200192915050565b8183823760009101908152919050565b6000825161135b8184602087016114dc565b9190910192915050565b600083516113778184602088016114dc565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b600083516113ae8184602088016114dc565b8351908301906113c28183602088016114dc565b01949350505050565b60006001600160a01b038086168352808516602084015250606060408301526112d2606083018461130d565b602081526000610f8c602083018461130d565b6040805190810167ffffffffffffffff8111828210171561142d5761142d61150c565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561145c5761145c61150c565b604052919050565b600067ffffffffffffffff82111561147e5761147e61150c565b50601f01601f191660200190565b6000808585111561149c57600080fd5b838611156114a957600080fd5b5050820193919092039150565b600082198211156114d757634e487b7160e01b600052601160045260246000fd5b500190565b60005b838110156114f75781810151838201526020016114df565b83811115611506576000848401525b50505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461153757600080fd5b5056fe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529a264697066735822122071ed022bfcffe48993c4c21687711f39a825625503c465072af9768cc9db437464736f6c63430008060033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c7429

Deployed Bytecode

0x60806040526004361061009a5760003560e01c80638da5cb5b11610069578063a6f9dae11161004e578063a6f9dae114610209578063dcf7bb5c14610229578063f14210a61461024957600080fd5b80638da5cb5b146101c95780639e281a98146101e957600080fd5b806303e7c56b146101085780630c53c51c146101455780632d0335ab1461016557806370ca1d14146101a957600080fd5b36610103576100b06100aa610269565b3b151590565b6101015760405162461bcd60e51b815260206004820152601260248201527f5245564552545f454f415f4445504f534954000000000000000000000000000060448201526064015b60405180910390fd5b005b600080fd5b34801561011457600080fd5b50600354610128906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b610158610153366004611198565b6102c6565b60405161013c91906113f7565b34801561017157600080fd5b5061019b610180366004610f6f565b6001600160a01b031660009081526001602052604090205490565b60405190815260200161013c565b3480156101b557600080fd5b5061019b6101c4366004611113565b610562565b3480156101d557600080fd5b50600254610128906001600160a01b031681565b3480156101f557600080fd5b50610101610204366004611238565b610a28565b34801561021557600080fd5b50610101610224366004610f6f565b610b15565b34801561023557600080fd5b50610101610244366004610f6f565b610b8b565b34801561025557600080fd5b506101016102643660046112db565b610c4f565b6000333014156102c057600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b031691506102c39050565b50335b90565b606060006102d386610cc3565b90506000357fffffffff0000000000000000000000000000000000000000000000000000000090811690821614156103735760405162461bcd60e51b815260206004820152603d60248201527f66756e6374696f6e5369676e61747572652063616e206e6f74206265206f662060448201527f657865637574654d6574615472616e73616374696f6e206d6574686f6400000060648201526084016100f8565b604080516060810182526001600160a01b038916600081815260016020908152908490205483528201529081018790526103b08882888888610cdf565b6104225760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d61746360448201527f680000000000000000000000000000000000000000000000000000000000000060648201526084016100f8565b6001600160a01b0388166000908152600160208190526040822080549192909161044d9084906114b6565b90915550506040516000908190309061046c908b908d90602001611365565b60408051601f198184030181529082905261048691611349565b6000604051808303816000865af19150503d80600081146104c3576040519150601f19603f3d011682016040523d82523d6000602084013e6104c8565b606091505b50915091508161051a5760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c0000000060448201526064016100f8565b7f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b8a338b60405161054d939291906113cb565b60405180910390a19998505050505050505050565b600080808080610575866004818a61148c565b8101906105829190610f93565b509350935093509350826001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b0316146106005760405162461bcd60e51b815260206004820152601460248201527f494e56414c49445f4f55545055545f544f4b454e00000000000000000000000060448201526064016100f8565b836001600160a01b0381166323b872dd610618610269565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015230602482015260448101869052606401602060405180830381600087803b15801561067e57600080fd5b505af1158015610692573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b69190611216565b6107025760405162461bcd60e51b815260206004820152600f60248201527f5452414e534645525f4641494c4544000000000000000000000000000000000060448201526064016100f8565b60405163095ea7b360e01b81526001600160a01b038a811660048301526000602483015282169063095ea7b390604401602060405180830381600087803b15801561074c57600080fd5b505af1158015610760573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107849190611216565b6107d05760405162461bcd60e51b815260206004820152601460248201527f415050524f56414c5f574950455f4641494c454400000000000000000000000060448201526064016100f8565b60405163095ea7b360e01b81526001600160a01b038a811660048301526024820185905282169063095ea7b390604401602060405180830381600087803b15801561081a57600080fd5b505af115801561082e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108529190611216565b61089e5760405162461bcd60e51b815260206004820152601160248201527f5245415050524f56414c5f4641494c454400000000000000000000000000000060448201526064016100f8565b60035460405160009182916001600160a01b03909116906108c2908c908c90611339565b6000604051808303816000865af19150503d80600081146108ff576040519150601f19603f3d011682016040523d82523d6000602084013e610904565b606091505b5091509150816109516040518060400160405280600d81526020017f535741505f4641494c45443a200000000000000000000000000000000000000081525061094c84610dc7565b610e2c565b9061096f5760405162461bcd60e51b81526004016100f891906113f7565b5060008180602001905181019061098691906112f4565b9050848110156109d85760405162461bcd60e51b815260206004820152601360248201527f535741505f56414c55455f4d49534d415443480000000000000000000000000060448201526064016100f8565b6109e0610269565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610a18573d6000803e3d6000fd5b509b9a5050505050505050505050565b6002546001600160a01b03163314610a6f5760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b60448201526064016100f8565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290526001600160a01b0383169063a9059cbb90604401602060405180830381600087803b158015610ad057600080fd5b505af1158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190611216565b610b1157600080fd5b5050565b6002546001600160a01b03163314610b5c5760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b60448201526064016100f8565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6002546001600160a01b03163314610bd25760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b60448201526064016100f8565b803b610c205760405162461bcd60e51b815260206004820152601660248201527f4e4f5f434f4e54524143545f41545f414444524553530000000000000000000060448201526064016100f8565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6002546001600160a01b03163314610c965760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b60448201526064016100f8565b604051339082156108fc029083906000818181858888f19350505050158015610b11573d6000803e3d6000fd5b6000815160001415610cd757506000919050565b506020015190565b6000806001610cf5610cf088610e58565b610ed5565b6040805160008152602081018083529290925260ff861690820152606081018790526080810186905260a0016020604051602081039080840390855afa158015610d43573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610da65760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e617475726500000000000000000000000000000060448201526064016100f8565b866001600160a01b0316816001600160a01b03161491505095945050505050565b6060604482511015610e0c57505060408051808201909152601d81527f5472616e73616374696f6e2072657665727465642073696c656e746c79000000602082015290565b60048201915081806020019051810190610e269190611264565b92915050565b60608282604051602001610e4192919061139c565b604051602081830303815290604052905092915050565b600060405180608001604052806043815260200161153b6043913980516020918201208351848301516040808701518051908601209051610eb8950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b600080546040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281019190915260428101839052606201610eb8565b600082601f830112610f2a57600080fd5b8135610f3d610f3882611464565b611433565b818152846020838601011115610f5257600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215610f8157600080fd5b8135610f8c81611522565b9392505050565b600080600080600060a08688031215610fab57600080fd5b610fb58635611522565b85359450610fc66020870135611522565b60208601359350604086013592506060860135915067ffffffffffffffff60808701351115610ff457600080fd5b6080860135860187601f82011261100a57600080fd5b67ffffffffffffffff813511156110235761102361150c565b6110336020823560051b01611433565b8082358252602082019150602083018a6020853560051b860101111561105857600080fd5b60005b84358110156111015767ffffffffffffffff8235111561107a57600080fd5b813585016040818e03601f1901121561109257600080fd5b61109a61140a565b602082013563ffffffff8116146110b057600080fd5b6020820135815267ffffffffffffffff604083013511156110d057600080fd5b6110e38e60206040850135850101610f19565b6020828101919091529086529485019492909201915060010161105b565b50508093505050509295509295909350565b60008060006040848603121561112857600080fd5b833561113381611522565b9250602084013567ffffffffffffffff8082111561115057600080fd5b818601915086601f83011261116457600080fd5b81358181111561117357600080fd5b87602082850101111561118557600080fd5b6020830194508093505050509250925092565b600080600080600060a086880312156111b057600080fd5b85356111bb81611522565b9450602086013567ffffffffffffffff8111156111d757600080fd5b6111e388828901610f19565b9450506040860135925060608601359150608086013560ff8116811461120857600080fd5b809150509295509295909350565b60006020828403121561122857600080fd5b81518015158114610f8c57600080fd5b6000806040838503121561124b57600080fd5b823561125681611522565b946020939093013593505050565b60006020828403121561127657600080fd5b815167ffffffffffffffff81111561128d57600080fd5b8201601f8101841361129e57600080fd5b80516112ac610f3882611464565b8181528560208385010111156112c157600080fd5b6112d28260208301602086016114dc565b95945050505050565b6000602082840312156112ed57600080fd5b5035919050565b60006020828403121561130657600080fd5b5051919050565b600081518084526113258160208601602086016114dc565b601f01601f19169290920160200192915050565b8183823760009101908152919050565b6000825161135b8184602087016114dc565b9190910192915050565b600083516113778184602088016114dc565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b600083516113ae8184602088016114dc565b8351908301906113c28183602088016114dc565b01949350505050565b60006001600160a01b038086168352808516602084015250606060408301526112d2606083018461130d565b602081526000610f8c602083018461130d565b6040805190810167ffffffffffffffff8111828210171561142d5761142d61150c565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561145c5761145c61150c565b604052919050565b600067ffffffffffffffff82111561147e5761147e61150c565b50601f01601f191660200190565b6000808585111561149c57600080fd5b838611156114a957600080fd5b5050820193919092039150565b600082198211156114d757634e487b7160e01b600052601160045260246000fd5b500190565b60005b838110156114f75781810151838201526020016114df565b83811115611506576000848401525b50505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461153757600080fd5b5056fe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529a264697066735822122071ed022bfcffe48993c4c21687711f39a825625503c465072af9768cc9db437464736f6c63430008060033

Deployed Bytecode Sourcemap

430:2950:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;826:23;837:11;:9;:11::i;:::-;2861:20;2907:8;;;2732:190;826:23;818:54;;;;-1:-1:-1;;;818:54:2;;14170:2:3;818:54:2;;;14152:21:3;14209:2;14189:18;;;14182:30;14248:20;14228:18;;;14221:48;14286:18;;818:54:2;;;;;;;;;430:2950;;;;;520:31;;;;;;;;;;-1:-1:-1;520:31:2;;;;-1:-1:-1;;;;;520:31:2;;;;;;-1:-1:-1;;;;;8167:55:3;;;8149:74;;8137:2;8122:18;520:31:2;;;;;;;;1135:1073:1;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2506:106::-;;;;;;;;;;-1:-1:-1;2506:106:1;;;;;:::i;:::-;-1:-1:-1;;;;;2593:12:1;2560:13;2593:12;;;:6;:12;;;;;;;2506:106;;;;15146:25:3;;;15134:2;15119:18;2506:106:1;15101:76:3;1632:1094:2;;;;;;;;;;-1:-1:-1;1632:1094:2;;;;;:::i;:::-;;:::i;494:20::-;;;;;;;;;;-1:-1:-1;494:20:2;;;;-1:-1:-1;;;;;494:20:2;;;1199:152;;;;;;;;;;-1:-1:-1;1199:152:2;;;;;:::i;:::-;;:::i;885:111::-;;;;;;;;;;-1:-1:-1;885:111:2;;;;;:::i;:::-;;:::i;1002:191::-;;;;;;;;;;-1:-1:-1;1002:191:2;;;;;:::i;:::-;;:::i;1420:129::-;;;;;;;;;;-1:-1:-1;1420:129:2;;;;;:::i;:::-;;:::i;2955:526:1:-;2998:14;3027:10;3049:4;3027:27;3024:428;;;3070:18;3091:8;;3070:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;3129:8:1;3315:17;3309:24;-1:-1:-1;;;;;3305:73:1;;-1:-1:-1;3024:428:1;;-1:-1:-1;3024:428:1;;-1:-1:-1;3431:10:1;3024:428;2955:526;:::o;1135:1073::-;1291:12;1315:29;1347:39;1368:17;1347:20;:39::i;:::-;1315:71;-1:-1:-1;1430:7:1;;;;;;1404:33;;;;;1396:107;;;;-1:-1:-1;;;1396:107:1;;11251:2:3;1396:107:1;;;11233:21:3;11290:2;11270:18;;;11263:30;11329:34;11309:18;;;11302:62;11400:31;11380:18;;;11373:59;11449:19;;1396:107:1;11223:251:3;1396:107:1;1545:148;;;;;;;;-1:-1:-1;;;;;1582:19:1;;1513:29;1582:19;;;:6;:19;;;;;;;;;1545:148;;;;;;;;;;;1711:45;1589:11;1545:148;1739:4;1745;1751;1711:6;:45::i;:::-;1703:91;;;;-1:-1:-1;;;1703:91:1;;13768:2:3;1703:91:1;;;13750:21:3;13807:2;13787:18;;;13780:30;13846:34;13826:18;;;13819:62;13917:3;13897:18;;;13890:31;13938:19;;1703:91:1;13740:223:3;1703:91:1;-1:-1:-1;;;;;1804:19:1;;;;;;1827:1;1804:19;;;;;;;:24;;1827:1;;1804:19;;:24;;1827:1;;1804:24;:::i;:::-;;;;-1:-1:-1;;1975:48:1;;1915:12;;;;1964:4;;1975:48;;1992:17;;2011:11;;1975:48;;;:::i;:::-;;;;-1:-1:-1;;1975:48:1;;;;;;;;;;1956:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1914:110;;;;2043:7;2035:48;;;;-1:-1:-1;;;2035:48:1;;10894:2:3;2035:48:1;;;10876:21:3;10933:2;10913:18;;;10906:30;10972;10952:18;;;10945:58;11020:18;;2035:48:1;10866:178:3;2035:48:1;2098:76;2122:11;2143:10;2156:17;2098:76;;;;;;;;:::i;:::-;;;;;;;;2191:10;1135:1073;-1:-1:-1;;;;;;;;;1135:1073:1:o;1632:1094:2:-;1715:7;;;;;1837:16;:12;1850:1;1837:12;;:16;:::i;:::-;1826:80;;;;;;;:::i;:::-;1738:168;;;;;;;;;1924:11;-1:-1:-1;;;;;1924:57:2;1939:42;-1:-1:-1;;;;;1924:57:2;;1916:90;;;;-1:-1:-1;;;1916:90:2;;11681:2:3;1916:90:2;;;11663:21:3;11720:2;11700:18;;;11693:30;11759:22;11739:18;;;11732:50;11799:18;;1916:90:2;11653:170:3;1916:90:2;2042:10;-1:-1:-1;;;;;2071:22:2;;;2094:11;:9;:11::i;:::-;2071:63;;;;;;;;;;-1:-1:-1;;;;;8974:15:3;;;2071:63:2;;;8956:34:3;2115:4:2;9006:18:3;;;8999:43;9058:18;;;9051:34;;;8868:18;;2071:63:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2063:91;;;;-1:-1:-1;;;2063:91:2;;13424:2:3;2063:91:2;;;13406:21:3;13463:2;13443:18;;;13436:30;13502:17;13482:18;;;13475:45;13537:18;;2063:91:2;13396:165:3;2063:91:2;2172:38;;-1:-1:-1;;;2172:38:2;;-1:-1:-1;;;;;9288:55:3;;;2172:38:2;;;9270:74:3;2207:1:2;9360:18:3;;;9353:34;2172:17:2;;;;;9243:18:3;;2172:38:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2164:71;;;;-1:-1:-1;;;2164:71:2;;13075:2:3;2164:71:2;;;13057:21:3;13114:2;13094:18;;;13087:30;13153:22;13133:18;;;13126:50;13193:18;;2164:71:2;13047:170:3;2164:71:2;2253:39;;-1:-1:-1;;;2253:39:2;;-1:-1:-1;;;;;9288:55:3;;;2253:39:2;;;9270:74:3;9360:18;;;9353:34;;;2253:17:2;;;;;9243:18:3;;2253:39:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2245:69;;;;-1:-1:-1;;;2245:69:2;;14517:2:3;2245:69:2;;;14499:21:3;14556:2;14536:18;;;14529:30;14595:19;14575:18;;;14568:47;14632:18;;2245:69:2;14489:167:3;2245:69:2;2359:16;;:35;;2325:12;;;;-1:-1:-1;;;;;2359:16:2;;;;:35;;2381:12;;;;2359:35;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2324:70;;;;2412:7;2428:55;2435:22;;;;;;;;;;;;;;;;;2464:17;2477:3;2464:12;:17::i;:::-;2428:6;:55::i;:::-;2404:81;;;;;-1:-1:-1;;;2404:81:2;;;;;;;;:::i;:::-;;2495:25;2534:3;2523:26;;;;;;;;;;;;:::i;:::-;2495:54;;2588:15;2567:17;:36;;2559:68;;;;-1:-1:-1;;;2559:68:2;;12376:2:3;2559:68:2;;;12358:21:3;12415:2;12395:18;;;12388:30;12454:21;12434:18;;;12427:49;12493:18;;2559:68:2;12348:169:3;2559:68:2;2645:11;:9;:11::i;:::-;-1:-1:-1;;;;;2637:29:2;:48;2667:17;2637:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2702:17:2;1632:1094;-1:-1:-1;;;;;;;;;;;1632:1094:2:o;1199:152::-;737:5;;-1:-1:-1;;;;;737:5:2;723:10;:19;715:42;;;;-1:-1:-1;;;715:42:2;;14863:2:3;715:42:2;;;14845:21:3;14902:2;14882:18;;;14875:30;-1:-1:-1;;;14921:18:3;;;14914:40;14971:18;;715:42:2;14835:160:3;715:42:2;1309:34:::1;::::0;;;;1324:10:::1;1309:34;::::0;::::1;9270:74:3::0;9360:18;;;9353:34;;;-1:-1:-1;;;;;1309:14:2;::::1;::::0;::::1;::::0;9243:18:3;;1309:34:2::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1301:43;;;::::0;::::1;;1199:152:::0;;:::o;885:111::-;737:5;;-1:-1:-1;;;;;737:5:2;723:10;:19;715:42;;;;-1:-1:-1;;;715:42:2;;14863:2:3;715:42:2;;;14845:21:3;14902:2;14882:18;;;14875:30;-1:-1:-1;;;14921:18:3;;;14914:40;14971:18;;715:42:2;14835:160:3;715:42:2;973:5:::1;:16:::0;;-1:-1:-1;;973:16:2::1;-1:-1:-1::0;;;;;973:16:2;;;::::1;::::0;;;::::1;::::0;;885:111::o;1002:191::-;737:5;;-1:-1:-1;;;;;737:5:2;723:10;:19;715:42;;;;-1:-1:-1;;;715:42:2;;14863:2:3;715:42:2;;;14845:21:3;14902:2;14882:18;;;14875:30;-1:-1:-1;;;14921:18:3;;;14914:40;14971:18;;715:42:2;14835:160:3;715:42:2;2861:20;;1092:56:::1;;;::::0;-1:-1:-1;;;1092:56:2;;12724:2:3;1092:56:2::1;::::0;::::1;12706:21:3::0;12763:2;12743:18;;;12736:30;12802:24;12782:18;;;12775:52;12844:18;;1092:56:2::1;12696:172:3::0;1092:56:2::1;1158:16;:28:::0;;-1:-1:-1;;1158:28:2::1;-1:-1:-1::0;;;;;1158:28:2;;;::::1;::::0;;;::::1;::::0;;1002:191::o;1420:129::-;737:5;;-1:-1:-1;;;;;737:5:2;723:10;:19;715:42;;;;-1:-1:-1;;;715:42:2;;14863:2:3;715:42:2;;;14845:21:3;14902:2;14882:18;;;14875:30;-1:-1:-1;;;14921:18:3;;;14914:40;14971:18;;715:42:2;14835:160:3;715:42:2;1506:36:::1;::::0;1514:10:::1;::::0;1506:36;::::1;;;::::0;1535:6;;1506:36:::1;::::0;;;1535:6;1514:10;1506:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;881:248:1::0;956:16;988:7;:14;1006:1;988:19;984:60;;;-1:-1:-1;1030:3:1;;881:248;-1:-1:-1;881:248:1:o;984:60::-;-1:-1:-1;1109:2:1;1096:16;1090:23;;881:248::o;2618:331::-;2742:4;2758:14;2775:76;2785:47;2804:27;2824:6;2804:19;:27::i;:::-;2785:18;:47::i;:::-;2775:76;;;;;;;;;;;;10070:25:3;;;;10143:4;10131:17;;10111:18;;;10104:45;10165:18;;;10158:34;;;10208:18;;;10201:34;;;10042:19;;2775:76:1;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2775:76:1;;-1:-1:-1;;2775:76:1;;;-1:-1:-1;;;;;;;2869:20:1;;2861:50;;;;-1:-1:-1;;;2861:50:1;;12030:2:3;2861:50:1;;;12012:21:3;12069:2;12049:18;;;12042:30;12108:19;12088:18;;;12081:47;12145:18;;2861:50:1;12002:167:3;2861:50:1;2938:4;-1:-1:-1;;;;;2928:14:1;:6;-1:-1:-1;;;;;2928:14:1;;2921:21;;;2618:331;;;;;;;:::o;3065:313:2:-;3136:13;3186:2;3165:11;:18;:23;3161:79;;;-1:-1:-1;;3202:38:2;;;;;;;;;;;;;;;;;;3065:313::o;3161:79::-;3306:4;3293:11;3289:22;3274:37;;3349:11;3338:33;;;;;;;;;;;;:::i;:::-;3331:40;3065:313;-1:-1:-1;;3065:313:2:o;2928:131::-;2999:12;3047:1;3050;3030:22;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3023:29;;2928:131;;;;:::o;2214:286:1:-;2297:7;198:76;;;;;;;;;;;;;;;;;188:87;;;;;;;2396:12;;2422:11;;;;2457:24;;;;;2447:35;;;;;;2333:159;;;;;9629:25:3;;;9685:2;9670:18;;9663:34;;;;-1:-1:-1;;;;;9733:55:3;9728:2;9713:18;;9706:83;9820:2;9805:18;;9798:34;9616:3;9601:19;;9583:255;2333:159:1;;;;;;;;;;;;;2323:170;;;;;;2316:177;;2214:286;;;:::o;1294:178:0:-;1365:7;918:15;;1401:63;;7824:66:3;1401:63:0;;;7812:79:3;7907:11;;;7900:27;;;;7943:12;;;7936:28;;;7980:12;;1401:63:0;7802:196:3;14:462;56:5;109:3;102:4;94:6;90:17;86:27;76:2;;127:1;124;117:12;76:2;163:6;150:20;194:48;210:31;238:2;210:31;:::i;:::-;194:48;:::i;:::-;267:2;258:7;251:19;313:3;306:4;301:2;293:6;289:15;285:26;282:35;279:2;;;330:1;327;320:12;279:2;395;388:4;380:6;376:17;369:4;360:7;356:18;343:55;443:1;418:16;;;436:4;414:27;407:38;;;;422:7;66:410;-1:-1:-1;;;66:410:3:o;481:247::-;540:6;593:2;581:9;572:7;568:23;564:32;561:2;;;609:1;606;599:12;561:2;648:9;635:23;667:31;692:5;667:31;:::i;:::-;717:5;551:177;-1:-1:-1;;;551:177:3:o;733:1984::-;900:6;908;916;924;932;985:3;973:9;964:7;960:23;956:33;953:2;;;1002:1;999;992:12;953:2;1015:49;1053:9;1040:23;1015:49;:::i;:::-;1096:9;1083:23;1073:33;;1115:58;1168:2;1157:9;1153:18;1140:32;1115:58;:::i;:::-;1220:2;1209:9;1205:18;1192:32;1182:42;;1271:2;1260:9;1256:18;1243:32;1233:42;;1322:2;1311:9;1307:18;1294:32;1284:42;;1376:18;1369:3;1358:9;1354:19;1341:33;1338:57;1335:2;;;1408:1;1405;1398:12;1335:2;1474:3;1463:9;1459:19;1446:33;1435:9;1431:49;1518:7;1511:4;1507:2;1503:13;1499:27;1489:2;;1540:1;1537;1530:12;1489:2;1577:18;1572:2;1559:16;1556:40;1553:2;;;1599:18;;:::i;:::-;1639:50;1685:2;1679;1666:16;1663:1;1659:24;1655:33;1639:50;:::i;:::-;1711:3;1748:2;1735:16;1730:3;1723:29;1777:2;1772:3;1768:12;1761:19;;1808:2;1804;1800:11;1870:7;1865:2;1858;1845:16;1842:1;1838:24;1834:2;1830:33;1826:42;1823:55;1820:2;;;1891:1;1888;1881:12;1820:2;1913:1;1923:764;1950:2;1937:16;1934:1;1931:23;1923:764;;;2021:18;2015:3;2002:17;1999:41;1996:2;;;2053:1;2050;2043:12;1996:2;2088:17;;2080:26;;2158:2;2130:16;;;-1:-1:-1;;2126:30:3;2122:39;2119:2;;;2174:1;2171;2164:12;2119:2;2204:22;;:::i;:::-;2304:2;2296:11;;2283:25;2310:10;2279:42;;2249:73;2239:2;;2336:1;2333;2326:12;2239:2;2388;2384;2380:11;2367:25;2360:5;2353:40;2439:18;2433:2;2429;2425:11;2412:25;2409:49;2406:2;;;2471:1;2468;2461:12;2406:2;2511:70;2573:7;2568:2;2561;2557;2553:11;2540:25;2536:2;2532:34;2528:43;2511:70;:::i;:::-;2506:2;2495:14;;;2488:94;;;;2595:18;;;2633:12;;;;2665;;;;;-1:-1:-1;1969:1:3;1962:9;1923:764;;;1927:3;;2706:5;2696:15;;;;;943:1774;;;;;;;;:::o;2722:726::-;2801:6;2809;2817;2870:2;2858:9;2849:7;2845:23;2841:32;2838:2;;;2886:1;2883;2876:12;2838:2;2925:9;2912:23;2944:31;2969:5;2944:31;:::i;:::-;2994:5;-1:-1:-1;3050:2:3;3035:18;;3022:32;3073:18;3103:14;;;3100:2;;;3130:1;3127;3120:12;3100:2;3168:6;3157:9;3153:22;3143:32;;3213:7;3206:4;3202:2;3198:13;3194:27;3184:2;;3235:1;3232;3225:12;3184:2;3275;3262:16;3301:2;3293:6;3290:14;3287:2;;;3317:1;3314;3307:12;3287:2;3362:7;3357:2;3348:6;3344:2;3340:15;3336:24;3333:37;3330:2;;;3383:1;3380;3373:12;3330:2;3414;3410;3406:11;3396:21;;3436:6;3426:16;;;;;2828:620;;;;;:::o;3453:758::-;3555:6;3563;3571;3579;3587;3640:3;3628:9;3619:7;3615:23;3611:33;3608:2;;;3657:1;3654;3647:12;3608:2;3696:9;3683:23;3715:31;3740:5;3715:31;:::i;:::-;3765:5;-1:-1:-1;3821:2:3;3806:18;;3793:32;3848:18;3837:30;;3834:2;;;3880:1;3877;3870:12;3834:2;3903:49;3944:7;3935:6;3924:9;3920:22;3903:49;:::i;:::-;3893:59;;;3999:2;3988:9;3984:18;3971:32;3961:42;;4050:2;4039:9;4035:18;4022:32;4012:42;;4106:3;4095:9;4091:19;4078:33;4155:4;4146:7;4142:18;4133:7;4130:31;4120:2;;4175:1;4172;4165:12;4120:2;4198:7;4188:17;;;3598:613;;;;;;;;:::o;4216:277::-;4283:6;4336:2;4324:9;4315:7;4311:23;4307:32;4304:2;;;4352:1;4349;4342:12;4304:2;4384:9;4378:16;4437:5;4430:13;4423:21;4416:5;4413:32;4403:2;;4459:1;4456;4449:12;4498:329;4580:6;4588;4641:2;4629:9;4620:7;4616:23;4612:32;4609:2;;;4657:1;4654;4647:12;4609:2;4696:9;4683:23;4715:31;4740:5;4715:31;:::i;:::-;4765:5;4817:2;4802:18;;;;4789:32;;-1:-1:-1;;;4599:228:3:o;4832:635::-;4912:6;4965:2;4953:9;4944:7;4940:23;4936:32;4933:2;;;4981:1;4978;4971:12;4933:2;5014:9;5008:16;5047:18;5039:6;5036:30;5033:2;;;5079:1;5076;5069:12;5033:2;5102:22;;5155:4;5147:13;;5143:27;-1:-1:-1;5133:2:3;;5184:1;5181;5174:12;5133:2;5213;5207:9;5238:48;5254:31;5282:2;5254:31;:::i;5238:48::-;5309:2;5302:5;5295:17;5349:7;5344:2;5339;5335;5331:11;5327:20;5324:33;5321:2;;;5370:1;5367;5360:12;5321:2;5383:54;5434:2;5429;5422:5;5418:14;5413:2;5409;5405:11;5383:54;:::i;:::-;5456:5;4923:544;-1:-1:-1;;;;;4923:544:3:o;5472:180::-;5531:6;5584:2;5572:9;5563:7;5559:23;5555:32;5552:2;;;5600:1;5597;5590:12;5552:2;-1:-1:-1;5623:23:3;;5542:110;-1:-1:-1;5542:110:3:o;5657:184::-;5727:6;5780:2;5768:9;5759:7;5755:23;5751:32;5748:2;;;5796:1;5793;5786:12;5748:2;-1:-1:-1;5819:16:3;;5738:103;-1:-1:-1;5738:103:3:o;5846:257::-;5887:3;5925:5;5919:12;5952:6;5947:3;5940:19;5968:63;6024:6;6017:4;6012:3;6008:14;6001:4;5994:5;5990:16;5968:63;:::i;:::-;6085:2;6064:15;-1:-1:-1;;6060:29:3;6051:39;;;;6092:4;6047:50;;5895:208;-1:-1:-1;;5895:208:3:o;6108:271::-;6291:6;6283;6278:3;6265:33;6247:3;6317:16;;6342:13;;;6317:16;6255:124;-1:-1:-1;6255:124:3:o;6384:274::-;6513:3;6551:6;6545:13;6567:53;6613:6;6608:3;6601:4;6593:6;6589:17;6567:53;:::i;:::-;6636:16;;;;;6521:137;-1:-1:-1;;6521:137:3:o;6663:415::-;6820:3;6858:6;6852:13;6874:53;6920:6;6915:3;6908:4;6900:6;6896:17;6874:53;:::i;:::-;6996:2;6992:15;;;;-1:-1:-1;;6988:53:3;6949:16;;;;6974:68;;;7069:2;7058:14;;6828:250;-1:-1:-1;;6828:250:3:o;7083:466::-;7258:3;7296:6;7290:13;7312:53;7358:6;7353:3;7346:4;7338:6;7334:17;7312:53;:::i;:::-;7428:13;;7387:16;;;;7450:57;7428:13;7387:16;7484:4;7472:17;;7450:57;:::i;:::-;7523:20;;7266:283;-1:-1:-1;;;;7266:283:3:o;8234:454::-;8416:4;-1:-1:-1;;;;;8526:2:3;8518:6;8514:15;8503:9;8496:34;8578:2;8570:6;8566:15;8561:2;8550:9;8546:18;8539:43;;8618:2;8613;8602:9;8598:18;8591:30;8638:44;8678:2;8667:9;8663:18;8655:6;8638:44;:::i;10246:217::-;10393:2;10382:9;10375:21;10356:4;10413:44;10453:2;10442:9;10438:18;10430:6;10413:44;:::i;15182:251::-;15254:2;15248:9;;;15284:15;;15329:18;15314:34;;15350:22;;;15311:62;15308:2;;;15376:18;;:::i;:::-;15412:2;15405:22;15228:205;:::o;15438:275::-;15509:2;15503:9;15574:2;15555:13;;-1:-1:-1;;15551:27:3;15539:40;;15609:18;15594:34;;15630:22;;;15591:62;15588:2;;;15656:18;;:::i;:::-;15692:2;15685:22;15483:230;;-1:-1:-1;15483:230:3:o;15718:186::-;15766:4;15799:18;15791:6;15788:30;15785:2;;;15821:18;;:::i;:::-;-1:-1:-1;15887:2:3;15866:15;-1:-1:-1;;15862:29:3;15893:4;15858:40;;15775:129::o;15909:331::-;16014:9;16025;16067:8;16055:10;16052:24;16049:2;;;16089:1;16086;16079:12;16049:2;16118:6;16108:8;16105:20;16102:2;;;16138:1;16135;16128:12;16102:2;-1:-1:-1;;16164:23:3;;;16209:25;;;;;-1:-1:-1;16039:201:3:o;16245:282::-;16285:3;16316:1;16312:6;16309:1;16306:13;16303:2;;;-1:-1:-1;;;16349:1:3;16342:88;16453:4;16450:1;16443:15;16481:4;16478:1;16471:15;16303:2;-1:-1:-1;16512:9:3;;16293:234::o;16532:258::-;16604:1;16614:113;16628:6;16625:1;16622:13;16614:113;;;16704:11;;;16698:18;16685:11;;;16678:39;16650:2;16643:10;16614:113;;;16745:6;16742:1;16739:13;16736:2;;;16780:1;16771:6;16766:3;16762:16;16755:27;16736:2;;16585:205;;;:::o;16795:184::-;-1:-1:-1;;;16844:1:3;16837:88;16944:4;16941:1;16934:15;16968:4;16965:1;16958:15;16984:154;-1:-1:-1;;;;;17063:5:3;17059:54;17052:5;17049:65;17039:2;;17128:1;17125;17118:12;17039:2;17029:109;:::o

Swarm Source

ipfs://71ed022bfcffe48993c4c21687711f39a825625503c465072af9768cc9db4374

Block Transaction Gas Used Reward
view all blocks produced

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

Validator Index Block Amount
View All Withdrawals

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