POL Price: $0.217228 (-0.50%)
 

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
Forward Tokens706288852025-04-22 20:56:3510 hrs ago1745355395IN
0x58f1aFcb...A989bfFFb
0 POL0.0021477735.28000002
Forward Tokens706203432025-04-22 15:53:2715 hrs ago1745337207IN
0x58f1aFcb...A989bfFFb
0 POL0.0035484563.26365715
Forward Tokens705827392025-04-21 17:35:3037 hrs ago1745256930IN
0x58f1aFcb...A989bfFFb
0 POL0.0021883835.9400191
Forward Tokens705824762025-04-21 17:26:1038 hrs ago1745256370IN
0x58f1aFcb...A989bfFFb
0 POL0.0021872935.92908744
Forward Tokens705807422025-04-21 16:24:4639 hrs ago1745252686IN
0x58f1aFcb...A989bfFFb
0 POL0.0021960536.06597856
Forward Tokens705790592025-04-21 15:24:2540 hrs ago1745249065IN
0x58f1aFcb...A989bfFFb
0 POL0.0021836335.86896121
Forward Tokens705790102025-04-21 15:22:4140 hrs ago1745248961IN
0x58f1aFcb...A989bfFFb
0 POL0.0027948335.84685222
Forward Tokens705734162025-04-21 12:04:2543 hrs ago1745237065IN
0x58f1aFcb...A989bfFFb
0 POL0.002741235.98800006
Forward Tokens705733922025-04-21 12:03:3543 hrs ago1745237015IN
0x58f1aFcb...A989bfFFb
0 POL0.002741235.98800005
Forward Tokens705567892025-04-21 2:15:072 days ago1745201707IN
0x58f1aFcb...A989bfFFb
0 POL0.001826730.00000136
Forward Tokens705560122025-04-21 1:47:352 days ago1745200055IN
0x58f1aFcb...A989bfFFb
0 POL0.0018263430.00000034
Forward Tokens705555752025-04-21 1:31:472 days ago1745199107IN
0x58f1aFcb...A989bfFFb
0 POL0.0018263430.0000001
Forward Tokens705475242025-04-20 20:46:382 days ago1745181998IN
0x58f1aFcb...A989bfFFb
0 POL0.002087834.28820003
Forward Tokens705333842025-04-20 12:25:352 days ago1745151935IN
0x58f1aFcb...A989bfFFb
0 POL0.002191636.00000003
Forward Tokens705025262025-04-19 18:11:223 days ago1745086282IN
0x58f1aFcb...A989bfFFb
0 POL0.0021920436.00000003
Forward Tokens704931832025-04-19 12:37:493 days ago1745066269IN
0x58f1aFcb...A989bfFFb
0 POL0.0020491533.66000004
Forward Tokens704618002025-04-18 18:03:424 days ago1744999422IN
0x58f1aFcb...A989bfFFb
0 POL0.0020400533.50400003
Forward Tokens704590522025-04-18 16:26:164 days ago1744993576IN
0x58f1aFcb...A989bfFFb
0 POL0.001962632.23200007
Forward Tokens703508892025-04-16 0:04:277 days ago1744761867IN
0x58f1aFcb...A989bfFFb
0 POL0.0018263430.00000002
Forward Tokens703455812025-04-15 20:55:557 days ago1744750555IN
0x58f1aFcb...A989bfFFb
0 POL0.0021695835.63115741
Forward Tokens703447532025-04-15 20:26:197 days ago1744748779IN
0x58f1aFcb...A989bfFFb
0 POL0.0021309735.00400002
Forward Tokens703446472025-04-15 20:22:337 days ago1744748553IN
0x58f1aFcb...A989bfFFb
0 POL0.0021309735.00400002
Forward Tokens703445262025-04-15 20:18:157 days ago1744748295IN
0x58f1aFcb...A989bfFFb
0 POL0.0021313935.00400003
Forward Tokens703361462025-04-15 15:21:297 days ago1744730489IN
0x58f1aFcb...A989bfFFb
0 POL0.0016984830.28786353
Forward Tokens703232162025-04-15 7:36:017 days ago1744702561IN
0x58f1aFcb...A989bfFFb
0 POL0.0019958232.78400004
View all transactions

Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x2acaebFb...C8B66b170
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
TokenHub

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity Multiple files format)

File 1 of 6: TokenHub.sol
// SPDX-License-Identifier: -- DG --

pragma solidity =0.8.21;

import "./Interfaces.sol";
import "./TransferHelper.sol";
import "./AccessController.sol";
import "./EIP712MetaTransaction.sol";

contract TokenHub is
    AccessController,
    TransferHelper,
    EIP712MetaTransaction
{    
    uint256 public forwardFrame;
    address public forwardAddress;

    receive()
        external
        payable
    {
        emit ReceiveNative(
            msg.value
        );
    }

    mapping(address => bool) public supportedTokens;
    mapping(address => uint256) public forwardFrames;

    event Forward(
        address indexed depositorAddress,
        address indexed paymentTokenAddress,
        uint256 indexed paymentTokenAmount
    );

    event ForwardNative(
        address indexed depositorAddress,
        uint256 indexed paymentTokenAmount
    );

    event ReceiveNative(
        uint256 indexed nativeAmount
    );

    constructor(
        address _defaultToken,
        uint256 _defaultFrame,
        address _defaultAddress
    )
        EIP712Base(
            "TokenHub",
            "v3.0"
        )
    {
        forwardFrame = _defaultFrame;
        forwardAddress = _defaultAddress;        
        supportedTokens[_defaultToken] = true;
    }

    function forwardNative()
        external
        payable 
    {
        address _depositorAddress = msg.sender;

        require(
            canDepositAgain(_depositorAddress),
            "TokenHub: DEPOSIT_COOLDOWN"
        );

        forwardFrames[_depositorAddress] = block.number;

        payable(forwardAddress).transfer(
            msg.value
        );

        emit ForwardNative(
            msg.sender,
            msg.value
        );        
    }

    function forwardTokens(
        address _paymentToken,
        uint256 _paymentTokenAmount
    )
        external
    {
        address _depositorAddress = msg.sender;

        require(
            canDepositAgain(_depositorAddress),
            "TokenHub: DEPOSIT_COOLDOWN"
        );

        forwardFrames[_depositorAddress] = block.number;

        require(
            supportedTokens[_paymentToken],
            "TokenHub: UNSUPPORTED_TOKEN"
        );

        safeTransferFrom(
            _paymentToken,
            _depositorAddress,
            forwardAddress,
            _paymentTokenAmount
        );

        emit Forward(
            msg.sender,
            _paymentToken,
            _paymentTokenAmount
        );
    }

    function forwardTokensByWorker(
        address _depositorAddress,
        address _paymentTokenAddress,
        uint256 _paymentTokenAmount
    )
        external
        onlyWorker
    {
        require(
            canDepositAgain(_depositorAddress),
            "TokenHub: DEPOSIT_COOLDOWN"
        );

        forwardFrames[_depositorAddress] = block.number;

        require(
            supportedTokens[_paymentTokenAddress],
            "TokenHub: UNSUPPORTED_TOKEN"
        );

        safeTransferFrom(
            _paymentTokenAddress,
            _depositorAddress,
            forwardAddress,
            _paymentTokenAmount
        );

        emit Forward(
            _depositorAddress,
            _paymentTokenAddress,
            _paymentTokenAmount
        );
    }

    function changeForwardFrame(
        uint256 _newDepositFrame
    )
        external
        onlyCEO
    {
        forwardFrame = _newDepositFrame;
    }

    function changeForwardAddress(
        address _newForwardAddress
    )
        external
        onlyCEO
    {
        forwardAddress = _newForwardAddress;
    }

    function changeSupportedToken(
        address _tokenAddress,
        bool _supportStatus
    )
        external 
        onlyCEO
    {
        supportedTokens[_tokenAddress] = _supportStatus;
    }

    function canDepositAgain(
        address _depositorAddress
    )
        public
        view
        returns (bool)
    {
        return block.number - forwardFrames[_depositorAddress] >= forwardFrame;
    }

    function rescueToken(
        address _tokenAddress
    )
        external
        onlyCEO
    {
        uint256 tokenBalance = safeBalance(
            _tokenAddress,
            address(this)
        );

        safeTransfer(
            _tokenAddress,
            msg.sender,
            tokenBalance
        );
    }

    function rescueNative() 
        external 
        onlyCEO 
    {
        uint256 etherBalance = address(this).balance;
        require(etherBalance > 0, "No Ether balance to rescue");
        
        payable(msg.sender).transfer(etherBalance);
    }
}

File 2 of 6: AccessController.sol
// SPDX-License-Identifier: -- DG --

pragma solidity =0.8.21;

contract AccessController {

    address public ceoAddress;
    mapping (address => bool) public isWorker;

    event CEOSet(
        address newCEO
    );

    event WorkerAdded(
        address newWorker
    );

    event WorkerRemoved(
        address existingWorker
    );

    constructor() {

        address creator = msg.sender;
        ceoAddress = creator;
        isWorker[creator] = true;

        emit CEOSet(
            creator
        );

        emit WorkerAdded(
            creator
        );
    }

    modifier onlyCEO() {
        require(
            msg.sender == ceoAddress,
            "AccessControl: CEO_DENIED"
        );
        _;
    }

    modifier onlyWorker() {
        require(
            isWorker[msg.sender] == true,
            "AccessControl: WORKER_DENIED"
        );
        _;
    }

    modifier nonZeroAddress(
        address checkingAddress
    ) {
        require(
            checkingAddress != address(0x0),
            "AccessControl: INVALID_ADDRESS"
        );
        _;
    }

    function setCEO(
        address _newCEO
    )
        external
        nonZeroAddress(_newCEO)
        onlyCEO
    {
        ceoAddress = _newCEO;

        emit CEOSet(
            ceoAddress
        );
    }

    function addWorker(
        address _newWorker
    )
        external
        onlyCEO
    {
        _addWorker(
            _newWorker
        );
    }

    function addWorkerBulk(
        address[] calldata _newWorkers
    )
        external
        onlyCEO
    {
        for (uint8 index = 0; index < _newWorkers.length; index++) {
            _addWorker(_newWorkers[index]);
        }
    }

    function _addWorker(
        address _newWorker
    )
        internal
        nonZeroAddress(_newWorker)
    {
        require(
            isWorker[_newWorker] == false,
            'AccessControl: worker already exist'
        );

        isWorker[_newWorker] = true;

        emit WorkerAdded(
            _newWorker
        );
    }

    function removeWorker(
        address _existingWorker
    )
        external
        onlyCEO
    {
        _removeWorker(
            _existingWorker
        );
    }

    function removeWorkerBulk(
        address[] calldata _workerArray
    )
        external
        onlyCEO
    {
        for (uint8 index = 0; index < _workerArray.length; index++) {
            _removeWorker(_workerArray[index]);
        }
    }

    function _removeWorker(
        address _existingWorker
    )
        internal
        nonZeroAddress(_existingWorker)
    {
        require(
            isWorker[_existingWorker] == true,
            "AccessControl: worker not detected"
        );

        isWorker[_existingWorker] = false;

        emit WorkerRemoved(
            _existingWorker
        );
    }
}

File 3 of 6: EIP712Base.sol
// SPDX-License-Identifier: -- DG --

pragma solidity =0.8.21;

contract EIP712Base {

    struct EIP712Domain {
        string name;
        string version;
        uint256 chainId;
        address verifyingContract;
    }

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

    bytes32 internal domainSeperator;

    constructor(
        string memory _name,
        string memory _version
    ) {
        domainSeperator = keccak256(abi.encode(
			EIP712_DOMAIN_TYPEHASH,
			keccak256(bytes(_name)),
			keccak256(bytes(_version)),
			getChainID(),
			address(this)
		));
    }

    function getChainID()
        internal
        pure
        returns (uint256 id)
    {
		assembly {
			id := 1
		}
	}

    function getDomainSeperator()
        private
        view
        returns(bytes32)
    {
		return domainSeperator;
	}

    function toTypedMessageHash(
        bytes32 _messageHash
    )
        internal
        view
        returns(bytes32)
    {
        return keccak256(
            abi.encodePacked(
                "\x19\x01",
                getDomainSeperator(),
                _messageHash
            )
        );
    }
}

File 4 of 6: EIP712MetaTransaction.sol
// SPDX-License-Identifier: -- DG --

pragma solidity =0.8.21;

import "./EIP712Base.sol";

abstract 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) internal nonces;

    struct MetaTransaction {
		uint256 nonce;
		address from;
        bytes functionSignature;
	}

    function executeMetaTransaction(
        address _userAddress,
        bytes memory _functionSignature,
        bytes32 _sigR,
        bytes32 _sigS,
        uint8 _sigV
    )
        public
        payable
        returns(bytes memory)
    {
        MetaTransaction memory metaTx = MetaTransaction(
            {
                nonce: nonces[_userAddress],
                from: _userAddress,
                functionSignature: _functionSignature
            }
        );

        require(
            verify(
                _userAddress,
                metaTx,
                _sigR,
                _sigS,
                _sigV
            ), "EIP712MetaTransaction: INVALID_SIGNATURE"
        );

	    nonces[_userAddress] =
	    nonces[_userAddress] + 1;

        (bool success, bytes memory returnData) = address(this).call(
            abi.encodePacked(
                _functionSignature,
                _userAddress
            )
        );

        require(
            success,
            "EIP712MetaTransaction: INVALID_CALL"
        );

        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 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(0x0),
            "EIP712MetaTransaction: 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;
    }

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

File 5 of 6: Interfaces.sol
// SPDX-License-Identifier: -- DG --

pragma solidity =0.8.21;

interface ERC721 {

    function ownerOf(
        uint256 _tokenId
    )
        external
        view
        returns (address);

    function transferFrom(
        address _from,
        address _to,
        uint256 _tokenId
    )
        external;
}

interface ERC20 {

    function approve(
        address spender,
        uint256 amount
    )
        external 
        returns (bool);
        
    function burn(
        uint256 _amount
    )
        external;
}

interface DGAccessories  {

    function issueTokens(
        address[] calldata _beneficiaries,
        uint256[] calldata _itemIds
    )
        external;

    function encodeTokenId(
        uint256 _itemId,
        uint256 _issuedId
    )
        external
        pure
        returns (uint256 id);

    function decodeTokenId(
        uint256 _tokenId
    )
        external
        pure
        returns (
            uint256 itemId,
            uint256 issuedId
        );

    function items(
        uint256 _id
    )
        external
        view
        returns (
            string memory rarity,
            uint256 maxSupply,
            uint256 totalSupply,
            uint256 price,
            address beneficiary,
            string memory metadata,
            string memory contentHash
        );

    function itemsCount()
        external
        view
        returns (uint256);
}

File 6 of 6: TransferHelper.sol
// SPDX-License-Identifier: -- DG --

pragma solidity =0.8.21;

contract TransferHelper {

    bytes4 private constant TRANSFER = bytes4(
        keccak256(
            bytes(
                "transfer(address,uint256)" // 0xa9059cbb
            )
        )
    );

    bytes4 private constant TRANSFER_FROM = bytes4(
        keccak256(
            bytes(
                "transferFrom(address,address,uint256)" // 0x23b872dd
            )
        )
    );

    bytes4 private constant BALANCE_OF = bytes4(
        keccak256(
            bytes(
                "balanceOf(address)"
            )
        )
    );

    function safeTransfer(
        address _token,
        address _to,
        uint256 _value
    )
        internal
    {
        (bool success, bytes memory data) = _token.call(
            abi.encodeWithSelector(
                TRANSFER, // 0xa9059cbb
                _to,
                _value
            )
        );

        require(
            success && (
                data.length == 0 || abi.decode(
                    data, (bool)
                )
            ),
            "TransferHelper: TRANSFER_FAILED"
        );
    }

    function safeTransferFrom(
        address _token,
        address _from,
        address _to,
        uint _value
    )
        internal
    {
        (bool success, bytes memory data) = _token.call(
            abi.encodeWithSelector(
                TRANSFER_FROM,
                _from,
                _to,
                _value
            )
        );

        require(
            success && (
                data.length == 0 || abi.decode(
                    data, (bool)
                )
            ),
            "TransferHelper: TRANSFER_FROM_FAILED"
        );
    }

    function safeBalance(
        address _token,
        address _owner
    )
        internal
        returns (uint256)
    {
        (bool success, bytes memory data) = _token.call(
            abi.encodeWithSelector(
                BALANCE_OF,
                _owner
            )
        );

        if (success == false) return 0;

        return abi.decode(
            data,
            (uint256)
        );
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_defaultToken","type":"address"},{"internalType":"uint256","name":"_defaultFrame","type":"uint256"},{"internalType":"address","name":"_defaultAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newCEO","type":"address"}],"name":"CEOSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"depositorAddress","type":"address"},{"indexed":true,"internalType":"address","name":"paymentTokenAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"paymentTokenAmount","type":"uint256"}],"name":"Forward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"depositorAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"paymentTokenAmount","type":"uint256"}],"name":"ForwardNative","type":"event"},{"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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"nativeAmount","type":"uint256"}],"name":"ReceiveNative","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newWorker","type":"address"}],"name":"WorkerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"existingWorker","type":"address"}],"name":"WorkerRemoved","type":"event"},{"inputs":[{"internalType":"address","name":"_newWorker","type":"address"}],"name":"addWorker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_newWorkers","type":"address[]"}],"name":"addWorkerBulk","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_depositorAddress","type":"address"}],"name":"canDepositAgain","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ceoAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newForwardAddress","type":"address"}],"name":"changeForwardAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newDepositFrame","type":"uint256"}],"name":"changeForwardFrame","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"bool","name":"_supportStatus","type":"bool"}],"name":"changeSupportedToken","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":[],"name":"forwardAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"forwardFrame","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"forwardFrames","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"forwardNative","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_paymentToken","type":"address"},{"internalType":"uint256","name":"_paymentTokenAmount","type":"uint256"}],"name":"forwardTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_depositorAddress","type":"address"},{"internalType":"address","name":"_paymentTokenAddress","type":"address"},{"internalType":"uint256","name":"_paymentTokenAmount","type":"uint256"}],"name":"forwardTokensByWorker","outputs":[],"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":[{"internalType":"address","name":"","type":"address"}],"name":"isWorker","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_existingWorker","type":"address"}],"name":"removeWorker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_workerArray","type":"address[]"}],"name":"removeWorkerBulk","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueNative","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"}],"name":"rescueToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newCEO","type":"address"}],"name":"setCEO","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"supportedTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

0x608060405260043610610134575f3560e01c8063806ad57e116100a8578063c4f987a51161006d578063c4f987a5146103bf578063c5b3ffe9146103de578063d239c97314610409578063e6adfe3714610428578063efd00e8a14610447578063fc82f0841461044f575f80fd5b8063806ad57e14610315578063877f210c14610334578063983c45cf14610353578063aa15664514610372578063c3170007146103a0575f80fd5b80634460d3cf116100f95780634460d3cf1461024657806345e0e412146102655780635af2e9fb146102845780635eae21fa146102a357806368c4ac26146102c2578063799bf3f914610300575f80fd5b80630a0f8168146101695780630c53c51c146101a457806321507b4e146101c457806327d7874c146101e35780632d0335ab14610204575f80fd5b366101655760405134907f5e168818916f1fd9e52c6751cc95b7117e0d0e2d5d4f3868f21ce415555b9b40905f90a2005b5f80fd5b348015610174575f80fd5b505f54610187906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101b76101b2366004611402565b610463565b60405161019b919061152d565b3480156101cf575f80fd5b50600554610187906001600160a01b031681565b3480156101ee575f80fd5b506102026101fd366004611546565b610619565b005b34801561020f575f80fd5b5061023861021e366004611546565b6001600160a01b03165f9081526003602052604090205490565b60405190815260200161019b565b348015610251575f80fd5b50610202610260366004611546565b6106be565b348015610270575f80fd5b5061020261027f36600461155f565b610703565b34801561028f575f80fd5b5061020261029e366004611546565b6107f7565b3480156102ae575f80fd5b506102026102bd366004611594565b610842565b3480156102cd575f80fd5b506102f06102dc366004611546565b60066020525f908152604090205460ff1681565b604051901515815260200161019b565b34801561030b575f80fd5b5061023860045481565b348015610320575f80fd5b5061020261032f366004611546565b610895565b34801561033f575f80fd5b5061020261034e3660046115c9565b6108ca565b34801561035e575f80fd5b5061020261036d366004611602565b610a2b565b34801561037d575f80fd5b506102f061038c366004611546565b60016020525f908152604090205460ff1681565b3480156103ab575f80fd5b506102026103ba366004611619565b610a59565b3480156103ca575f80fd5b506102026103d9366004611546565b610ad8565b3480156103e9575f80fd5b506102386103f8366004611546565b60076020525f908152604090205481565b348015610414575f80fd5b506102f0610423366004611546565b610b0a565b348015610433575f80fd5b50610202610442366004611619565b610b3a565b610202610bb4565b34801561045a575f80fd5b50610202610c54565b60408051606081810183526001600160a01b0388165f81815260036020908152908590205484528301529181018690526104a08782878787610cf5565b6104c55760405162461bcd60e51b81526004016104bc90611688565b60405180910390fd5b6001600160a01b0387165f908152600360205260409020546104e89060016116e4565b6001600160a01b0388165f90815260036020908152604080832093909355915190918291309161051c918b918d91016116f7565b60408051601f19818403018152908290526105369161172d565b5f604051808303815f865af19150503d805f811461056f576040519150601f19603f3d011682016040523d82523d5f602084013e610574565b606091505b5091509150816105d25760405162461bcd60e51b815260206004820152602360248201527f4549503731324d6574615472616e73616374696f6e3a20494e56414c49445f4360448201526210531360ea1b60648201526084016104bc565b7f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b89338a60405161060593929190611748565b60405180910390a198975050505050505050565b806001600160a01b0381166106405760405162461bcd60e51b81526004016104bc9061177c565b5f546001600160a01b031633146106695760405162461bcd60e51b81526004016104bc906117b3565b5f80546001600160a01b0319166001600160a01b0384169081179091556040519081527ff97cbb4246b709036319093e5ff31674b9f6759076d153e1bea1f60392170fc0906020015b60405180910390a15050565b5f546001600160a01b031633146106e75760405162461bcd60e51b81526004016104bc906117b3565b5f6106f28230610da9565b90506106ff823383610e9d565b5050565b3361070d81610b0a565b6107295760405162461bcd60e51b81526004016104bc906117ea565b6001600160a01b038082165f908152600760209081526040808320439055928616825260069052205460ff166107a15760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e4875623a20554e535550504f525445445f544f4b454e000000000060448201526064016104bc565b6005546107bb90849083906001600160a01b031685610fe3565b60405182906001600160a01b0385169033907fceac81a6cfb44e1614ce02f28d4c280e6e9f4c9cf2585ab625f5e182caf7023d905f90a4505050565b5f546001600160a01b031633146108205760405162461bcd60e51b81526004016104bc906117b3565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b0316331461086b5760405162461bcd60e51b81526004016104bc906117b3565b6001600160a01b03919091165f908152600660205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146108be5760405162461bcd60e51b81526004016104bc906117b3565b6108c78161113a565b50565b335f9081526001602081905260409091205460ff1615151461092e5760405162461bcd60e51b815260206004820152601c60248201527f416363657373436f6e74726f6c3a20574f524b45525f44454e4945440000000060448201526064016104bc565b61093783610b0a565b6109535760405162461bcd60e51b81526004016104bc906117ea565b6001600160a01b038084165f908152600760209081526040808320439055928516825260069052205460ff166109cb5760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e4875623a20554e535550504f525445445f544f4b454e000000000060448201526064016104bc565b6005546109e590839085906001600160a01b031684610fe3565b80826001600160a01b0316846001600160a01b03167fceac81a6cfb44e1614ce02f28d4c280e6e9f4c9cf2585ab625f5e182caf7023d60405160405180910390a4505050565b5f546001600160a01b03163314610a545760405162461bcd60e51b81526004016104bc906117b3565b600455565b5f546001600160a01b03163314610a825760405162461bcd60e51b81526004016104bc906117b3565b5f5b60ff8116821115610ad357610ac183838360ff16818110610aa757610aa7611821565b9050602002016020810190610abc9190611546565b61113a565b80610acb81611835565b915050610a84565b505050565b5f546001600160a01b03163314610b015760405162461bcd60e51b81526004016104bc906117b3565b6108c781611229565b6004546001600160a01b0382165f90815260076020526040812054909190610b329043611853565b101592915050565b5f546001600160a01b03163314610b635760405162461bcd60e51b81526004016104bc906117b3565b5f5b60ff8116821115610ad357610ba283838360ff16818110610b8857610b88611821565b9050602002016020810190610b9d9190611546565b611229565b80610bac81611835565b915050610b65565b33610bbe81610b0a565b610bda5760405162461bcd60e51b81526004016104bc906117ea565b6001600160a01b038082165f9081526007602052604080822043905560055490519216913480156108fc0292909190818181858888f19350505050158015610c24573d5f803e3d5ffd5b50604051349033907f2f0094ad9640858ffa87c59b7086fb03a519c627e74993edab801eb7a1503f55905f90a350565b5f546001600160a01b03163314610c7d5760405162461bcd60e51b81526004016104bc906117b3565b4780610ccb5760405162461bcd60e51b815260206004820152601a60248201527f4e6f2045746865722062616c616e636520746f2072657363756500000000000060448201526064016104bc565b604051339082156108fc029083905f818181858888f193505050501580156106ff573d5f803e3d5ffd5b5f806001610d0a610d0588611318565b611394565b604080515f8152602081018083529290925260ff861690820152606081018790526080810186905260a0016020604051602081039080840390855afa158015610d55573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b038116610d885760405162461bcd60e51b81526004016104bc90611688565b866001600160a01b0316816001600160a01b03161491505095945050505050565b604080518082018252601281527162616c616e63654f6628616464726573732960701b60209182015281516001600160a01b03848116602480840191909152845180840390910181526044909201845291810180516001600160e01b03166370a0823160e01b17905291515f928392839290871691610e279161172d565b5f604051808303815f865af19150503d805f8114610e60576040519150601f19603f3d011682016040523d82523d5f602084013e610e65565b606091505b5090925090508115155f03610e7e575f92505050610e97565b80806020019051810190610e929190611866565b925050505b92915050565b604080518082018252601981527f7472616e7366657228616464726573732c75696e74323536290000000000000060209182015281516001600160a01b0385811660248301526044808301869052845180840390910181526064909201845291810180516001600160e01b031663a9059cbb60e01b17905291515f928392871691610f28919061172d565b5f604051808303815f865af19150503d805f8114610f61576040519150601f19603f3d011682016040523d82523d5f602084013e610f66565b606091505b5091509150818015610f90575080511580610f90575080806020019051810190610f90919061187d565b610fdc5760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c45440060448201526064016104bc565b5050505050565b5f80856001600160a01b03166040518060600160405280602581526020016118996025913980516020909101206040516001600160a01b038089166024830152871660448201526064810186905260840160408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051611072919061172d565b5f604051808303815f865af19150503d805f81146110ab576040519150601f19603f3d011682016040523d82523d5f602084013e6110b0565b606091505b50915091508180156110da5750805115806110da5750808060200190518101906110da919061187d565b6111325760405162461bcd60e51b8152602060048201526024808201527f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f46416044820152631253115160e21b60648201526084016104bc565b505050505050565b806001600160a01b0381166111615760405162461bcd60e51b81526004016104bc9061177c565b6001600160a01b0382165f9081526001602052604090205460ff16156111d55760405162461bcd60e51b815260206004820152602360248201527f416363657373436f6e74726f6c3a20776f726b657220616c72656164792065786044820152621a5cdd60ea1b60648201526084016104bc565b6001600160a01b0382165f81815260016020818152604092839020805460ff191690921790915590519182527fb10d2a24a8c3686841e966f0c2c64c385cfaecb50a09b16aa3579bfcf3989dcd91016106b2565b806001600160a01b0381166112505760405162461bcd60e51b81526004016104bc9061177c565b6001600160a01b0382165f9081526001602081905260409091205460ff161515146112c85760405162461bcd60e51b815260206004820152602260248201527f416363657373436f6e74726f6c3a20776f726b6572206e6f7420646574656374604482015261195960f21b60648201526084016104bc565b6001600160a01b0382165f81815260016020908152604091829020805460ff1916905590519182527f6cfb0504498d3a8155a2a3dd5f41940ad5ab571197ac70f6d6948d189f6a0d2791016106b2565b5f6040518060800160405280604381526020016118be6043913980516020918201208351848301516040808701518051908601209051611377950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b5f61139e60025490565b60405161190160f01b6020820152602281019190915260428101839052606201611377565b80356001600160a01b03811681146113d9575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b803560ff811681146113d9575f80fd5b5f805f805f60a08688031215611416575f80fd5b61141f866113c3565b9450602086013567ffffffffffffffff8082111561143b575f80fd5b818801915088601f83011261144e575f80fd5b813581811115611460576114606113de565b604051601f8201601f19908116603f01168101908382118183101715611488576114886113de565b816040528281528b60208487010111156114a0575f80fd5b826020860160208301375f60208483010152809850505050505060408601359250606086013591506114d4608087016113f2565b90509295509295909350565b5f5b838110156114fa5781810151838201526020016114e2565b50505f910152565b5f81518084526115198160208601602086016114e0565b601f01601f19169290920160200192915050565b602081525f61153f6020830184611502565b9392505050565b5f60208284031215611556575f80fd5b61153f826113c3565b5f8060408385031215611570575f80fd5b611579836113c3565b946020939093013593505050565b80151581146108c7575f80fd5b5f80604083850312156115a5575f80fd5b6115ae836113c3565b915060208301356115be81611587565b809150509250929050565b5f805f606084860312156115db575f80fd5b6115e4846113c3565b92506115f2602085016113c3565b9150604084013590509250925092565b5f60208284031215611612575f80fd5b5035919050565b5f806020838503121561162a575f80fd5b823567ffffffffffffffff80821115611641575f80fd5b818501915085601f830112611654575f80fd5b813581811115611662575f80fd5b8660208260051b8501011115611676575f80fd5b60209290920196919550909350505050565b60208082526028908201527f4549503731324d6574615472616e73616374696f6e3a20494e56414c49445f5360408201526749474e415455524560c01b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610e9757610e976116d0565b5f83516117088184602088016114e0565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b5f825161173e8184602087016114e0565b9190910192915050565b6001600160a01b038481168252831660208201526060604082018190525f9061177390830184611502565b95945050505050565b6020808252601e908201527f416363657373436f6e74726f6c3a20494e56414c49445f414444524553530000604082015260600190565b60208082526019908201527f416363657373436f6e74726f6c3a2043454f5f44454e49454400000000000000604082015260600190565b6020808252601a908201527f546f6b656e4875623a204445504f5349545f434f4f4c444f574e000000000000604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f60ff821660ff810361184a5761184a6116d0565b60010192915050565b81810381811115610e9757610e976116d0565b5f60208284031215611876575f80fd5b5051919050565b5f6020828403121561188d575f80fd5b815161153f8161158756fe7472616e7366657246726f6d28616464726573732c616464726573732c75696e74323536294d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529a26469706673582212201716ef01dbbf3cd188b8b891e6a1c3e30d3c32ebd25480ff6377adee4e8e7dc964736f6c63430008150033

Deployed Bytecode Sourcemap

203:4613:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;445:48;;473:9;;445:48;;;;;203:4613;;;;;103:25:0;;;;;;;;;;-1:-1:-1;103:25:0;;;;-1:-1:-1;;;;;103:25:0;;;;;;-1:-1:-1;;;;;178:32:6;;;160:51;;148:2;133:18;103:25:0;;;;;;;;657:1278:2;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;341:29:4:-;;;;;;;;;;-1:-1:-1;341:29:4;;;;-1:-1:-1;;;;;341:29:4;;;1162:221:0;;;;;;;;;;-1:-1:-1;1162:221:0;;;;;:::i;:::-;;:::i;:::-;;3499:158:2;;;;;;;;;;-1:-1:-1;3499:158:2;;;;;:::i;:::-;-1:-1:-1;;;;;3636:13:2;3597;3636;;;:6;:13;;;;;;;3499:158;;;;2990:25:6;;;2978:2;2963:18;3499:158:2;2844:177:6;4210:336:4;;;;;;;;;;-1:-1:-1;4210:336:4;;;;;:::i;:::-;;:::i;1826:769::-;;;;;;;;;;-1:-1:-1;1826:769:4;;;;;:::i;:::-;;:::i;3596:168::-;;;;;;;;;;-1:-1:-1;3596:168:4;;;;;:::i;:::-;;:::i;3772:206::-;;;;;;;;;;-1:-1:-1;3772:206:4;;;;;:::i;:::-;;:::i;509:47::-;;;;;;;;;;-1:-1:-1;509:47:4;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3893:14:6;;3886:22;3868:41;;3856:2;3841:18;509:47:4;3728:187:6;307:27:4;;;;;;;;;;;;;;;;1391:160:0;;;;;;;;;;-1:-1:-1;1391:160:0;;;;;:::i;:::-;;:::i;2603:817:4:-;;;;;;;;;;-1:-1:-1;2603:817:4;;;;;:::i;:::-;;:::i;3428:160::-;;;;;;;;;;-1:-1:-1;3428:160:4;;;;;:::i;:::-;;:::i;135:41:0:-;;;;;;;;;;-1:-1:-1;135:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;1559:245;;;;;;;;;;-1:-1:-1;1559:245:0;;;;;:::i;:::-;;:::i;2173:176::-;;;;;;;;;;-1:-1:-1;2173:176:0;;;;;:::i;:::-;;:::i;563:48:4:-;;;;;;;;;;-1:-1:-1;563:48:4;;;;;:::i;:::-;;;;;;;;;;;;;;3986:216;;;;;;;;;;-1:-1:-1;3986:216:4;;;;;:::i;:::-;;:::i;2357:254:0:-;;;;;;;;;;-1:-1:-1;2357:254:0;;;;;:::i;:::-;;:::i;1333:485:4:-;;;:::i;4554:259::-;;;;;;;;;;;;;:::i;657:1278:2:-;951:195;;;889:12;951:195;;;;;-1:-1:-1;;;;;1007:20:2;;919:29;1007:20;;;:6;:20;;;;;;;;;951:195;;;;;;;;;;;1181:149;1014:12;951:195;1262:5;1286;1310;1181:6;:149::i;:::-;1159:226;;;;-1:-1:-1;;;1159:226:2;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1424:20:2;;;;;;:6;:20;;;;;;:24;;1447:1;1424:24;:::i;:::-;-1:-1:-1;;;;;1395:20:2;;;;;;:6;:20;;;;;;;;:53;;;;1536:99;;1395:20;;;;1511:4;;1536:99;;1571:18;;1402:12;;1536:99;;:::i;:::-;;;;-1:-1:-1;;1536:99:2;;;;;;;;;;1503:143;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1461:185;;;;1681:7;1659:92;;;;-1:-1:-1;;;1659:92:2;;6656:2:6;1659:92:2;;;6638:21:6;6695:2;6675:18;;;6668:30;6734:34;6714:18;;;6707:62;-1:-1:-1;;;6785:18:6;;;6778:33;6828:19;;1659:92:2;6454:399:6;1659:92:2;1769:128;1807:12;1842:10;1868:18;1769:128;;;;;;;;:::i;:::-;;;;;;;;1917:10;657:1278;-1:-1:-1;;;;;;;;657:1278:2:o;1162:221:0:-;1253:7;-1:-1:-1;;;;;1045:31:0;;1023:111;;;;-1:-1:-1;;;1023:111:0;;;;;;;:::i;:::-;689:10:::1;::::0;-1:-1:-1;;;;;689:10:0::1;675;:24;653:99;;;;-1:-1:-1::0;;;653:99:0::1;;;;;;;:::i;:::-;1295:10:::2;:20:::0;;-1:-1:-1;;;;;;1295:20:0::2;-1:-1:-1::0;;;;;1295:20:0;::::2;::::0;;::::2;::::0;;;1333:42:::2;::::0;160:51:6;;;1333:42:0::2;::::0;148:2:6;133:18;1333:42:0::2;;;;;;;;1162:221:::0;;:::o;4210:336:4:-;689:10:0;;-1:-1:-1;;;;;689:10:0;675;:24;653:99;;;;-1:-1:-1;;;653:99:0;;;;;;;:::i;:::-;4321:20:4::1;4344:78;4370:13;4406:4;4344:11;:78::i;:::-;4321:101;;4435:103;4462:13;4490:10;4515:12;4435;:103::i;:::-;4310:236;4210:336:::0;:::o;1826:769::-;1988:10;2033:34;1988:10;2033:15;:34::i;:::-;2011:110;;;;-1:-1:-1;;;2011:110:4;;;;;;;:::i;:::-;-1:-1:-1;;;;;2134:32:4;;;;;;;:13;:32;;;;;;;;2169:12;2134:47;;2216:30;;;;;:15;:30;;;;;;2194:107;;;;-1:-1:-1;;;2194:107:4;;8564:2:6;2194:107:4;;;8546:21:6;8603:2;8583:18;;;8576:30;8642:29;8622:18;;;8615:57;8689:18;;2194:107:4;8362:351:6;2194:107:4;2405:14;;2314:150;;2345:13;;2373:17;;-1:-1:-1;;;;;2405:14:4;2434:19;2314:16;:150::i;:::-;2482:105;;2557:19;;-1:-1:-1;;;;;2482:105:4;;;2504:10;;2482:105;;;;;1949:646;1826:769;;:::o;3596:168::-;689:10:0;;-1:-1:-1;;;;;689:10:0;675;:24;653:99;;;;-1:-1:-1;;;653:99:0;;;;;;;:::i;:::-;3721:14:4::1;:35:::0;;-1:-1:-1;;;;;;3721:35:4::1;-1:-1:-1::0;;;;;3721:35:4;;;::::1;::::0;;;::::1;::::0;;3596:168::o;3772:206::-;689:10:0;;-1:-1:-1;;;;;689:10:0;675;:24;653:99;;;;-1:-1:-1;;;653:99:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3923:30:4;;;::::1;;::::0;;;:15:::1;:30;::::0;;;;:47;;-1:-1:-1;;3923:47:4::1;::::0;::::1;;::::0;;;::::1;::::0;;3772:206::o;1391:160:0:-;689:10;;-1:-1:-1;;;;;689:10:0;675;:24;653:99;;;;-1:-1:-1;;;653:99:0;;;;;;;:::i;:::-;1497:46:::1;1522:10;1497;:46::i;:::-;1391:160:::0;:::o;2603:817:4:-;844:10:0;835:20;;;;:8;:20;;;;;;;;;;;:28;;;813:106;;;;-1:-1:-1;;;813:106:0;;8920:2:6;813:106:0;;;8902:21:6;8959:2;8939:18;;;8932:30;8998;8978:18;;;8971:58;9046:18;;813:106:0;8718:352:6;813:106:0;2830:34:4::1;2846:17;2830:15;:34::i;:::-;2808:110;;;;-1:-1:-1::0;;;2808:110:4::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;2931:32:4;;::::1;;::::0;;;:13:::1;:32;::::0;;;;;;;2966:12:::1;2931:47:::0;;3013:37;;::::1;::::0;;:15:::1;:37:::0;;;;::::1;;2991:114;;;::::0;-1:-1:-1;;;2991:114:4;;8564:2:6;2991:114:4::1;::::0;::::1;8546:21:6::0;8603:2;8583:18;;;8576:30;8642:29;8622:18;;;8615:57;8689:18;;2991:114:4::1;8362:351:6::0;2991:114:4::1;3216:14;::::0;3118:157:::1;::::0;3149:20;;3184:17;;-1:-1:-1;;;;;3216:14:4::1;3245:19:::0;3118:16:::1;:157::i;:::-;3382:19;3347:20;-1:-1:-1::0;;;;;3293:119:4::1;3315:17;-1:-1:-1::0;;;;;3293:119:4::1;;;;;;;;;;;2603:817:::0;;;:::o;3428:160::-;689:10:0;;-1:-1:-1;;;;;689:10:0;675;:24;653:99;;;;-1:-1:-1;;;653:99:0;;;;;;;:::i;:::-;3549:12:4::1;:31:::0;3428:160::o;1559:245:0:-;689:10;;-1:-1:-1;;;;;689:10:0;675;:24;653:99;;;;-1:-1:-1;;;653:99:0;;;;;;;:::i;:::-;1686:11:::1;1681:116;1703:26;::::0;::::1;::::0;-1:-1:-1;1681:116:0::1;;;1755:30;1766:11;;1778:5;1766:18;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;1755:10;:30::i;:::-;1731:7:::0;::::1;::::0;::::1;:::i;:::-;;;;1681:116;;;;1559:245:::0;;:::o;2173:176::-;689:10;;-1:-1:-1;;;;;689:10:0;675;:24;653:99;;;;-1:-1:-1;;;653:99:0;;;;;;;:::i;:::-;2287:54:::1;2315:15;2287:13;:54::i;3986:216:4:-:0;4182:12;;-1:-1:-1;;;;;4146:32:4;;4102:4;4146:32;;;:13;:32;;;;;;4102:4;;4182:12;4131:47;;:12;:47;:::i;:::-;:63;;;3986:216;-1:-1:-1;;3986:216:4:o;2357:254:0:-;689:10;;-1:-1:-1;;;;;689:10:0;675;:24;653:99;;;;-1:-1:-1;;;653:99:0;;;;;;;:::i;:::-;2488:11:::1;2483:121;2505:27;::::0;::::1;::::0;-1:-1:-1;2483:121:0::1;;;2558:34;2572:12;;2585:5;2572:19;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;2558:13;:34::i;:::-;2534:7:::0;::::1;::::0;::::1;:::i;:::-;;;;2483:121;;1333:485:4::0;1438:10;1483:34;1438:10;1483:15;:34::i;:::-;1461:110;;;;-1:-1:-1;;;1461:110:4;;;;;;;:::i;:::-;-1:-1:-1;;;;;1584:32:4;;;;;;;:13;:32;;;;;;1619:12;1584:47;;1652:14;;1644:67;;1652:14;;;1691:9;1644:67;;;;;1691:9;;1644:67;;1584:32;1644:67;1691:9;1652:14;1644:67;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1729:73:4;;1782:9;;1757:10;;1729:73;;;;;1399:419;1333:485::o;4554:259::-;689:10:0;;-1:-1:-1;;;;;689:10:0;675;:24;653:99;;;;-1:-1:-1;;;653:99:0;;;;;;;:::i;:::-;4655:21:4::1;4695:16:::0;4687:55:::1;;;::::0;-1:-1:-1;;;4687:55:4;;9722:2:6;4687:55:4::1;::::0;::::1;9704:21:6::0;9761:2;9741:18;;;9734:30;9800:28;9780:18;;;9773:56;9846:18;;4687:55:4::1;9520:350:6::0;4687:55:4::1;4763:42;::::0;4771:10:::1;::::0;4763:42;::::1;;;::::0;4792:12;;4763:42:::1;::::0;;;4792:12;4771:10;4763:42;::::1;;;;;;;;;;;;;::::0;::::1;;;;2325:581:2::0;2533:4;2555:14;2572:175;2596:80;2633:28;2653:7;2633:19;:28::i;:::-;2596:18;:80::i;:::-;2572:175;;;;;;;;;;;;10102:25:6;;;;10175:4;10163:17;;10143:18;;;10136:45;10197:18;;;10190:34;;;10240:18;;;10233:34;;;10074:19;;2572:175:2;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2572:175:2;;-1:-1:-1;;2572:175:2;;;-1:-1:-1;;;;;;;2782:22:2;;2760:112;;;;-1:-1:-1;;;2760:112:2;;;;;;;:::i;:::-;2896:5;-1:-1:-1;;;;;2886:15:2;:6;-1:-1:-1;;;;;2886:15:2;;2879:22;;;2325:581;;;;;;;:::o;1837:438:5:-;562:59;;;;;;;;;;;-1:-1:-1;;;562:59:5;;;;;2038:91;;-1:-1:-1;;;;;178:32:6;;;2038:91:5;;;;160:51:6;;;;2038:91:5;;;;;;;;;;133:18:6;;;;2038:91:5;;;;;;;-1:-1:-1;;;;;2038:91:5;-1:-1:-1;;;2038:91:5;;;2012:128;;-1:-1:-1;;;;;;2012:11:5;;;;:128;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1976:164:5;;-1:-1:-1;1976:164:5;-1:-1:-1;2157:16:5;;;2168:5;2157:16;2153:30;;2182:1;2175:8;;;;;;2153:30;2228:4;2203:64;;;;;;;;;;;;:::i;:::-;2196:71;;;;1837:438;;;;;:::o;648:564::-;177:80;;;;;;;;;;;;;;;;;845:125;;-1:-1:-1;;;;;10659:32:6;;;845:125:5;;;10641:51:6;10708:18;;;;10701:34;;;845:125:5;;;;;;;;;;10614:18:6;;;;845:125:5;;;;;;;-1:-1:-1;;;;;845:125:5;-1:-1:-1;;;845:125:5;;;819:162;;-1:-1:-1;;;;819:11:5;;;:162;;845:125;819:162;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;783:198;;;;1016:7;:129;;;;-1:-1:-1;1046:11:5;;:16;;:84;;;1099:4;1066:64;;;;;;;;;;;;:::i;:::-;994:210;;;;-1:-1:-1;;;994:210:5;;11198:2:6;994:210:5;;;11180:21:6;11237:2;11217:18;;;11210:30;11276:33;11256:18;;;11249:61;11327:18;;994:210:5;10996:355:6;994:210:5;772:440;;648:564;;;:::o;1220:609::-;1381:12;1395:17;1416:6;-1:-1:-1;;;;;1416:11:5;365:92;;;;;;;;;;;;;;;;;341:127;;;;;;;1442:140;;-1:-1:-1;;;;;11614:15:6;;;1442:140:5;;;11596:34:6;11666:15;;11646:18;;;11639:43;11698:18;;;11691:34;;;11531:18;;1442:140:5;;;-1:-1:-1;;1442:140:5;;;;;;;;;;;;;;-1:-1:-1;;;;;1442:140:5;-1:-1:-1;;;;;;1442:140:5;;;;;;;;;;1416:177;;;;1442:140;1416:177;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1380:213;;;;1628:7;:129;;;;-1:-1:-1;1658:11:5;;:16;;:84;;;1711:4;1678:64;;;;;;;;;;;;:::i;:::-;1606:215;;;;-1:-1:-1;;;1606:215:5;;11938:2:6;1606:215:5;;;11920:21:6;11977:2;11957:18;;;11950:30;12016:34;11996:18;;;11989:62;-1:-1:-1;;;12067:18:6;;;12060:34;12111:19;;1606:215:5;11736:400:6;1606:215:5;1369:460;;1220:609;;;;:::o;1812:353:0:-;1910:10;-1:-1:-1;;;;;1045:31:0;;1023:111;;;;-1:-1:-1;;;1023:111:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1960:20:0;::::1;;::::0;;;:8:::1;:20;::::0;;;;;::::1;;:29;1938:114;;;::::0;-1:-1:-1;;;1938:114:0;;12343:2:6;1938:114:0::1;::::0;::::1;12325:21:6::0;12382:2;12362:18;;;12355:30;12421:34;12401:18;;;12394:62;-1:-1:-1;;;12472:18:6;;;12465:33;12515:19;;1938:114:0::1;12141:399:6::0;1938:114:0::1;-1:-1:-1::0;;;;;2065:20:0;::::1;;::::0;;;2088:4:::1;2065:20;::::0;;;;;;;;:27;;-1:-1:-1;;2065:27:0::1;::::0;;::::1;::::0;;;2110:47;;160:51:6;;;2110:47:0::1;::::0;133:18:6;2110:47:0::1;14:203:6::0;2619:382:0;2725:15;-1:-1:-1;;;;;1045:31:0;;1023:111;;;;-1:-1:-1;;;1023:111:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2780:25:0;::::1;;::::0;;;:8:::1;:25;::::0;;;;;;;;::::1;;:33;;;2758:117;;;::::0;-1:-1:-1;;;2758:117:0;;12747:2:6;2758:117:0::1;::::0;::::1;12729:21:6::0;12786:2;12766:18;;;12759:30;12825:34;12805:18;;;12798:62;-1:-1:-1;;;12876:18:6;;;12869:32;12918:19;;2758:117:0::1;12545:398:6::0;2758:117:0::1;-1:-1:-1::0;;;;;2888:25:0;::::1;2916:5;2888:25:::0;;;:8:::1;:25;::::0;;;;;;;;:33;;-1:-1:-1;;2888:33:0::1;::::0;;2939:54;;160:51:6;;;2939:54:0::1;::::0;133:18:6;2939:54:0::1;14:203:6::0;1943:374:2;2070:7;234:100;;;;;;;;;;;;;;;;;214:127;;;;;;;2187:13;;2219:12;;;;2260:25;;;;;2250:36;;;;;;2114:187;;;;;13179:25:6;;;13235:2;13220:18;;13213:34;;;;-1:-1:-1;;;;;13283:32:6;13278:2;13263:18;;13256:60;13347:2;13332:18;;13325:34;13166:3;13151:19;;12948:417;2114:187:2;;;;;;;;;;;;;2096:216;;;;;;2089:223;;1943:374;;;:::o;1029:320:1:-;1144:7;1264:20;1001:15;;;897:124;1264:20;1200:130;;-1:-1:-1;;;1200:130:1;;;13628:27:6;13671:11;;;13664:27;;;;13707:12;;;13700:28;;;13744:12;;1200:130:1;13370:392:6;222:173;290:20;;-1:-1:-1;;;;;339:31:6;;329:42;;319:70;;385:1;382;375:12;319:70;222:173;;;:::o;400:127::-;461:10;456:3;452:20;449:1;442:31;492:4;489:1;482:15;516:4;513:1;506:15;532:156;598:20;;658:4;647:16;;637:27;;627:55;;678:1;675;668:12;693:1203;795:6;803;811;819;827;880:3;868:9;859:7;855:23;851:33;848:53;;;897:1;894;887:12;848:53;920:29;939:9;920:29;:::i;:::-;910:39;;1000:2;989:9;985:18;972:32;1023:18;1064:2;1056:6;1053:14;1050:34;;;1080:1;1077;1070:12;1050:34;1118:6;1107:9;1103:22;1093:32;;1163:7;1156:4;1152:2;1148:13;1144:27;1134:55;;1185:1;1182;1175:12;1134:55;1221:2;1208:16;1243:2;1239;1236:10;1233:36;;;1249:18;;:::i;:::-;1324:2;1318:9;1292:2;1378:13;;-1:-1:-1;;1374:22:6;;;1398:2;1370:31;1366:40;1354:53;;;1422:18;;;1442:22;;;1419:46;1416:72;;;1468:18;;:::i;:::-;1508:10;1504:2;1497:22;1543:2;1535:6;1528:18;1583:7;1578:2;1573;1569;1565:11;1561:20;1558:33;1555:53;;;1604:1;1601;1594:12;1555:53;1660:2;1655;1651;1647:11;1642:2;1634:6;1630:15;1617:46;1705:1;1700:2;1695;1687:6;1683:15;1679:24;1672:35;1726:6;1716:16;;;;;;;1779:2;1768:9;1764:18;1751:32;1741:42;;1830:2;1819:9;1815:18;1802:32;1792:42;;1853:37;1885:3;1874:9;1870:19;1853:37;:::i;:::-;1843:47;;693:1203;;;;;;;;:::o;1901:250::-;1986:1;1996:113;2010:6;2007:1;2004:13;1996:113;;;2086:11;;;2080:18;2067:11;;;2060:39;2032:2;2025:10;1996:113;;;-1:-1:-1;;2143:1:6;2125:16;;2118:27;1901:250::o;2156:270::-;2197:3;2235:5;2229:12;2262:6;2257:3;2250:19;2278:76;2347:6;2340:4;2335:3;2331:14;2324:4;2317:5;2313:16;2278:76;:::i;:::-;2408:2;2387:15;-1:-1:-1;;2383:29:6;2374:39;;;;2415:4;2370:50;;2156:270;-1:-1:-1;;2156:270:6:o;2431:217::-;2578:2;2567:9;2560:21;2541:4;2598:44;2638:2;2627:9;2623:18;2615:6;2598:44;:::i;:::-;2590:52;2431:217;-1:-1:-1;;;2431:217:6:o;2653:186::-;2712:6;2765:2;2753:9;2744:7;2740:23;2736:32;2733:52;;;2781:1;2778;2771:12;2733:52;2804:29;2823:9;2804:29;:::i;3026:254::-;3094:6;3102;3155:2;3143:9;3134:7;3130:23;3126:32;3123:52;;;3171:1;3168;3161:12;3123:52;3194:29;3213:9;3194:29;:::i;:::-;3184:39;3270:2;3255:18;;;;3242:32;;-1:-1:-1;;;3026:254:6:o;3285:118::-;3371:5;3364:13;3357:21;3350:5;3347:32;3337:60;;3393:1;3390;3383:12;3408:315;3473:6;3481;3534:2;3522:9;3513:7;3509:23;3505:32;3502:52;;;3550:1;3547;3540:12;3502:52;3573:29;3592:9;3573:29;:::i;:::-;3563:39;;3652:2;3641:9;3637:18;3624:32;3665:28;3687:5;3665:28;:::i;:::-;3712:5;3702:15;;;3408:315;;;;;:::o;3920:328::-;3997:6;4005;4013;4066:2;4054:9;4045:7;4041:23;4037:32;4034:52;;;4082:1;4079;4072:12;4034:52;4105:29;4124:9;4105:29;:::i;:::-;4095:39;;4153:38;4187:2;4176:9;4172:18;4153:38;:::i;:::-;4143:48;;4238:2;4227:9;4223:18;4210:32;4200:42;;3920:328;;;;;:::o;4253:180::-;4312:6;4365:2;4353:9;4344:7;4340:23;4336:32;4333:52;;;4381:1;4378;4371:12;4333:52;-1:-1:-1;4404:23:6;;4253:180;-1:-1:-1;4253:180:6:o;4438:615::-;4524:6;4532;4585:2;4573:9;4564:7;4560:23;4556:32;4553:52;;;4601:1;4598;4591:12;4553:52;4641:9;4628:23;4670:18;4711:2;4703:6;4700:14;4697:34;;;4727:1;4724;4717:12;4697:34;4765:6;4754:9;4750:22;4740:32;;4810:7;4803:4;4799:2;4795:13;4791:27;4781:55;;4832:1;4829;4822:12;4781:55;4872:2;4859:16;4898:2;4890:6;4887:14;4884:34;;;4914:1;4911;4904:12;4884:34;4967:7;4962:2;4952:6;4949:1;4945:14;4941:2;4937:23;4933:32;4930:45;4927:65;;;4988:1;4985;4978:12;4927:65;5019:2;5011:11;;;;;5041:6;;-1:-1:-1;4438:615:6;;-1:-1:-1;;;;4438:615:6:o;5058:404::-;5260:2;5242:21;;;5299:2;5279:18;;;5272:30;5338:34;5333:2;5318:18;;5311:62;-1:-1:-1;;;5404:2:6;5389:18;;5382:38;5452:3;5437:19;;5058:404::o;5467:127::-;5528:10;5523:3;5519:20;5516:1;5509:31;5559:4;5556:1;5549:15;5583:4;5580:1;5573:15;5599:125;5664:9;;;5685:10;;;5682:36;;;5698:18;;:::i;5729:428::-;5886:3;5924:6;5918:13;5940:66;5999:6;5994:3;5987:4;5979:6;5975:17;5940:66;:::i;:::-;6075:2;6071:15;;;;-1:-1:-1;;6067:53:6;6028:16;;;;6053:68;;;6148:2;6137:14;;5729:428;-1:-1:-1;;5729:428:6:o;6162:287::-;6291:3;6329:6;6323:13;6345:66;6404:6;6399:3;6392:4;6384:6;6380:17;6345:66;:::i;:::-;6427:16;;;;;6162:287;-1:-1:-1;;6162:287:6:o;6858:431::-;-1:-1:-1;;;;;7115:15:6;;;7097:34;;7167:15;;7162:2;7147:18;;7140:43;7219:2;7214;7199:18;;7192:30;;;7040:4;;7239:44;;7264:18;;7256:6;7239:44;:::i;:::-;7231:52;6858:431;-1:-1:-1;;;;;6858:431:6:o;7294:354::-;7496:2;7478:21;;;7535:2;7515:18;;;7508:30;7574:32;7569:2;7554:18;;7547:60;7639:2;7624:18;;7294:354::o;7653:349::-;7855:2;7837:21;;;7894:2;7874:18;;;7867:30;7933:27;7928:2;7913:18;;7906:55;7993:2;7978:18;;7653:349::o;8007:350::-;8209:2;8191:21;;;8248:2;8228:18;;;8221:30;8287:28;8282:2;8267:18;;8260:56;8348:2;8333:18;;8007:350::o;9075:127::-;9136:10;9131:3;9127:20;9124:1;9117:31;9167:4;9164:1;9157:15;9191:4;9188:1;9181:15;9207:175;9244:3;9288:4;9281:5;9277:16;9317:4;9308:7;9305:17;9302:43;;9325:18;;:::i;:::-;9374:1;9361:15;;9207:175;-1:-1:-1;;9207:175:6:o;9387:128::-;9454:9;;;9475:11;;;9472:37;;;9489:18;;:::i;10278:184::-;10348:6;10401:2;10389:9;10380:7;10376:23;10372:32;10369:52;;;10417:1;10414;10407:12;10369:52;-1:-1:-1;10440:16:6;;10278:184;-1:-1:-1;10278:184:6:o;10746:245::-;10813:6;10866:2;10854:9;10845:7;10841:23;10837:32;10834:52;;;10882:1;10879;10872:12;10834:52;10914:9;10908:16;10933:28;10955:5;10933:28;:::i

Swarm Source

ipfs://1716ef01dbbf3cd188b8b891e6a1c3e30d3c32ebd25480ff6377adee4e8e7dc9

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  ]

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.