BNB Price: $618.78 (-1.65%)
 

Overview

BNB Balance

BNB Smart Chain LogoBNB Smart Chain LogoBNB Smart Chain Logo20.259534454967320168 BNB

BNB Value

$12,536.20 (@ $618.78/BNB)

Token Holdings

More Info

Private Name Tags

ContractCreator

N/A (Genesis Contract)

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Claim Relayer Re...441377222024-11-19 5:25:10454 days ago1731993910IN
BSC: Relayer Incentivize
0 BNB0.000036391.2
Claim Relayer Re...441287422024-11-18 21:56:10454 days ago1731966970IN
BSC: Relayer Incentivize
0 BNB0.000036391.2
Claim Relayer Re...441265022024-11-18 20:04:10454 days ago1731960250IN
BSC: Relayer Incentivize
0 BNB0.000036391.2
Claim Relayer Re...441243022024-11-18 18:14:10454 days ago1731953650IN
BSC: Relayer Incentivize
0 BNB0.000036391.2
Claim Relayer Re...441213822024-11-18 15:48:10454 days ago1731944890IN
BSC: Relayer Incentivize
0 BNB0.000036391.2
Claim Relayer Re...441158612024-11-18 11:12:07455 days ago1731928327IN
BSC: Relayer Incentivize
0 BNB0.000036391.2
Claim Relayer Re...440963612024-11-17 18:57:07455 days ago1731869827IN
BSC: Relayer Incentivize
0 BNB0.000036391.2
Claim Relayer Re...440683002024-11-16 19:34:03456 days ago1731785643IN
BSC: Relayer Incentivize
0 BNB0.000036391.2
Claim Relayer Re...440309802024-11-15 12:27:59457 days ago1731673679IN
BSC: Relayer Incentivize
0 BNB0.000036391.2
Claim Relayer Re...439848602024-11-13 22:01:56459 days ago1731535316IN
BSC: Relayer Incentivize
0 BNB0.000036391.2
Claim Relayer Re...439502822024-11-12 17:12:52460 days ago1731431572IN
BSC: Relayer Incentivize
0 BNB0.000036391.2
Claim Relayer Re...439218822024-11-11 17:32:49461 days ago1731346369IN
BSC: Relayer Incentivize
0 BNB0.000036391.2
Claim Relayer Re...438721042024-11-10 0:03:44463 days ago1731197024IN
BSC: Relayer Incentivize
0 BNB0.000036391.2
Claim Relayer Re...437952492024-11-07 8:00:37466 days ago1730966437IN
BSC: Relayer Incentivize
0 BNB0.000036391.2
Claim Relayer Re...437159942024-11-04 13:46:28468 days ago1730727988IN
BSC: Relayer Incentivize
0 BNB0.000036391.2
Claim Relayer Re...435743512024-10-30 15:43:44473 days ago1730303024IN
BSC: Relayer Incentivize
0 BNB0.000036391.2
Claim Relayer Re...434795522024-10-27 8:43:36477 days ago1730018616IN
BSC: Relayer Incentivize
0 BNB0.000036391.2
Claim Relayer Re...433422332024-10-22 14:17:21481 days ago1729606641IN
BSC: Relayer Incentivize
0 BNB0.000036391.2
Claim Relayer Re...432331822024-10-18 19:24:11485 days ago1729279451IN
BSC: Relayer Incentivize
0 BNB0.000036391.2
Claim Relayer Re...431361482024-10-15 10:32:04489 days ago1728988324IN
BSC: Relayer Incentivize
0 BNB0.000036391.2
Claim Relayer Re...430264922024-10-11 15:08:52492 days ago1728659332IN
BSC: Relayer Incentivize
0 BNB0.000036391.2
Claim Relayer Re...429112892024-10-07 15:08:40496 days ago1728313720IN
BSC: Relayer Incentivize
0 BNB0.000036391.2
Claim Relayer Re...427991142024-10-03 17:39:26500 days ago1727977166IN
BSC: Relayer Incentivize
0 BNB0.000036391.2
Claim Relayer Re...426886972024-09-29 21:38:11504 days ago1727645891IN
BSC: Relayer Incentivize
0 BNB0.000036391.2
Claim Relayer Re...426074592024-09-27 1:56:02507 days ago1727402162IN
BSC: Relayer Incentivize
0 BNB0.000036391.2
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
441391922024-11-19 6:38:40454 days ago1731998320
BSC: Relayer Incentivize
0.001 BNB
441391922024-11-19 6:38:40454 days ago1731998320
BSC: Relayer Incentivize
0.004 BNB
441391922024-11-19 6:38:40454 days ago1731998320
BSC: Relayer Incentivize
0.011 BNB
441391922024-11-19 6:38:40454 days ago1731998320
BSC: Relayer Incentivize
0.011 BNB
441391922024-11-19 6:38:40454 days ago1731998320
BSC: Relayer Incentivize
0.011 BNB
441391922024-11-19 6:38:40454 days ago1731998320
BSC: Relayer Incentivize
0.011 BNB
441391922024-11-19 6:38:40454 days ago1731998320
BSC: Relayer Incentivize
0.011 BNB
441391922024-11-19 6:38:40454 days ago1731998320
BSC: Relayer Incentivize
0.011 BNB
441391922024-11-19 6:38:40454 days ago1731998320
BSC: Relayer Incentivize
0.011 BNB
441391922024-11-19 6:38:40454 days ago1731998320
BSC: Relayer Incentivize
0.011 BNB
441391922024-11-19 6:38:40454 days ago1731998320
BSC: Relayer Incentivize
0.011 BNB
441391922024-11-19 6:38:40454 days ago1731998320
BSC: Relayer Incentivize
0.011 BNB
441391922024-11-19 6:38:40454 days ago1731998320
BSC: Relayer Incentivize
0.011 BNB
441391922024-11-19 6:38:40454 days ago1731998320
BSC: Relayer Incentivize
0.011 BNB
441391852024-11-19 6:38:19454 days ago1731998299
BSC: Relayer Incentivize
0.001 BNB
441391852024-11-19 6:38:19454 days ago1731998299
BSC: Relayer Incentivize
0.004 BNB
441391812024-11-19 6:38:07454 days ago1731998287
BSC: Relayer Incentivize
0.001 BNB
441391812024-11-19 6:38:07454 days ago1731998287
BSC: Relayer Incentivize
0.004 BNB
441391772024-11-19 6:37:55454 days ago1731998275
BSC: Relayer Incentivize
0.001 BNB
441391772024-11-19 6:37:55454 days ago1731998275
BSC: Relayer Incentivize
0.004 BNB
441391592024-11-19 6:37:01454 days ago1731998221
BSC: Relayer Incentivize
0.001 BNB
441391592024-11-19 6:37:01454 days ago1731998221
BSC: Relayer Incentivize
0.004 BNB
441391562024-11-19 6:36:52454 days ago1731998212
BSC: Relayer Incentivize
0.001 BNB
441391562024-11-19 6:36:52454 days ago1731998212
BSC: Relayer Incentivize
0.004 BNB
441391442024-11-19 6:36:16454 days ago1731998176
BSC: Relayer Incentivize
0.001 BNB
View All Internal Transactions
Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Genesis Bytecode Match Only)

Contract Name:
RelayerIncentivize

Compiler Version
v0.6.4+commit.1dca32f3

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at BscScan.com on 2021-03-01
*/

pragma solidity 0.6.4;

interface IRelayerIncentivize {
    function addReward(
        address payable headerRelayerAddr,
        address payable packageRelayer,
        uint256 amount,
        bool fromSystemReward
    ) external returns (bool);
}

interface ISystemReward {
    function claimRewards(address payable to, uint256 amount) external returns (uint256 actualAmount);
}

interface IRelayerHub {
    function isRelayer(address sender) external view returns (bool);
}

interface ILightClient {
    function isHeaderSynced(uint64 height) external view returns (bool);

    function getAppHash(uint64 height) external view returns (bytes32);

    function getSubmitter(uint64 height) external view returns (address payable);
}

contract System {
    bool public alreadyInit;

    uint32 public constant CODE_OK = 0;
    uint16 public constant bscChainID = 0x0038;
    address public constant VALIDATOR_CONTRACT_ADDR = 0x0000000000000000000000000000000000001000;
    address public constant SLASH_CONTRACT_ADDR = 0x0000000000000000000000000000000000001001;
    address public constant SYSTEM_REWARD_ADDR = 0x0000000000000000000000000000000000001002;
    address public constant LIGHT_CLIENT_ADDR = 0x0000000000000000000000000000000000001003;
    address public constant TOKEN_HUB_ADDR = 0x0000000000000000000000000000000000001004;
    address public constant INCENTIVIZE_ADDR = 0x0000000000000000000000000000000000001005;
    address public constant RELAYERHUB_CONTRACT_ADDR = 0x0000000000000000000000000000000000001006;
    address public constant GOV_HUB_ADDR = 0x0000000000000000000000000000000000001007;
    address public constant TOKEN_MANAGER_ADDR = 0x0000000000000000000000000000000000001008;
    address public constant CROSS_CHAIN_CONTRACT_ADDR = 0x0000000000000000000000000000000000002000;
    address public constant STAKING_CONTRACT_ADDR = 0x0000000000000000000000000000000000002001;
    address public constant STAKE_HUB_ADDR = 0x0000000000000000000000000000000000002002;
    address public constant STAKE_CREDIT_ADDR = 0x0000000000000000000000000000000000002003;
    address public constant GOVERNOR_ADDR = 0x0000000000000000000000000000000000002004;
    address public constant GOV_TOKEN_ADDR = 0x0000000000000000000000000000000000002005;
    address public constant TIMELOCK_ADDR = 0x0000000000000000000000000000000000002006;
    address public constant TOKEN_RECOVER_PORTAL_ADDR = 0x0000000000000000000000000000000000003000;

    modifier onlyCoinbase() {
        require(msg.sender == block.coinbase, "the message sender must be the block producer");
        _;
    }

    modifier onlyZeroGasPrice() {
        require(tx.gasprice == 0, "gasprice is not zero");
        _;
    }

    modifier onlyNotInit() {
        require(!alreadyInit, "the contract already init");
        _;
    }

    modifier onlyInit() {
        require(alreadyInit, "the contract not init yet");
        _;
    }

    modifier onlySlash() {
        require(msg.sender == SLASH_CONTRACT_ADDR, "the message sender must be slash contract");
        _;
    }

    modifier onlyTokenHub() {
        require(msg.sender == TOKEN_HUB_ADDR, "the message sender must be token hub contract");
        _;
    }

    modifier onlyGov() {
        require(msg.sender == GOV_HUB_ADDR, "the message sender must be governance contract");
        _;
    }

    modifier onlyValidatorContract() {
        require(msg.sender == VALIDATOR_CONTRACT_ADDR, "the message sender must be validatorSet contract");
        _;
    }

    modifier onlyCrossChainContract() {
        require(msg.sender == CROSS_CHAIN_CONTRACT_ADDR, "the message sender must be cross chain contract");
        _;
    }

    modifier onlyRelayerIncentivize() {
        require(msg.sender == INCENTIVIZE_ADDR, "the message sender must be incentivize contract");
        _;
    }

    modifier onlyRelayer() {
        require(IRelayerHub(RELAYERHUB_CONTRACT_ADDR).isRelayer(msg.sender), "the msg sender is not a relayer");
        _;
    }

    modifier onlyTokenManager() {
        require(msg.sender == TOKEN_MANAGER_ADDR, "the msg sender must be tokenManager");
        _;
    }

    modifier onlyStakeHub() {
        require(msg.sender == STAKE_HUB_ADDR, "the msg sender must be stakeHub");
        _;
    }

    modifier onlyGovernorTimelock() {
        require(msg.sender == TIMELOCK_ADDR, "the msg sender must be governor timelock contract");
        _;
    }

    modifier onlyTokenRecoverPortal() {
        require(msg.sender == TOKEN_RECOVER_PORTAL_ADDR, "the msg sender must be token recover portal");
        _;
    }

    // Not reliable, do not use when need strong verify
    function isContract(address addr) internal view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(addr)
        }
        return size > 0;
    }
}

/**
 * Copyright (c) 2016-2019 zOS Global Limited
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library Memory {
    // Size of a word, in bytes.
    uint256 internal constant WORD_SIZE = 32;
    // Size of the header of a 'bytes' array.
    uint256 internal constant BYTES_HEADER_SIZE = 32;
    // Address of the free memory pointer.
    uint256 internal constant FREE_MEM_PTR = 0x40;

    // Compares the 'len' bytes starting at address 'addr' in memory with the 'len'
    // bytes starting at 'addr2'.
    // Returns 'true' if the bytes are the same, otherwise 'false'.
    function equals(uint256 addr, uint256 addr2, uint256 len) internal pure returns (bool equal) {
        assembly {
            equal := eq(keccak256(addr, len), keccak256(addr2, len))
        }
    }

    // Compares the 'len' bytes starting at address 'addr' in memory with the bytes stored in
    // 'bts'. It is allowed to set 'len' to a lower value then 'bts.length', in which case only
    // the first 'len' bytes will be compared.
    // Requires that 'bts.length >= len'
    function equals(uint256 addr, uint256 len, bytes memory bts) internal pure returns (bool equal) {
        require(bts.length >= len);
        uint256 addr2;
        assembly {
            addr2 := add(bts, /*BYTES_HEADER_SIZE*/ 32)
        }
        return equals(addr, addr2, len);
    }

    function compareStrings(string memory a, string memory b) internal pure returns (bool) {
        return (keccak256(abi.encodePacked((a))) == keccak256(abi.encodePacked((b))));
    }

    // Copy 'len' bytes from memory address 'src', to address 'dest'.
    // This function does not check the or destination, it only copies
    // the bytes.
    function copy(uint256 src, uint256 dest, uint256 len) internal pure {
        // Copy word-length chunks while possible
        for (; len >= WORD_SIZE; len -= WORD_SIZE) {
            assembly {
                mstore(dest, mload(src))
            }
            dest += WORD_SIZE;
            src += WORD_SIZE;
        }

        // Copy remaining bytes
        uint256 mask = 256 ** (WORD_SIZE - len) - 1;
        assembly {
            let srcpart := and(mload(src), not(mask))
            let destpart := and(mload(dest), mask)
            mstore(dest, or(destpart, srcpart))
        }
    }

    // Returns a memory pointer to the provided bytes array.
    function ptr(bytes memory bts) internal pure returns (uint256 addr) {
        assembly {
            addr := bts
        }
    }

    // Returns a memory pointer to the data portion of the provided bytes array.
    function dataPtr(bytes memory bts) internal pure returns (uint256 addr) {
        assembly {
            addr := add(bts, /*BYTES_HEADER_SIZE*/ 32)
        }
    }

    // This function does the same as 'dataPtr(bytes memory)', but will also return the
    // length of the provided bytes array.
    function fromBytes(bytes memory bts) internal pure returns (uint256 addr, uint256 len) {
        len = bts.length;
        assembly {
            addr := add(bts, /*BYTES_HEADER_SIZE*/ 32)
        }
    }

    // Creates a 'bytes memory' variable from the memory address 'addr', with the
    // length 'len'. The function will allocate new memory for the bytes array, and
    // the 'len bytes starting at 'addr' will be copied into that new memory.
    function toBytes(uint256 addr, uint256 len) internal pure returns (bytes memory bts) {
        bts = new bytes(len);
        uint256 btsptr;
        assembly {
            btsptr := add(bts, /*BYTES_HEADER_SIZE*/ 32)
        }
        copy(addr, btsptr, len);
    }

    // Get the word stored at memory address 'addr' as a 'uint'.
    function toUint(uint256 addr) internal pure returns (uint256 n) {
        assembly {
            n := mload(addr)
        }
    }

    // Get the word stored at memory address 'addr' as a 'bytes32'.
    function toBytes32(uint256 addr) internal pure returns (bytes32 bts) {
        assembly {
            bts := mload(addr)
        }
    }
}

/**
 * @title BytesToTypes
 * Copyright (c) 2016-2020 zpouladzade/Seriality
 * @dev The BytesToTypes contract converts the memory byte arrays to the standard solidity types
 * @author [email protected]
 */
library BytesToTypes {
    function bytesToAddress(uint256 _offst, bytes memory _input) internal pure returns (address _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToBool(uint256 _offst, bytes memory _input) internal pure returns (bool _output) {
        uint8 x;
        assembly {
            x := mload(add(_input, _offst))
        }
        x == 0 ? _output = false : _output = true;
    }

    function getStringSize(uint256 _offst, bytes memory _input) internal pure returns (uint256 size) {
        assembly {
            size := mload(add(_input, _offst))
            let chunk_count := add(div(size, 32), 1) // chunk_count = size/32 + 1

            if gt(mod(size, 32), 0) {
                // if size%32 > 0
                chunk_count := add(chunk_count, 1)
            }

            size := mul(chunk_count, 32) // first 32 bytes reseves for size in strings
        }
    }

    function bytesToString(uint256 _offst, bytes memory _input, bytes memory _output) internal pure {
        uint256 size = 32;
        assembly {
            let chunk_count

            size := mload(add(_input, _offst))
            chunk_count := add(div(size, 32), 1) // chunk_count = size/32 + 1

            if gt(mod(size, 32), 0) { chunk_count := add(chunk_count, 1) } // chunk_count++

            for { let index := 0 } lt(index, chunk_count) { index := add(index, 1) } {
                mstore(add(_output, mul(index, 32)), mload(add(_input, _offst)))
                _offst := sub(_offst, 32) // _offst -= 32
            }
        }
    }

    function bytesToBytes32(uint256 _offst, bytes memory _input, bytes32 _output) internal pure {
        assembly {
            mstore(_output, add(_input, _offst))
            mstore(add(_output, 32), add(add(_input, _offst), 32))
        }
    }

    function bytesToInt8(uint256 _offst, bytes memory _input) internal pure returns (int8 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt16(uint256 _offst, bytes memory _input) internal pure returns (int16 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt24(uint256 _offst, bytes memory _input) internal pure returns (int24 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt32(uint256 _offst, bytes memory _input) internal pure returns (int32 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt40(uint256 _offst, bytes memory _input) internal pure returns (int40 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt48(uint256 _offst, bytes memory _input) internal pure returns (int48 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt56(uint256 _offst, bytes memory _input) internal pure returns (int56 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt64(uint256 _offst, bytes memory _input) internal pure returns (int64 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt72(uint256 _offst, bytes memory _input) internal pure returns (int72 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt80(uint256 _offst, bytes memory _input) internal pure returns (int80 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt88(uint256 _offst, bytes memory _input) internal pure returns (int88 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt96(uint256 _offst, bytes memory _input) internal pure returns (int96 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt104(uint256 _offst, bytes memory _input) internal pure returns (int104 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt112(uint256 _offst, bytes memory _input) internal pure returns (int112 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt120(uint256 _offst, bytes memory _input) internal pure returns (int120 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt128(uint256 _offst, bytes memory _input) internal pure returns (int128 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt136(uint256 _offst, bytes memory _input) internal pure returns (int136 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt144(uint256 _offst, bytes memory _input) internal pure returns (int144 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt152(uint256 _offst, bytes memory _input) internal pure returns (int152 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt160(uint256 _offst, bytes memory _input) internal pure returns (int160 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt168(uint256 _offst, bytes memory _input) internal pure returns (int168 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt176(uint256 _offst, bytes memory _input) internal pure returns (int176 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt184(uint256 _offst, bytes memory _input) internal pure returns (int184 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt192(uint256 _offst, bytes memory _input) internal pure returns (int192 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt200(uint256 _offst, bytes memory _input) internal pure returns (int200 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt208(uint256 _offst, bytes memory _input) internal pure returns (int208 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt216(uint256 _offst, bytes memory _input) internal pure returns (int216 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt224(uint256 _offst, bytes memory _input) internal pure returns (int224 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt232(uint256 _offst, bytes memory _input) internal pure returns (int232 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt240(uint256 _offst, bytes memory _input) internal pure returns (int240 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt248(uint256 _offst, bytes memory _input) internal pure returns (int248 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToInt256(uint256 _offst, bytes memory _input) internal pure returns (int256 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint8(uint256 _offst, bytes memory _input) internal pure returns (uint8 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint16(uint256 _offst, bytes memory _input) internal pure returns (uint16 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint24(uint256 _offst, bytes memory _input) internal pure returns (uint24 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint32(uint256 _offst, bytes memory _input) internal pure returns (uint32 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint40(uint256 _offst, bytes memory _input) internal pure returns (uint40 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint48(uint256 _offst, bytes memory _input) internal pure returns (uint48 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint56(uint256 _offst, bytes memory _input) internal pure returns (uint56 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint64(uint256 _offst, bytes memory _input) internal pure returns (uint64 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint72(uint256 _offst, bytes memory _input) internal pure returns (uint72 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint80(uint256 _offst, bytes memory _input) internal pure returns (uint80 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint88(uint256 _offst, bytes memory _input) internal pure returns (uint88 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint96(uint256 _offst, bytes memory _input) internal pure returns (uint96 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint104(uint256 _offst, bytes memory _input) internal pure returns (uint104 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint112(uint256 _offst, bytes memory _input) internal pure returns (uint112 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint120(uint256 _offst, bytes memory _input) internal pure returns (uint120 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint128(uint256 _offst, bytes memory _input) internal pure returns (uint128 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint136(uint256 _offst, bytes memory _input) internal pure returns (uint136 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint144(uint256 _offst, bytes memory _input) internal pure returns (uint144 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint152(uint256 _offst, bytes memory _input) internal pure returns (uint152 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint160(uint256 _offst, bytes memory _input) internal pure returns (uint160 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint168(uint256 _offst, bytes memory _input) internal pure returns (uint168 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint176(uint256 _offst, bytes memory _input) internal pure returns (uint176 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint184(uint256 _offst, bytes memory _input) internal pure returns (uint184 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint192(uint256 _offst, bytes memory _input) internal pure returns (uint192 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint200(uint256 _offst, bytes memory _input) internal pure returns (uint200 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint208(uint256 _offst, bytes memory _input) internal pure returns (uint208 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint216(uint256 _offst, bytes memory _input) internal pure returns (uint216 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint224(uint256 _offst, bytes memory _input) internal pure returns (uint224 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint232(uint256 _offst, bytes memory _input) internal pure returns (uint232 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint240(uint256 _offst, bytes memory _input) internal pure returns (uint240 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint248(uint256 _offst, bytes memory _input) internal pure returns (uint248 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }

    function bytesToUint256(uint256 _offst, bytes memory _input) internal pure returns (uint256 _output) {
        assembly {
            _output := mload(add(_input, _offst))
        }
    }
}

interface IParamSubscriber {
    function updateParam(string calldata key, bytes calldata value) external;
}

contract RelayerIncentivize is IRelayerIncentivize, System, IParamSubscriber {
    using SafeMath for uint256;

    uint256 public constant HEADER_RELAYER_REWARD_RATE_MOLECULE = 1;
    uint256 public constant HEADER_RELAYER_REWARD_RATE_DENOMINATOR = 5;
    uint256 public constant CALLER_COMPENSATION_MOLECULE = 1;
    uint256 public constant CALLER_COMPENSATION_DENOMINATOR = 80;

    uint256 public headerRelayerRewardRateMolecule;
    uint256 public headerRelayerRewardRateDenominator;
    uint256 public callerCompensationMolecule;
    uint256 public callerCompensationDenominator;

    mapping(address => uint256) public headerRelayersSubmitCount;  // @dev deprecated
    address payable[] public headerRelayerAddressRecord;  // @dev deprecated

    mapping(address => uint256) public packageRelayersSubmitCount;  // @dev deprecated
    address payable[] public packageRelayerAddressRecord;  // @dev deprecated

    uint256 public collectedRewardForHeaderRelayer = 0;  // @dev deprecated
    uint256 public collectedRewardForTransferRelayer = 0;  // @dev deprecated

    uint256 public roundSequence = 0;  // @dev deprecated
    uint256 public countInRound = 0;  // @dev deprecated

    mapping(address => uint256) public relayerRewardVault;

    uint256 public dynamicExtraIncentiveAmount;  // @dev deprecated

    event rewardToRelayer(address relayer, uint256 amount);

    event distributeCollectedReward(
        uint256 sequence, uint256 roundRewardForHeaderRelayer, uint256 roundRewardForTransferRelayer
    );  // @dev deprecated
    event paramChange(string key, bytes value);  // @dev deprecated

    function init() external onlyNotInit {
        require(!alreadyInit, "already initialized");
        headerRelayerRewardRateMolecule = HEADER_RELAYER_REWARD_RATE_MOLECULE;
        headerRelayerRewardRateDenominator = HEADER_RELAYER_REWARD_RATE_DENOMINATOR;
        callerCompensationMolecule = CALLER_COMPENSATION_MOLECULE;
        callerCompensationDenominator = CALLER_COMPENSATION_DENOMINATOR;
        alreadyInit = true;
    }

    receive() external payable { }

    function addReward(
        address payable headerRelayerAddr,
        address payable packageRelayer,
        uint256 amount,
        bool fromSystemReward
    ) external override onlyInit onlyCrossChainContract returns (bool) {
        revert("deprecated");
    }

    function updateParam(string calldata key, bytes calldata value) external override onlyGov {
        revert("deprecated");
    }
}

Contract Security Audit

Contract ABI

API
[{"anonymous": false,"inputs": [{"indexed": false,"internalType": "uint256","name": "sequence","type": "uint256"},{"indexed": false,"internalType": "uint256","name": "roundRewardForHeaderRelayer","type": "uint256"},{"indexed": false,"internalType": "uint256","name": "roundRewardForTransferRelayer","type": "uint256"}],"name": "distributeCollectedReward","type": "event"},{"anonymous": false,"inputs": [{"indexed": false,"internalType": "string","name": "key","type": "string"},{"indexed": false,"internalType": "bytes","name": "value","type": "bytes"}],"name": "paramChange","type": "event"},{"anonymous": false,"inputs": [{"indexed": false,"internalType": "address","name": "relayer","type": "address"},{"indexed": false,"internalType": "uint256","name": "amount","type": "uint256"}],"name": "rewardToRelayer","type": "event"},{"inputs": [],"name": "CALLER_COMPENSATION_DENOMINATOR","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "CALLER_COMPENSATION_MOLECULE","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "CODE_OK","outputs": [{"internalType": "uint32","name": "","type": "uint32"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "CROSS_CHAIN_CONTRACT_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "GOVERNOR_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "GOV_HUB_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "GOV_TOKEN_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "HEADER_RELAYER_REWARD_RATE_DENOMINATOR","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "HEADER_RELAYER_REWARD_RATE_MOLECULE","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "INCENTIVIZE_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "LIGHT_CLIENT_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "RELAYERHUB_CONTRACT_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "SLASH_CONTRACT_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "STAKE_CREDIT_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "STAKE_HUB_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "STAKING_CONTRACT_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "SYSTEM_REWARD_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "TIMELOCK_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "TOKEN_HUB_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "TOKEN_MANAGER_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "TOKEN_RECOVER_PORTAL_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "VALIDATOR_CONTRACT_ADDR","outputs": [{"internalType": "address","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [{"internalType": "address payable","name": "headerRelayerAddr","type": "address"},{"internalType": "address payable","name": "packageRelayer","type": "address"},{"internalType": "uint256","name": "amount","type": "uint256"},{"internalType": "bool","name": "fromSystemReward","type": "bool"}],"name": "addReward","outputs": [{"internalType": "bool","name": "","type": "bool"}],"stateMutability": "nonpayable","type": "function"},{"inputs": [],"name": "alreadyInit","outputs": [{"internalType": "bool","name": "","type": "bool"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "bscChainID","outputs": [{"internalType": "uint16","name": "","type": "uint16"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "callerCompensationDenominator","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "callerCompensationMolecule","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "collectedRewardForHeaderRelayer","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "collectedRewardForTransferRelayer","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "countInRound","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "dynamicExtraIncentiveAmount","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [{"internalType": "uint256","name": "","type": "uint256"}],"name": "headerRelayerAddressRecord","outputs": [{"internalType": "address payable","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "headerRelayerRewardRateDenominator","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "headerRelayerRewardRateMolecule","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [{"internalType": "address","name": "","type": "address"}],"name": "headerRelayersSubmitCount","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "init","outputs": [],"stateMutability": "nonpayable","type": "function"},{"inputs": [{"internalType": "uint256","name": "","type": "uint256"}],"name": "packageRelayerAddressRecord","outputs": [{"internalType": "address payable","name": "","type": "address"}],"stateMutability": "view","type": "function"},{"inputs": [{"internalType": "address","name": "","type": "address"}],"name": "packageRelayersSubmitCount","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [{"internalType": "address","name": "","type": "address"}],"name": "relayerRewardVault","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [],"name": "roundSequence","outputs": [{"internalType": "uint256","name": "","type": "uint256"}],"stateMutability": "view","type": "function"},{"inputs": [{"internalType": "string","name": "key","type": "string"},{"internalType": "bytes","name": "value","type": "bytes"}],"name": "updateParam","outputs": [],"stateMutability": "nonpayable","type": "function"},{"stateMutability": "payable","type": "receive"}]

0x60806040526004361061024a5760003560e01c8063930e1b0911610139578063ace9fcc2116100b6578063df8079e91161007a578063df8079e9146106d5578063e1c7392a146106ea578063e89a3020146106ff578063f9a2bbc714610729578063fd6a68791461073e578063fdd31fcd1461075357610251565b8063ace9fcc21461066c578063c81b166214610681578063d0ab528a14610696578063dc927faf146106ab578063dcae76ab146106c057610251565b8063a7c6a59d116100fd578063a7c6a59d1461052e578063aa82dce114610543578063aad5606314610558578063ab51bb961461056d578063ac4317511461059b57610251565b8063930e1b09146104a75780639dc09262146104da578063a1a11bf5146104ef578063a3c3c0ad14610504578063a78abc161461051957610251565b806343756e5c116101c75780636f93d2e61161018b5780636f93d2e6146103f457806374f2272d1461045357806375d47a0a146104685780637e146cc51461047d5780637e434d541461049257610251565b806343756e5c14610374578063493279b11461038957806351b4dce3146103b557806351e80672146103ca5780636e47b482146103df57610251565b80631b20087c1161020e5780631b20087c146102ed5780631c64331214610302578063280870281461032c5780633a9756121461025657806340bb43c01461034157610251565b8063081e9d1314610256578063093f2fc41461027d5780630e2374a51461029257806310e06a76146102c357806312950c46146102d857610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b610786565b60408051918252519081900360200190f35b34801561028957600080fd5b5061026b61078b565b34801561029e57600080fd5b506102a7610790565b604080516001600160a01b039092168252519081900360200190f35b3480156102cf57600080fd5b5061026b610796565b3480156102e457600080fd5b5061026b61079c565b3480156102f957600080fd5b5061026b6107a2565b34801561030e57600080fd5b506102a76004803603602081101561032557600080fd5b50356107a8565b34801561033857600080fd5b506102a76107cf565b34801561034d57600080fd5b5061026b6004803603602081101561036457600080fd5b50356001600160a01b03166107d5565b34801561038057600080fd5b506102a76107e7565b34801561039557600080fd5b5061039e6107ed565b6040805161ffff9092168252519081900360200190f35b3480156103c157600080fd5b506102a76107f2565b3480156103d657600080fd5b506102a76107f8565b3480156103eb57600080fd5b506102a76107fe565b34801561040057600080fd5b5061043f6004803603608081101561041757600080fd5b506001600160a01b038135811691602081013590911690604081013590606001351515610804565b604080519115158252519081900360200190f35b34801561045f57600080fd5b5061026b6108d6565b34801561047457600080fd5b506102a76108dc565b34801561048957600080fd5b5061026b6108e2565b34801561049e57600080fd5b506102a76108e7565b3480156104b357600080fd5b5061026b600480360360208110156104ca57600080fd5b50356001600160a01b03166108ed565b3480156104e657600080fd5b506102a76108ff565b3480156104fb57600080fd5b506102a7610905565b34801561051057600080fd5b5061026b61090b565b34801561052557600080fd5b5061043f610911565b34801561053a57600080fd5b5061026b61091a565b34801561054f57600080fd5b506102a7610920565b34801561056457600080fd5b506102a7610926565b34801561057957600080fd5b5061058261092c565b6040805163ffffffff9092168252519081900360200190f35b3480156105a757600080fd5b5061066a600480360360408110156105be57600080fd5b8101906020810181356401000000008111156105d957600080fd5b8201836020820111156105eb57600080fd5b8035906020019184600183028401116401000000008311171561060d57600080fd5b91939092909160208101903564010000000081111561062b57600080fd5b82018360208201111561063d57600080fd5b8035906020019184600183028401116401000000008311171561065f57600080fd5b509092509050610931565b005b34801561067857600080fd5b5061026b610971565b34801561068d57600080fd5b506102a7610977565b3480156106a257600080fd5b5061026b61097d565b3480156106b757600080fd5b506102a7610983565b3480156106cc57600080fd5b5061026b610989565b3480156106e157600080fd5b506102a761098f565b3480156106f657600080fd5b5061066a610995565b34801561070b57600080fd5b506102a76004803603602081101561072257600080fd5b5035610a5e565b34801561073557600080fd5b506102a7610a6b565b34801561074a57600080fd5b506102a7610a71565b34801561075f57600080fd5b5061026b6004803603602081101561077657600080fd5b50356001600160a01b0316610a77565b600181565b605081565b61200181565b600b5481565b60015481565b600c5481565b600681815481106107b557fe5b6000918252602090912001546001600160a01b0316905081565b61200581565b60076020526000908152604090205481565b61100181565b603881565b61200681565b61200081565b61100581565b6000805460ff1661085c576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b336120001461089c5760405162461bcd60e51b815260040180806020018281038252602f815260200180610ab8602f913960400191505060405180910390fd5b6040805162461bcd60e51b815260206004820152600a60248201526919195c1c9958d85d195960b21b604482015290519081900360640190fd5b60035481565b61100881565b600581565b61200381565b60056020526000908152604090205481565b61100781565b61100681565b600a5481565b60005460ff1681565b60045481565b61200281565b61300081565b600081565b336110071461089c5760405162461bcd60e51b815260040180806020018281038252602e815260200180610a8a602e913960400191505060405180910390fd5b60025481565b61100281565b600e5481565b61100381565b60095481565b61200481565b60005460ff16156109ed576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60005460ff1615610a3b576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b60018080556005600255600381905560506004556000805460ff19169091179055565b600881815481106107b557fe5b61100081565b61100481565b600d602052600090815260409020548156fe746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374a164736f6c6343000604000a

Deployed Bytecode

0x60806040526004361061024a5760003560e01c8063930e1b0911610139578063ace9fcc2116100b6578063df8079e91161007a578063df8079e9146106d5578063e1c7392a146106ea578063e89a3020146106ff578063f9a2bbc714610729578063fd6a68791461073e578063fdd31fcd1461075357610251565b8063ace9fcc21461066c578063c81b166214610681578063d0ab528a14610696578063dc927faf146106ab578063dcae76ab146106c057610251565b8063a7c6a59d116100fd578063a7c6a59d1461052e578063aa82dce114610543578063aad5606314610558578063ab51bb961461056d578063ac4317511461059b57610251565b8063930e1b09146104a75780639dc09262146104da578063a1a11bf5146104ef578063a3c3c0ad14610504578063a78abc161461051957610251565b806343756e5c116101c75780636f93d2e61161018b5780636f93d2e6146103f457806374f2272d1461045357806375d47a0a146104685780637e146cc51461047d5780637e434d541461049257610251565b806343756e5c14610374578063493279b11461038957806351b4dce3146103b557806351e80672146103ca5780636e47b482146103df57610251565b80631b20087c1161020e5780631b20087c146102ed5780631c64331214610302578063280870281461032c5780633a9756121461025657806340bb43c01461034157610251565b8063081e9d1314610256578063093f2fc41461027d5780630e2374a51461029257806310e06a76146102c357806312950c46146102d857610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b610786565b60408051918252519081900360200190f35b34801561028957600080fd5b5061026b61078b565b34801561029e57600080fd5b506102a7610790565b604080516001600160a01b039092168252519081900360200190f35b3480156102cf57600080fd5b5061026b610796565b3480156102e457600080fd5b5061026b61079c565b3480156102f957600080fd5b5061026b6107a2565b34801561030e57600080fd5b506102a76004803603602081101561032557600080fd5b50356107a8565b34801561033857600080fd5b506102a76107cf565b34801561034d57600080fd5b5061026b6004803603602081101561036457600080fd5b50356001600160a01b03166107d5565b34801561038057600080fd5b506102a76107e7565b34801561039557600080fd5b5061039e6107ed565b6040805161ffff9092168252519081900360200190f35b3480156103c157600080fd5b506102a76107f2565b3480156103d657600080fd5b506102a76107f8565b3480156103eb57600080fd5b506102a76107fe565b34801561040057600080fd5b5061043f6004803603608081101561041757600080fd5b506001600160a01b038135811691602081013590911690604081013590606001351515610804565b604080519115158252519081900360200190f35b34801561045f57600080fd5b5061026b6108d6565b34801561047457600080fd5b506102a76108dc565b34801561048957600080fd5b5061026b6108e2565b34801561049e57600080fd5b506102a76108e7565b3480156104b357600080fd5b5061026b600480360360208110156104ca57600080fd5b50356001600160a01b03166108ed565b3480156104e657600080fd5b506102a76108ff565b3480156104fb57600080fd5b506102a7610905565b34801561051057600080fd5b5061026b61090b565b34801561052557600080fd5b5061043f610911565b34801561053a57600080fd5b5061026b61091a565b34801561054f57600080fd5b506102a7610920565b34801561056457600080fd5b506102a7610926565b34801561057957600080fd5b5061058261092c565b6040805163ffffffff9092168252519081900360200190f35b3480156105a757600080fd5b5061066a600480360360408110156105be57600080fd5b8101906020810181356401000000008111156105d957600080fd5b8201836020820111156105eb57600080fd5b8035906020019184600183028401116401000000008311171561060d57600080fd5b91939092909160208101903564010000000081111561062b57600080fd5b82018360208201111561063d57600080fd5b8035906020019184600183028401116401000000008311171561065f57600080fd5b509092509050610931565b005b34801561067857600080fd5b5061026b610971565b34801561068d57600080fd5b506102a7610977565b3480156106a257600080fd5b5061026b61097d565b3480156106b757600080fd5b506102a7610983565b3480156106cc57600080fd5b5061026b610989565b3480156106e157600080fd5b506102a761098f565b3480156106f657600080fd5b5061066a610995565b34801561070b57600080fd5b506102a76004803603602081101561072257600080fd5b5035610a5e565b34801561073557600080fd5b506102a7610a6b565b34801561074a57600080fd5b506102a7610a71565b34801561075f57600080fd5b5061026b6004803603602081101561077657600080fd5b50356001600160a01b0316610a77565b600181565b605081565b61200181565b600b5481565b60015481565b600c5481565b600681815481106107b557fe5b6000918252602090912001546001600160a01b0316905081565b61200581565b60076020526000908152604090205481565b61100181565b603881565b61200681565b61200081565b61100581565b6000805460ff1661085c576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e7472616374206e6f7420696e69742079657400000000000000604482015290519081900360640190fd5b336120001461089c5760405162461bcd60e51b815260040180806020018281038252602f815260200180610ab8602f913960400191505060405180910390fd5b6040805162461bcd60e51b815260206004820152600a60248201526919195c1c9958d85d195960b21b604482015290519081900360640190fd5b60035481565b61100881565b600581565b61200381565b60056020526000908152604090205481565b61100781565b61100681565b600a5481565b60005460ff1681565b60045481565b61200281565b61300081565b600081565b336110071461089c5760405162461bcd60e51b815260040180806020018281038252602e815260200180610a8a602e913960400191505060405180910390fd5b60025481565b61100281565b600e5481565b61100381565b60095481565b61200481565b60005460ff16156109ed576040805162461bcd60e51b815260206004820152601960248201527f74686520636f6e747261637420616c726561647920696e697400000000000000604482015290519081900360640190fd5b60005460ff1615610a3b576040805162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604482015290519081900360640190fd5b60018080556005600255600381905560506004556000805460ff19169091179055565b600881815481106107b557fe5b61100081565b61100481565b600d602052600090815260409020548156fe746865206d6573736167652073656e646572206d75737420626520676f7665726e616e636520636f6e7472616374746865206d6573736167652073656e646572206d7573742062652063726f737320636861696e20636f6e7472616374a164736f6c6343000604000a

Deployed Bytecode Sourcemap

29323:10906:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;29531:63:0;;5:9:-1;2:2;;;27:1;24;17:12;2:2;29531:63:0;;;:::i;:::-;;;;;;;;;;;;;;;;29483:41;;5:9:-1;2:2;;;27:1;24;17:12;2:2;29483:41:0;;;:::i;29731:60::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;29731:60:0;;;:::i;1155:46::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1155:46:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;30358:30;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30358:30:0;;;:::i;29798:46::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;29798:46:0;;;:::i;30393:29::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30393:29:0;;;:::i;30065:51::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30065:51:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;30065:51:0;;:::i;:::-;;;;-1:-1:-1;;;;;30065:51:0;;;;;;;;;;;;;;1208:43;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1208:43:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;30123:61;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30123:61:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;30123:61:0;-1:-1:-1;;;;;30123:61:0;;:::i;1660:88::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1660:88:0;;;:::i;1514:42::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1514:42:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1367:46;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1367:46:0;;;:::i;2388:94::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2388:94:0;;;:::i;29440:38::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;29440:38:0;;;:::i;2024:83::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2024:83:0;;;:::i;31223:1896::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;31223:1896:0;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;31223:1896:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1256:50;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1256:50:0;;;:::i;29903:41::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;29903:41:0;;;:::i;2296:87::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2296:87:0;;;:::i;1465:44::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1465:44:0;;;:::i;29599:66::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;29599:66:0;;;:::i;30000:60::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30000:60:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;30000:60:0;-1:-1:-1;;;;;30000:60:0;;:::i;1418:42::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1418:42:0;;;:::i;2210:81::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2210:81:0;;;:::i;2112:93::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2112:93:0;;;:::i;30301:50::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30301:50:0;;;:::i;1086:23::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1086:23:0;;;:::i;29949:44::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;29949:44:0;;;:::i;1116:34::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1116:34:0;;;:::i;37383:2843::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;37383:2843:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;37383:2843:0;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;37383:2843:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;37383:2843:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;37383:2843:0;;;;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;37383:2843:0;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;37383:2843:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;37383:2843:0;;-1:-1:-1;37383:2843:0;-1:-1:-1;37383:2843:0;:::i;:::-;;29849:49;;5:9:-1;2:2;;;27:1;24;17:12;2:2;29849:49:0;;;:::i;36747:428::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;36747:428:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;36747:428:0;;:::i;37181:196::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;37181:196:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;37181:196:0;;:::i;1753:87::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1753:87:0;;;:::i;30489:42::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30489:42:0;;;:::i;1845:86::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1845:86:0;;;:::i;30248:48::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30248:48:0;;;:::i;30776:403::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30776:403:0;;;:::i;33125:566::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;33125:566:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;33125:566:0;-1:-1:-1;;;;;33125:566:0;;:::i;30189:52::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30189:52:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;30189:52:0;;:::i;1563:92::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1563:92:0;;;:::i;1311:51::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1311:51:0;;;:::i;1936:83::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1936:83:0;;;:::i;30429:53::-;;5:9:-1;2:2;;;27:1;24;17:12;2:2;30429:53:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;30429:53:0;-1:-1:-1;;;;;30429:53:0;;:::i;29531:63::-;29593:1;29531:63;:::o;29483:41::-;29522:2;29483:41;:::o;29731:60::-;29789:2;29731:60;:::o;1155:46::-;1198:3;1155:46;:::o;30358:30::-;;;;:::o;29798:46::-;;;;:::o;30393:29::-;;;;:::o;30065:51::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;30065:51:0;;-1:-1:-1;30065:51:0;:::o;30123:61::-;;;;;;;;;;;;;:::o;1660:88::-;1706:42;1660:88;:::o;1514:42::-;1550:6;1514:42;:::o;1367:46::-;1409:4;1367:46;:::o;2388:94::-;2440:42;2388:94;:::o;2024:83::-;2065:42;2024:83;:::o;31223:1896::-;31407:4;2763:11;;;;2755:49;;;;;-1:-1:-1;;;2755:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;3434:10:::1;2440:42;3434:39;3426:99;;;;-1:-1:-1::0;;;3426:99:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31424:20:::2;31455:16;31451:513;;;1798:42;-1:-1:-1::0;;;;;31497:46:0::2;;2065:42;31580:39;31591:27;;31580:6;:10;;:39;;;;:::i;:::-;31497:123;;;;;;;;;;;;;-1:-1:-1::0;;;;;31497:123:0::2;-1:-1:-1::0;;;;;31497:123:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24::::0;17:12:::2;2:2;31497:123:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;31497:123:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::2;4:2;-1:-1:::0;31497:123:0;;-1:-1:-1;31451:513:0::2;;;31658:86;::::0;;-1:-1:-1;;;31658:86:0;;2065:42:::2;31658:86;::::0;::::2;::::0;;;;;;;;;1977:42:::2;::::0;31658::::2;::::0;:86;;;;;::::2;::::0;;;;;;;;-1:-1:-1;1977:42:0;31658:86;::::2;;2:2:-1::0;::::2;;;27:1;24::::0;17:12:::2;2:2;31658:86:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;31658:86:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::2;4:2;-1:-1:::0;31658:86:0;31757:27:::2;::::0;31658:86;;-1:-1:-1;31757:31:0;31753:204:::2;;31918:27;::::0;31835:111:::2;::::0;;-1:-1:-1;;;31835:111:0;;2065:42:::2;31835:111;::::0;::::2;::::0;;;;;;;;;31818:129:::2;::::0;1798:42:::2;::::0;31835:46:::2;::::0;:111;;;;;::::2;::::0;;;;;;;;;-1:-1:-1;1798:42:0;31835:111;::::2;;2:2:-1::0;::::2;;;27:1;24::::0;17:12:::2;2:2;31835:111:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::2;77:16;74:1;67:27;5:2;31835:111:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28::::0;21:12:::2;4:2;-1:-1:::0;31835:111:0;31818:12;;:129:::2;:16;:129;:::i;:::-;31803:144;;31753:204;31972:12;:14:::0;;::::2;;::::0;;:12:::2;32012:45;32044:12:::0;32012:31:::2;:45::i;:::-;32098:31;::::0;31995:62;;-1:-1:-1;32098:43:0::2;::::0;31995:62;32098:43:::2;:35;:43;:::i;:::-;32064:31;:77:::0;32184:33:::2;::::0;:63:::2;::::0;32240:6;;32184:51:::2;::::0;32222:12;32184:51:::2;:37;:51;:::i;:::-;:55:::0;:63:::2;:55;:63;:::i;:::-;32148:33;:99:::0;-1:-1:-1;;;;;32260:44:0;::::2;;::::0;;;:25:::2;:44;::::0;;;;;32256:120:::2;;32318:26;27:10:-1::0;;39:1:::2;23:18:::0;::::2;45:23:::0;;-1:-1;32318:50:0;;;;;::::2;::::0;;-1:-1:-1;;;;;;32318:50:0::2;-1:-1:-1::0;;;;;32318:50:0;::::2;;::::0;;32256:120:::2;-1:-1:-1::0;;;;;32382:44:0;;::::2;;::::0;;;:25:::2;:44;::::0;;;;;;;:46;;::::2;;::::0;;32441:42;;::::2;::::0;;:26:::2;:42:::0;;;;32437:116:::2;;32497:27;27:10:-1::0;;39:1:::2;23:18:::0;::::2;45:23:::0;;-1:-1;32497:48:0;;;;;::::2;::::0;;-1:-1:-1;;;;;;32497:48:0::2;-1:-1:-1::0;;;;;32497:48:0;::::2;;::::0;;32437:116:::2;-1:-1:-1::0;;;;;32559:42:0;::::2;;::::0;;;:26:::2;:42;::::0;;;;:44;;::::2;;::::0;;32616:12:::2;::::0;29475:3:::2;-1:-1:-1::0;32612:484:0::2;;32682:13;::::0;32697:31:::2;::::0;32730:33:::2;::::0;32656:108:::2;::::0;;;;;::::2;::::0;::::2;::::0;;;;;;;;;::::2;::::0;;;;;;;::::2;32775:26;32804:31;:29;:31::i;:::-;32775:60;;32844:27;32874:32;:30;:32::i;:::-;-1:-1:-1::0;;;;;32954:34:0;::::2;;::::0;;;:18:::2;:34;::::0;;;;;32844:62;;-1:-1:-1;32954:83:0::2;::::0;32844:62;;32954:58:::2;::::0;32993:18;32954:58:::2;:38;:58;:::i;:::-;:62:::0;:83:::2;:62;:83;:::i;:::-;-1:-1:-1::0;;;;;32917:34:0;::::2;;::::0;;;:18:::2;:34;::::0;;;;:120;;;;33048:13:::2;:15:::0;;::::2;;::::0;;33072:12:::2;:16:::0;-1:-1:-1;;32612:484:0::2;-1:-1:-1::0;33109:4:0::2;::::0;31223:1896;-1:-1:-1;;;;;;31223:1896:0:o;1256:50::-;1302:4;1256:50;:::o;29903:41::-;;;;:::o;2296:87::-;2341:42;2296:87;:::o;1465:44::-;1505:4;1465:44;:::o;29599:66::-;29664:1;29599:66;:::o;30000:60::-;;;;;;;;;;;;;:::o;1418:42::-;1456:4;1418:42;:::o;2210:81::-;2249:42;2210:81;:::o;2112:93::-;2163:42;2112:93;:::o;30301:50::-;;;;:::o;1086:23::-;;;;;;:::o;29949:44::-;;;;:::o;1116:34::-;1149:1;1116:34;:::o;37383:2843::-;3130:10;2249:42;3130:26;3122:85;;;;-1:-1:-1;;;3122:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37487:11:::1;::::0;::::1;;37479:57;;;;-1:-1:-1::0;;;37479:57:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37547:60;37569:3;;37547:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;;37547:60:0::1;::::0;;;;::::1;::::0;;;137:4:-1::1;37547:60:0::0;;::::1;;::::0;::::1;::::0;;-1:-1:-1;37547:21:0::1;::::0;-1:-1:-1;37547:60:0:i:1;:::-;37543:2643;;;37642:2;37626:18:::0;::::1;37618:81;;;;-1:-1:-1::0;;;37618:81:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37753:38;::::0;;37781:2:::1;37753:38;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;37708:42:::1;::::0;37753:38:::1;::::0;37785:5;;;37753:38;;::::1;37785:5:::0;;;;37753:38;1:33:-1::1;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;37753:27:0::1;::::0;-1:-1:-1;;;37753:38:0:i:1;:::-;37708:83;;37846:34;;37808;:72;;37800:181;;;;-1:-1:-1::0;;;37800:181:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37990:31;:68:::0;37543:2643:::1;;;38076:63;38098:3;;38076:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;;38076:63:0::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;;-1:-1:-1;38076:63:0;-1:-1:-1;38076:63:0::1;;::::0;::::1;;:21;:63::i;:::-;38072:2114;;;38174:2;38158:18:::0;::::1;38150:77;;;;-1:-1:-1::0;;;38150:77:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38284:38;::::0;;38312:2:::1;38284:38;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;38236:45:::1;::::0;38284:38:::1;::::0;38316:5;;;38284:38;;::::1;38316:5:::0;;;;38284:38;1:33:-1::1;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;38284:27:0::1;::::0;-1:-1:-1;;;38284:38:0:i:1;:::-;38236:86:::0;-1:-1:-1;38339:42:0;;;::::1;::::0;:118:::1;;;38426:31;;38385:37;:72;;38339:118;38331:239;;;;-1:-1:-1::0;;;38331:239:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38579:34;:74:::0;38072:2114:::1;;;38671:55;38693:3;;38671:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;;38671:55:0::1;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;;::::0;::::1;::::0;;-1:-1:-1;38671:21:0::1;::::0;-1:-1:-1;38671:55:0:i:1;:::-;38667:1519;;;38761:2;38745:18:::0;::::1;38737:77;;;;-1:-1:-1::0;;;38737:77:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;38863:38;::::0;;38891:2:::1;38863:38;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;38823:37:::1;::::0;38863:38:::1;::::0;38895:5;;;38863:38;;::::1;38895:5:::0;;;;38863:38;1:33:-1::1;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;38863:27:0::1;::::0;-1:-1:-1;;;38863:38:0:i:1;:::-;38823:78;;38951:29;;38918;:62;;38910:161;;;;-1:-1:-1::0;;;38910:161:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39080:26;:58:::0;38667:1519:::1;;;39156:58;39178:3;;39156:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;;39156:58:0::1;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;;::::0;::::1;::::0;;-1:-1:-1;39156:21:0::1;::::0;-1:-1:-1;39156:58:0:i:1;:::-;39152:1034;;;39249:2;39233:18:::0;::::1;39225:77;;;;-1:-1:-1::0;;;39225:77:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39354:38;::::0;;39382:2:::1;39354:38;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;39311:40:::1;::::0;39354:38:::1;::::0;39386:5;;;39354:38;;::::1;39386:5:::0;;;;39354:38;1:33:-1::1;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;39354:27:0::1;::::0;-1:-1:-1;;;39354:38:0:i:1;:::-;39311:81:::0;-1:-1:-1;39409:37:0;;;::::1;::::0;:103:::1;;;39486:26;;39450:32;:62;;39409:103;39401:213;;;;-1:-1:-1::0;;;39401:213:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39623:29;:64:::0;39152:1034:::1;;;39705:56;39727:3;;39705:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;;39705:56:0::1;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;;::::0;::::1;::::0;;-1:-1:-1;39705:21:0::1;::::0;-1:-1:-1;39705:56:0:i:1;:::-;39701:485;;;39796:2;39780:18:::0;::::1;39772:77;;;;-1:-1:-1::0;;;39772:77:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39899:38;::::0;;39927:2:::1;39899:38;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;39858::::1;::::0;39899::::1;::::0;39931:5;;;39899:38;;::::1;39931:5:::0;;;;39899:38;1:33:-1::1;99:1;81:16:::0;::::1;74:27:::0;;;;-1:-1;39899:27:0::1;::::0;-1:-1:-1;;;39899:38:0:i:1;:::-;40064:27;:60:::0;-1:-1:-1;39701:485:0::1;;;40147:31;::::0;;-1:-1:-1;;;40147:31:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;40147:31:0;;;;;;;;;;;;;::::1;;40197:23;40209:3;;40214:5;;40197:23;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16:::0;;::::1;74:27:::0;137:4:::1;117:14;-1:-1:::0;;113:30:::1;157:16:::0;;::::1;40197:23:0::0;;::::1;::::0;;;;;::::1;;::::0;-1:-1:-1;40197:23:0;;;;;1:33:-1::1;99:1;81:16:::0;;::::1;74:27:::0;40197:23:0::1;::::0;137:4:-1::1;117:14:::0;;::::1;-1:-1:::0;;113:30:::1;157:16:::0;;::::1;40197:23:0::0;;::::1;::::0;-1:-1:-1;40197:23:0;;-1:-1:-1;;;;;;;40197:23:0::1;37383:2843:::0;;;;:::o;29849:49::-;;;;:::o;36747:428::-;36822:7;29522:2;36842:5;:23;36838:332;;-1:-1:-1;36883:5:0;36876:12;;36838:332;36923:5;29522:2;36906:22;:51;;;;-1:-1:-1;36941:16:0;36932:25;;;36906:51;36902:268;;;-1:-1:-1;29522:2:0;36968:21;;36902:268;37007:16;:24;-1:-1:-1;37007:76:0;;;;-1:-1:-1;37045:37:0;37035:48;;;37007:76;37003:167;;;-1:-1:-1;37101:16:0;:24;;;37094:31;;37003:167;-1:-1:-1;37161:1:0;37155:7;;37003:167;36747:428;;;:::o;37181:196::-;37254:7;29522:2;37274:5;:23;37270:102;;-1:-1:-1;37315:5:0;37308:12;;37270:102;-1:-1:-1;29522:2:0;37343:21;;1753:87;1798:42;1753:87;:::o;30489:42::-;;;;:::o;1845:86::-;1889:42;1845:86;:::o;30248:48::-;;;;:::o;30776:403::-;2667:11;;;;2666:12;2658:50;;;;;-1:-1:-1;;;2658:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;30829:11:::1;::::0;::::1;;30828:12;30820:44;;;::::0;;-1:-1:-1;;;30820:44:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;30820:44:0;;;;;;;;;;;;;::::1;;29593:1;30871:67:::0;;;29664:1:::1;30945:34;:73:::0;31025:26:::1;:55:::0;;;29789:2:::1;31087:29;:61:::0;-1:-1:-1;31155:18:0;;-1:-1:-1;;31155:18:0::1;::::0;;::::1;::::0;;30776:403::o;33125:566::-;-1:-1:-1;;;;;33208:31:0;;33191:14;33208:31;;;:18;:31;;;;;;33255:10;33247:40;;;;;-1:-1:-1;;;33247:40:0;;;;;;;;;;;;-1:-1:-1;;;33247:40:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;33295:31:0;;33329:1;33295:31;;;:18;:31;;;;;;:35;;;33408:22;33314:11;;33295:31;33408:22;;;;;33423:6;;33408:22;33329:1;33408:22;33423:6;33295:31;33408:22;;;;;;;33403:234;;33522:30;;1798:42;;;;33522:30;;;;;33545:6;;33443:29;33522:30;33443:29;33522:30;33545:6;1798:42;33522:30;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;33568:43:0;;;1798:42;33568:43;;;;;;;;;;;;;;;;;;;;;33622:7;;;;;33403:234;33649:36;;;-1:-1:-1;;;;;33649:36:0;;;;;;;;;;;;;;;;;;;;;;;33125:566;;;;:::o;30189:52::-;;;;;;;;;;1563:92;1613:42;1563:92;:::o;1311:51::-;1358:4;1311:51;:::o;1936:83::-;1977:42;1936:83;:::o;30429:53::-;;;;;;;;;;;;;:::o;5141:181::-;5199:7;5231:5;;;5255:6;;;;5247:46;;;;;-1:-1:-1;;;5247:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5313:1;-1:-1:-1;5141:181:0;;;;;:::o;33697:192::-;33777:7;33800:83;33848:34;;33800:43;33811:31;;33800:6;:10;;:43;;;;:::i;:::-;:47;:83;:47;:83;:::i;5597:136::-;5655:7;5682:43;5686:1;5689;5682:43;;;;;;;;;;;;;;;;;:3;:43::i;33895:1416::-;33992:31;;34096:26;34060:62;;;;;;;;;;;;;;;;;;;33954:7;;33992:31;33954:7;;34060:33;;:62;;34096:26;34060:62;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34060:62:0;;;;;;;;;;;;;;;;;;;;;;;34129:30;34176:8;:15;34162:30;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;34162:30:0;-1:-1:-1;34129:63:0;-1:-1:-1;34204:13:0;34199:282;34231:8;:15;34223:5;:23;34199:282;;;34266:15;34284:8;34293:5;34284:15;;;;;;;;;;;;;;34266:33;;34308:14;34325:64;34354:25;:34;34380:7;-1:-1:-1;;;;;34354:34:0;-1:-1:-1;;;;;34354:34:0;;;;;;;;;;;;;34325:28;:64::i;:::-;34308:81;;34421:6;34398:13;34412:5;34398:20;;;;;;;;;;;;;;;;;:29;34450:23;:11;34466:6;34450:23;:15;:23;:::i;:::-;34436:37;-1:-1:-1;;;34248:7:0;;34199:282;;;;34489:20;34512:78;34560:29;;34512:43;34528:26;;34512:11;:15;;:43;;;;:::i;:78::-;34489:101;-1:-1:-1;34611:29:0;:11;34489:101;34611:29;:15;:29;:::i;:::-;34597:43;-1:-1:-1;34597:43:0;34709:1;34688:288;34720:8;:15;34712:5;:23;34688:288;;;34755:14;34772:54;34814:11;34772:37;34797:11;34772:13;34786:5;34772:20;;;;;;;;;;;;;;:24;;:37;;;;:::i;:54::-;34755:71;;34873:47;34913:6;34873:18;:35;34892:8;34901:5;34892:15;;;;;;;;;;;;;;-1:-1:-1;;;;;34873:35:0;-1:-1:-1;;;;;34873:35:0;;;;;;;;;;;;;:39;;:47;;;;:::i;:::-;34835:18;:35;34854:8;34863:5;34854:15;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34835:35:0;;;;;;;;;;;-1:-1:-1;34835:35:0;:85;34944:24;:12;34961:6;34944:24;:16;:24;:::i;:::-;34929:39;-1:-1:-1;;34737:7:0;;34688:288;;;;35016:49;35052:12;35016:18;:31;35035:8;35044:1;35035:11;;;;;;;35016:49;34982:18;:31;35001:8;35010:1;35001:11;;;;;;;;;;;;;;-1:-1:-1;;;;;34982:31:0;-1:-1:-1;;;;;34982:31:0;;;;;;;;;;;;:83;;;;35108:1;35074:31;:35;;;;35121:13;35137:1;35121:17;;35116:124;35148:8;:15;35140:5;:23;35116:124;;;35190:25;:42;35216:8;35225:5;35216:15;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;35190:42:0;;;;;;;;;;;-1:-1:-1;35190:42:0;;;35183:49;35165:7;;35116:124;;;-1:-1:-1;35246:33:0;35253:26;;35246:33;:::i;:::-;-1:-1:-1;35293:12:0;-1:-1:-1;;;;;33895:1416:0;;:::o;35317:1424::-;35415:33;;35521:27;35485:63;;;;;;;;;;;;;;;;;;;35377:7;;35415:33;35377:7;;35485:33;;:63;;35521:27;35485:63;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;35485:63:0;;;;;;;;;;;;;;;;;;;;;;;35555:30;35602:8;:15;35588:30;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;35588:30:0;-1:-1:-1;35555:63:0;-1:-1:-1;35630:13:0;35625:282;35657:8;:15;35649:5;:23;35625:282;;;35692:15;35710:8;35719:5;35710:15;;;;;;;;;;;;;;35692:33;;35734:14;35751:67;35782:26;:35;35809:7;-1:-1:-1;;;;;35782:35:0;-1:-1:-1;;;;;35782:35:0;;;;;;;;;;;;;35751:30;:67::i;:::-;35734:84;;35850:6;35827:13;35841:5;35827:20;;;;;;;;;;;;;;;;;:29;35879:20;;;;;-1:-1:-1;35674:7:0;;35625:282;;;;35915:20;35938:78;35986:29;;35938:43;35954:26;;35938:11;:15;;:43;;;;:::i;:78::-;35915:101;-1:-1:-1;36037:29:0;:11;35915:101;36037:29;:15;:29;:::i;:::-;36023:43;-1:-1:-1;36023:43:0;36135:1;36114:288;36146:8;:15;36138:5;:23;36114:288;;;36181:14;36198:54;36240:11;36198:37;36223:11;36198:13;36212:5;36198:20;;;;;;;:54;36181:71;;36299:47;36339:6;36299:18;:35;36318:8;36327:5;36318:15;;;;;;;36299:47;36261:18;:35;36280:8;36289:5;36280:15;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;36261:35:0;;;;;;;;;;;-1:-1:-1;36261:35:0;:85;36370:24;:12;36387:6;36370:24;:16;:24;:::i;:::-;36355:39;-1:-1:-1;;36163:7:0;;36114:288;;;;36442:49;36478:12;36442:18;:31;36461:8;36470:1;36461:11;;;;;;;36442:49;36408:18;:31;36427:8;36436:1;36427:11;;;;;;;;;;;;;;-1:-1:-1;;;;;36408:31:0;-1:-1:-1;;;;;36408:31:0;;;;;;;;;;;;:83;;;;36536:1;36500:33;:37;;;;36549:13;36565:1;36549:17;;36544:125;36576:8;:15;36568:5;:23;36544:125;;;36618:26;:43;36645:8;36654:5;36645:15;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;36618:43:0;;;;;;;;;;;-1:-1:-1;36618:43:0;;;36611:50;36593:7;;36544:125;;;-1:-1:-1;36675:34:0;36682:27;;36675:34;:::i;10936:183::-;11017:4;11106:1;11088:21;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;11088:21:0;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11088:21:0;;;11078:32;;;;;;11070:1;11052:21;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;11052:21:0;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11052:21:0;;;11042:32;;;;;;:68;11034:77;;10936:183;;;;:::o;28833:198::-;28993:19;28987:26;;28961:63::o;6471:471::-;6529:7;6774:6;6770:47;;-1:-1:-1;6804:1:0;6797:8;;6770:47;6841:5;;;6845:1;6841;:5;:1;6865:5;;;;;:10;6857:56;;;;-1:-1:-1;;;6857:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7410:132;7468:7;7495:39;7499:1;7502;7495:39;;;;;;;;;;;;;;;;;:3;:39::i;6028:192::-;6114:7;6150:12;6142:6;;;;6134:29;;;;-1:-1:-1;;;6134:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6134:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;6186:5:0;;;6028:192::o;8030:345::-;8116:7;8218:12;8211:5;8203:28;;;;-1:-1:-1;;;8203:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;8203:28:0;;8242:9;8258:1;8254;:5;;;;;;;8030:345;-1:-1:-1;;;;;8030:345:0:o;29323:10906::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

ipfs://e98544a55cfad5eae2f3157896ecf02194000e9989e5532d0612e61036807736

Block Transaction Gas Used Reward
view all blocks produced
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
View All Validatorset

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
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.

`; } let ensZeroWidthWarningHtml = ""; if ($("#hdnIsEnsContainZeroWidthChars").val() == "true") { ensZeroWidthWarningHtml = `
${zeroWidthWarningMessage} Check the actual text at SPACE ID.
`; } const ensOnL2NoteHtml = ensOnL2Note != "" ? `
  • ${ensOnL2Note}
  • ` : ""; const contentHtml = `
    Additional Info
    Full Name:
    ${ensNameForkIconSrc}


    Note:
    • Name tag is displayed due to forward and reverse resolution. Find out more.
    • A Domain Name is not necessarily held by a person popularly associated with the name.
    • ${ensOnL2NoteHtml}
    ${ensUnicodeWarningHtml} ${ensZeroWidthWarningHtml}
    `; $('#ensName').popover({ html: true, content: contentHtml, trigger: 'manual', placement: 'right' }); $('#ensName').click(function (event) { $("#udName").popover('hide') $("#ensName").popover('toggle'); event.stopPropagation(); }); $('#ensName').on('shown.bs.popover', async () => { //disable tooltip when hovering over ens name in the main page $("[rel='tooltipEns']").each(function () { $(this).tooltip('hide'); $(this).tooltip('disable'); }); //call ajax here to get result if (!otherENSNamesHtml) { const resolvedAddressesModel = await getEnsResolvedAddress($("#hdnAddress").val(), primaryDomainNameLabel); otherENSNamesHtml = generateEnsPopoverGrid(resolvedAddressesModel.d); if (!otherENSNamesHtml) { otherENSNamesHtml = "There are no other names resolving to this address." } } $(".popOverEnsOwnedAddressTable").html(otherENSNamesHtml); $("#divENSDisplayName").html(ensDisplayName); // append more copy button for ENS let domainName = $("#hdnEnsText").val(); const copyEnsButtonHtml = ` `; $("#spanCopyENSAddress").html(copyEnsButtonHtml); $("[data-bs-toggle='tooltip']").tooltip(); }); $('#ensName').on('hidden.bs.popover', () => { $("[rel='tooltipEns']").each(function () { $(this).tooltip('enable'); }); }); $('#ensName').on('hide.bs.popover', () => { $("[data-bs-toggle='tooltip']").tooltip('hide'); }); $(document).click(function (e) { const popoverElement = document.getElementById('popover-ens-preview'); const popoverTrigger = document.getElementById('ensName'); if (!popoverTrigger.contains(e.target) && (!popoverElement || !popoverElement.contains(e.target))) { $("#ensName").popover('hide'); } }) } async function getEnsResolvedAddress(address, currentEnsText) { try { const requestModel = { "lookupAddress": address, "primaryDomainName": currentEnsText, "provider": ensNameProvider }; const response = await $.ajax({ url: "/name-lookup-search.aspx/GetOtherDomainNameForAddress", type: "POST", contentType: "application/json", dataType: "json", data: JSON.stringify({ requestModel: requestModel }) }) return response; } catch { return ""; } } function generateEnsPopoverGrid(model) { if (!model || model.DomainNames.length == 0) { return ""; } let listOtherENSNames = ""; model.DomainNames.forEach(x => listOtherENSNames += x.Name); let moreOtherENSNames = ""; if (model.Total > 5) { moreOtherENSNames = `More ` } const result = `
    Other names resolving to this address:
    ${listOtherENSNames} ${moreOtherENSNames}
    `; return result; } function removeSpecificDomain(url, domain) { return url.replace(new RegExp(domain + '$'), ''); } // ===== UD name tag const displayUDName = ''; const primaryUDName = ''; const showUDPublicNote = 'false'; let otherUDNamesHtml = ""; function initUDNamePopOver() { //required to allow bootstrap popover to support table $.fn.popover.Constructor.Default.allowList.table = []; $.fn.popover.Constructor.Default.allowList.tr = []; $.fn.popover.Constructor.Default.allowList.td = []; $.fn.popover.Constructor.Default.allowList.th = []; $.fn.popover.Constructor.Default.allowList.div = []; $.fn.popover.Constructor.Default.allowList.tbody = []; $.fn.popover.Constructor.Default.allowList.thead = []; //allowList my inline styling for bootstrap $.fn.popover.Constructor.Default.allowList['*'].push('style') let unicodeWarningHtml = ""; if ($("#hdnIsUDContainUnicodeChars").val() == "true") { unicodeWarningHtml = `
    ${unicodeWarningMessage} Check the actual text at Unstoppable Domains.
    `; } let zeroWidthWarningHtml = ""; if ($("#hdnIsUDContainZeroWidthChars").val() == "true") { zeroWidthWarningHtml = `
    ${unicodeWarningMessage} Check the actual text at Unstoppable Domains.
    `; } const contentHtml = `
    Additional Info
    Full Name:
    Unstoppable Domains Name


    Note:
    • Name tag is displayed due to forward and reverse resolution. Find out more
    • A Domain Name is not necessarily held by a person popularly associated with the name.
    ${unicodeWarningHtml} ${zeroWidthWarningHtml}
    `; $('#udName').popover({ html: true, content: contentHtml, trigger: 'manual' }); $('#udName').click(function (event) { $("#ensName").popover('hide'); $("#udName").popover('toggle'); event.stopPropagation(); }); $('#udName').on('shown.bs.popover', async () => { //disable tooltip when hovering over SID name in the main page $("[rel='tooltipUDName']").each(function () { $(this).tooltip('hide'); $(this).tooltip('disable'); }); //call ajax here to get result if (!otherUDNamesHtml) { const resolvedAddressesModel = await getUDNamesResolvedAddress($("#hdnAddress").val(), primaryUDName); //format the ajax to otherUDNamesHtml otherUDNamesHtml = generateUDPopoverGrid(resolvedAddressesModel.d); if (!otherUDNamesHtml) { otherUDNamesHtml = "There are no other names resolving to this address." } } $(".popoverUDNamesOwnedByAddress").html(otherUDNamesHtml); $("#divDisplayUDName").html(displayUDName); if (showUDPublicNote == true) { $("#noteUD").html('The Unstoppable Domains NFT is minted on the Ethereum blockchain. View and verify its details on Etherscan.'); $("#noteUD").show(); } $("[data-bs-toggle='tooltip']").tooltip(); }); $('#udName').on('hidden.bs.popover', () => { $("[rel='tooltipUDName']").each(function () { $(this).tooltip('enable'); }); }); $('#udName').on('hide.bs.popover', () => { $("[data-bs-toggle='tooltip']").tooltip('hide'); }); // Hide Unstoppable Domains Name popover when click outside the popover popup. $(document).click(function () { $("#udName").popover('hide') }); } async function getUDNamesResolvedAddress(address, primaryUDName) { try { const requestModel = { "lookupAddress": address, "primaryDomainName": primaryUDName, "provider": "UD" }; const response = await $.ajax({ url: "/name-lookup-search.aspx/GetOtherDomainNameForAddress", type: "POST", contentType: "application/json", dataType: "json", data: JSON.stringify({ requestModel: requestModel }) }) return response; } catch { return ""; } } function generateUDPopoverGrid(model) { if (!model || model.DomainNames.length == 0) { return ""; } let listOtherUDNames = ""; model.DomainNames.forEach(x => listOtherUDNames += x.Name); let moreOtherUDNames = ""; if (model.Total > 5) { moreOtherUDNames = `More `; } const result = `
    Other names resolving to this address:
    ${listOtherUDNames} ${moreOtherUDNames}
    `; return result; } // ===== end UD name tag const tooltipForTokenHolding = 'More than 100 tokens found, listing and displaying the total balance of the first 100 tokens only. Click on the Coins icon to see the full list and balance.'; var adjustPosition = 0; $(document).ready(function () { switchAmountToValue(document.getElementById("headerAmountValue"), 'Value (USD)', 'Amount', true); switchAmountToValue(document.getElementById("headerIntAmountValue"), 'Value (USD)', 'Amount', true); switchMethodColumn(document.getElementById("headerMethod"), 'Method', 'Action', true); onDocumentReady(); $("[rel='tooltip']").tooltip(); $("[data-bs-toggle-second='tooltip']").tooltip({ trigger: 'hover' }); $("[rel='tooltipEns']").each(function () { $(this).tooltip({ title: $(this).attr("tooltip-title") }); }); if (hash != '') { activaTab(hash); }; onAddressDocReady(); // Note: this is causing "Copied" tooltip not showing when copy button is clicked in V3, and seems like not applicable to v3, comment out first in case there is issue //$('[data-bs-toggle="tooltip"]').click(function () { // $('[data-bs-toggle="tooltip"]').tooltip("hide"); //}); document.getElementById("copyaddressbutton").classList.remove("disabled"); if ($("#txtSearchContract").length) { initialiseKeyupOnDocReady(); } if (!!$('#ensName')[0]) { initEnsNamePopOver(); } if (!!$("#udName")[0]) { initUDNamePopOver(); } handleToggle(); if (window.matchMedia("(max-width: 767px)").matches) { // Mobile adjustPosition = 90; } else { // Others adjustPosition = 50; } if (tooltipForTokenHolding) { const dropdownMenuBalance = document.getElementById("dropdownMenuBalance"); if (dropdownMenuBalance) { const dropdownWrapper = dropdownMenuBalance.closest(".dropdown"); if (dropdownWrapper) { dropdownWrapper.setAttribute("title", tooltipForTokenHolding); new bootstrap.Tooltip(dropdownWrapper); } } } }); function displayAudit() { $('html, body').animate({ scrollTop: $("#auditReportId").offset().top - adjustPosition }); } var cThemeMode = getCookie('displaymode'); function handleToggle() { var className = document.getElementsByClassName('editor'); var classNameCount = className.length; for (var j = 0; j t.innerWidth()) { if (mb + d > tb) { t.css('padding-bottom', ((mb + d) - tb)); } } else { t.css('overflow', 'visible'); } }).on('hidden.bs.dropdown', function () { $(this).css({ 'padding-bottom': '', 'overflow': '' }); }); var btn_ERC20_sort = { count: 0, reminder_count: 2, list: [], default_list: [], ERC20_sort_start: function (count) { if (document.getElementsByClassName('list-custom-divider-ERC20')[0]) { var self = this if (count != undefined) { self.count = count } var before_el = document.getElementsByClassName('list-custom-divider-ERC20')[0] var parent_el = before_el.parentNode var element_selector = parent_el.querySelectorAll(".list-custom-ERC20"); if (self.list.length == 0) { element_selector.forEach(function (e) { self.list.push(e); self.default_list.push(e); }); } $(".list-custom-ERC20").remove() var type = self.count % self.reminder_count self.sortList(type, parent_el, before_el); self.count++ } }, sortList: function (type, parent_el, before_el) { var self = this var sorted_list = [] var icon_el = $(before_el).find('button').find('i') switch (type) { case 1: icon_el.attr("class", "fad fa-sort-up") sorted_list = self.sortUsdAsc() break; default: icon_el.attr("class", "fad fa-sort-down") sorted_list = self.sortUsdDesc() } for (var i = sorted_list.length - 1; i >= 0; i--) { before_el.insertAdjacentElement('afterend', sorted_list[i]) } }, sortUsdAsc: function () { var self = this var sort_list = self.list sort_list.sort(function (a, b) { var target_a_value = self.formatCurrencyToNumber(a.querySelector('.list-usd-value').textContent.trim() || -1); var target_b_value = self.formatCurrencyToNumber(b.querySelector('.list-usd-value').textContent.trim() || -1); if (target_a_value == -1 || target_b_value == -1) { return 1; } if (target_a_value target_b_value) { return 1; } return 0 }); return sort_list }, sortUsdDesc: function () { var self = this var sort_list = self.list sort_list.sort(function (a, b) { var target_a_value = self.formatCurrencyToNumber(a.querySelector('.list-usd-value').textContent.trim() || -1); var target_b_value = self.formatCurrencyToNumber(b.querySelector('.list-usd-value').textContent.trim() || -1); if (target_a_value target_b_value) { return -1; } return 0 }); return sort_list }, formatCurrencyToNumber: function (strCurrency) { if (typeof strCurrency == "number") return strCurrency else return Number(strCurrency.replace(/[^0-9.-]+/g, "")); }, } function hrefTokenHolding() { var location = "/tokenholdings?a=0x0000000000000000000000000000000000001005" var queryString = $("input.form-control.form-control-xs.search.mb-3")[0].value if (queryString) { location += "&q=" + queryString } window.location.href = location } $(document).ready(function () { $("#btn_ERC20_sort").on("click", function (event) { event.preventDefault(); setTimeout(function () { btn_ERC20_sort.ERC20_sort_start() }, 10) }) btn_ERC20_sort.ERC20_sort_start() var mainAddress = $("#hdnAddress").val(); // user search for method filters var searchFuncTimeOut; $("#ContentPlaceHolder1_inputMethodName").on("keyup", function ($event) { if (searchFuncTimeOut) { clearTimeout(searchFuncTimeOut) } var searchTerm = $(this).val(); searchFuncTimeOut = setTimeout(function () { searchFunctions(searchTerm); }, 350); }); var isSearchFunctions = false; $("#dropdownMethod").on("click", function (e) { if (isSearchFunctions === false) { searchFunctions(''); isSearchFunctions = true; } }); const litDefaultMethodFilterHtml = ''; function searchFunctions(searchTerm) { if (searchTerm === '' || searchTerm.length > 3) { const curPath = encodeURIComponent(window.location.search); $.ajax({ type: 'Get', url: `/functionSearchHandler.ashx?ca=${mainAddress}&func=${searchTerm ?? ''}&curPath=${curPath}`, success: function (response) { $("#searchFunctionResult").html(''); if (response && response.length > 0) { for (var i = 0; i ${response[i].name} ${response[i].methodId} ` ); } $("[data-bs-toggle='tooltip']").tooltip(); } else { $("#searchFunctionResult").append( `` ); } $("#inputMethodSpinner").hide(); }, error: function (XMLHttpRequest, textStatus, errorThrown) { $("#searchFunctionResult").html(''); $("#inputMethodSpinner").hide(); } }); } else { $("#inputMethodSpinner").hide(); $("#searchFunctionResult").html(litDefaultMethodFilterHtml); } } // Resize window for analytic tab let isBusy = false; $(window).resize(function () { isBusy = true; if (isBusy) { let analyticFrame = document.getElementById('analytics_pageiframe'); if (analyticFrame && analyticFrame.contentWindow != undefined) { let navtab = analyticFrame.contentWindow.document.getElementsByClassName("nav_tabs1"); let hIframe = "0px"; if (navtab != null && navtab != undefined && navtab.length > 0) { let navH = Number(navtab[0].scrollHeight); hIframe = (Number(analyticFrame.contentWindow.document.getElementsByClassName("tab-content")[0].scrollHeight) + navH + 20) + 'px'; } else { hIframe = analyticFrame.contentWindow.document.body.scrollHeight + 'px'; } analyticFrame.style.height = hIframe } } }); // detect tooltip for token holding dropdown if ($(".addresses-tooltip-over").length > 0) { if (!isMobile()) { $(".addresses-tooltip-over").attr("data-bs-trigger", "hover"); let tooltip = bootstrap.Tooltip.getInstance(".addresses-tooltip-over"); if (tooltip !== null) { tooltip.dispose(); tooltip = new bootstrap.Tooltip($(".addresses-tooltip-over")); tooltip._config.trigger = 'hover'; tooltip.update(); } } } // Quick export transaction csv const quickExportCsvData = '[{"Txhash":"0x3e9c8e15b5e52c063982b0adbca64b9f96a644ad1170d670dc836d356781d3b1","Status":"Success","Method":"Claim Relayer Reward","Blockno":"44137722","DateTime":"2024-11-19 05:25:10","Sender":"0xb005741528b86F5952469d80A8614591E3c5B632","SenderLable":null,"Receiver":"0x0000000000000000000000000000000000001005","ReceiverLable":"BSC: Relayer Incentivize","Amount":"0 BNB","Value":"$0.00","TxnFee":"0.00003639"},{"Txhash":"0x53a10fbe2f746f3d12671ba8b3d468b3f12973a9e3ef19e68b405e8956b4ca44","Status":"Success","Method":"Claim Relayer Reward","Blockno":"44128742","DateTime":"2024-11-18 21:56:10","Sender":"0xb005741528b86F5952469d80A8614591E3c5B632","SenderLable":null,"Receiver":"0x0000000000000000000000000000000000001005","ReceiverLable":"BSC: Relayer Incentivize","Amount":"0 BNB","Value":"$0.00","TxnFee":"0.00003639"},{"Txhash":"0x3835cc668bf4ec8528ef977ffabc2a67fab6d96f3ff1dbfe7a42c2e9dcdda265","Status":"Success","Method":"Claim Relayer Reward","Blockno":"44126502","DateTime":"2024-11-18 20:04:10","Sender":"0xb005741528b86F5952469d80A8614591E3c5B632","SenderLable":null,"Receiver":"0x0000000000000000000000000000000000001005","ReceiverLable":"BSC: Relayer Incentivize","Amount":"0 BNB","Value":"$0.00","TxnFee":"0.00003639"},{"Txhash":"0xc382781c2d74358b25cdd6bbd3a56204f97e8a456ec1486d7e42f48b59cccf07","Status":"Success","Method":"Claim Relayer Reward","Blockno":"44124302","DateTime":"2024-11-18 18:14:10","Sender":"0xb005741528b86F5952469d80A8614591E3c5B632","SenderLable":null,"Receiver":"0x0000000000000000000000000000000000001005","ReceiverLable":"BSC: Relayer Incentivize","Amount":"0 BNB","Value":"$0.00","TxnFee":"0.00003639"},{"Txhash":"0x826030821037795f45a1e8da1d26c11fe871093b75218d15aecd1da38d50387f","Status":"Success","Method":"Claim Relayer Reward","Blockno":"44121382","DateTime":"2024-11-18 15:48:10","Sender":"0xb005741528b86F5952469d80A8614591E3c5B632","SenderLable":null,"Receiver":"0x0000000000000000000000000000000000001005","ReceiverLable":"BSC: Relayer Incentivize","Amount":"0 BNB","Value":"$0.00","TxnFee":"0.00003639"},{"Txhash":"0x202c1a3c56c86254a7f278e84da081ad42366ea0538965417826cae4aed02c33","Status":"Success","Method":"Claim Relayer Reward","Blockno":"44115861","DateTime":"2024-11-18 11:12:07","Sender":"0xb005741528b86F5952469d80A8614591E3c5B632","SenderLable":null,"Receiver":"0x0000000000000000000000000000000000001005","ReceiverLable":"BSC: Relayer Incentivize","Amount":"0 BNB","Value":"$0.00","TxnFee":"0.00003639"},{"Txhash":"0xc110063ca929ebd525579a7e69275c2c6d5ebaf56e7875cc815762463cef600e","Status":"Success","Method":"Claim Relayer Reward","Blockno":"44096361","DateTime":"2024-11-17 18:57:07","Sender":"0xb005741528b86F5952469d80A8614591E3c5B632","SenderLable":null,"Receiver":"0x0000000000000000000000000000000000001005","ReceiverLable":"BSC: Relayer Incentivize","Amount":"0 BNB","Value":"$0.00","TxnFee":"0.00003639"},{"Txhash":"0x390a36948f079fdfc82b80030f07eb6da06bb0f9ea8661f7e403f5bd04b78ade","Status":"Success","Method":"Claim Relayer Reward","Blockno":"44068300","DateTime":"2024-11-16 19:34:03","Sender":"0xb005741528b86F5952469d80A8614591E3c5B632","SenderLable":null,"Receiver":"0x0000000000000000000000000000000000001005","ReceiverLable":"BSC: Relayer Incentivize","Amount":"0 BNB","Value":"$0.00","TxnFee":"0.00003639"},{"Txhash":"0xc44d16983ad826c7e808e2b137c5b8e49fea47ae698a7d939557d74b74419c3e","Status":"Success","Method":"Claim Relayer Reward","Blockno":"44030980","DateTime":"2024-11-15 12:27:59","Sender":"0xb005741528b86F5952469d80A8614591E3c5B632","SenderLable":null,"Receiver":"0x0000000000000000000000000000000000001005","ReceiverLable":"BSC: Relayer Incentivize","Amount":"0 BNB","Value":"$0.00","TxnFee":"0.00003639"},{"Txhash":"0x9f8db3414287b17b6d63923a8332e82470d708500318e261a1e8b0b442e914ee","Status":"Success","Method":"Claim Relayer Reward","Blockno":"43984860","DateTime":"2024-11-13 22:01:56","Sender":"0xb005741528b86F5952469d80A8614591E3c5B632","SenderLable":null,"Receiver":"0x0000000000000000000000000000000000001005","ReceiverLable":"BSC: Relayer Incentivize","Amount":"0 BNB","Value":"$0.00","TxnFee":"0.00003639"},{"Txhash":"0xf41fd18b25e61c55c2acbda53ab5c218a2c1fd2b0a8457d2926cc50a8d8b5b10","Status":"Success","Method":"Claim Relayer Reward","Blockno":"43950282","DateTime":"2024-11-12 17:12:52","Sender":"0xb005741528b86F5952469d80A8614591E3c5B632","SenderLable":null,"Receiver":"0x0000000000000000000000000000000000001005","ReceiverLable":"BSC: Relayer Incentivize","Amount":"0 BNB","Value":"$0.00","TxnFee":"0.00003639"},{"Txhash":"0x20d3fa8e579a667fe191cb81f7ba6e43ca00f09a5cfb8ebf790339c6ebfd4e7a","Status":"Success","Method":"Claim Relayer Reward","Blockno":"43921882","DateTime":"2024-11-11 17:32:49","Sender":"0xb005741528b86F5952469d80A8614591E3c5B632","SenderLable":null,"Receiver":"0x0000000000000000000000000000000000001005","ReceiverLable":"BSC: Relayer Incentivize","Amount":"0 BNB","Value":"$0.00","TxnFee":"0.00003639"},{"Txhash":"0x53d91ca7c4b42c90b0f54df29bf3bb8f51b906980e82a4742916c4c26e2e2bd3","Status":"Success","Method":"Claim Relayer Reward","Blockno":"43872104","DateTime":"2024-11-10 00:03:44","Sender":"0xb005741528b86F5952469d80A8614591E3c5B632","SenderLable":null,"Receiver":"0x0000000000000000000000000000000000001005","ReceiverLable":"BSC: Relayer Incentivize","Amount":"0 BNB","Value":"$0.00","TxnFee":"0.00003639"},{"Txhash":"0xe25bf245c6a12af8f728363b55474abae2b37fc6f911188250de1a07694d328d","Status":"Success","Method":"Claim Relayer Reward","Blockno":"43795249","DateTime":"2024-11-07 08:00:37","Sender":"0xb005741528b86F5952469d80A8614591E3c5B632","SenderLable":null,"Receiver":"0x0000000000000000000000000000000000001005","ReceiverLable":"BSC: Relayer Incentivize","Amount":"0 BNB","Value":"$0.00","TxnFee":"0.00003639"},{"Txhash":"0x285c97a4cebb30f2c0d9727c799e970d563af818dae1e64b00eb2ae8c9f35e06","Status":"Success","Method":"Claim Relayer Reward","Blockno":"43715994","DateTime":"2024-11-04 13:46:28","Sender":"0xb005741528b86F5952469d80A8614591E3c5B632","SenderLable":null,"Receiver":"0x0000000000000000000000000000000000001005","ReceiverLable":"BSC: Relayer Incentivize","Amount":"0 BNB","Value":"$0.00","TxnFee":"0.00003639"},{"Txhash":"0x856a43e71dadfcd57118bf9aa33ba56f5d459a58f3672f6aac3c3d6de6e9b031","Status":"Success","Method":"Claim Relayer Reward","Blockno":"43574351","DateTime":"2024-10-30 15:43:44","Sender":"0xb005741528b86F5952469d80A8614591E3c5B632","SenderLable":null,"Receiver":"0x0000000000000000000000000000000000001005","ReceiverLable":"BSC: Relayer Incentivize","Amount":"0 BNB","Value":"$0.00","TxnFee":"0.00003639"},{"Txhash":"0x74bfb20523f86391a47e36abd803a5e867555785b9a76f49086bd3b7edcd541b","Status":"Success","Method":"Claim Relayer Reward","Blockno":"43479552","DateTime":"2024-10-27 08:43:36","Sender":"0xb005741528b86F5952469d80A8614591E3c5B632","SenderLable":null,"Receiver":"0x0000000000000000000000000000000000001005","ReceiverLable":"BSC: Relayer Incentivize","Amount":"0 BNB","Value":"$0.00","TxnFee":"0.00003639"},{"Txhash":"0x079c0527d22ef6c8caee169f64ce5bdf55b50b2b58d5005a0cf610c6a73106b3","Status":"Success","Method":"Claim Relayer Reward","Blockno":"43342233","DateTime":"2024-10-22 14:17:21","Sender":"0xb005741528b86F5952469d80A8614591E3c5B632","SenderLable":null,"Receiver":"0x0000000000000000000000000000000000001005","ReceiverLable":"BSC: Relayer Incentivize","Amount":"0 BNB","Value":"$0.00","TxnFee":"0.00003639"},{"Txhash":"0x59133be95db980cbace08dd5dda62736ed68f07e2dc394088db7bd62164b059d","Status":"Success","Method":"Claim Relayer Reward","Blockno":"43233182","DateTime":"2024-10-18 19:24:11","Sender":"0xb005741528b86F5952469d80A8614591E3c5B632","SenderLable":null,"Receiver":"0x0000000000000000000000000000000000001005","ReceiverLable":"BSC: Relayer Incentivize","Amount":"0 BNB","Value":"$0.00","TxnFee":"0.00003639"},{"Txhash":"0x6c211145b51ab48ef286d7a86df7bc165d86d07919a299bcd7842f11003a0529","Status":"Success","Method":"Claim Relayer Reward","Blockno":"43136148","DateTime":"2024-10-15 10:32:04","Sender":"0xb005741528b86F5952469d80A8614591E3c5B632","SenderLable":null,"Receiver":"0x0000000000000000000000000000000000001005","ReceiverLable":"BSC: Relayer Incentivize","Amount":"0 BNB","Value":"$0.00","TxnFee":"0.00003639"},{"Txhash":"0x0f3dec4cb039f34f123e70484ac5df5f830c0991b49fc3663ec367411737ab23","Status":"Success","Method":"Claim Relayer Reward","Blockno":"43026492","DateTime":"2024-10-11 15:08:52","Sender":"0xb005741528b86F5952469d80A8614591E3c5B632","SenderLable":null,"Receiver":"0x0000000000000000000000000000000000001005","ReceiverLable":"BSC: Relayer Incentivize","Amount":"0 BNB","Value":"$0.00","TxnFee":"0.00003639"},{"Txhash":"0x74ef7a46c66f7527424e05faf842f552a2f878b10468133c6a60a4a0e3164cf4","Status":"Success","Method":"Claim Relayer Reward","Blockno":"42911289","DateTime":"2024-10-07 15:08:40","Sender":"0xb005741528b86F5952469d80A8614591E3c5B632","SenderLable":null,"Receiver":"0x0000000000000000000000000000000000001005","ReceiverLable":"BSC: Relayer Incentivize","Amount":"0 BNB","Value":"$0.00","TxnFee":"0.00003639"},{"Txhash":"0x2add23a49bcf0af99a8d238a18cb024646a99ef21823ecde212318dcf0363beb","Status":"Success","Method":"Claim Relayer Reward","Blockno":"42799114","DateTime":"2024-10-03 17:39:26","Sender":"0xb005741528b86F5952469d80A8614591E3c5B632","SenderLable":null,"Receiver":"0x0000000000000000000000000000000000001005","ReceiverLable":"BSC: Relayer Incentivize","Amount":"0 BNB","Value":"$0.00","TxnFee":"0.00003639"},{"Txhash":"0xd3d0c2f0edaa6581384d72527e3f53c0ea0d506679e9d3060f71f0192dab7ff4","Status":"Success","Method":"Claim Relayer Reward","Blockno":"42688697","DateTime":"2024-09-29 21:38:11","Sender":"0xb005741528b86F5952469d80A8614591E3c5B632","SenderLable":null,"Receiver":"0x0000000000000000000000000000000000001005","ReceiverLable":"BSC: Relayer Incentivize","Amount":"0 BNB","Value":"$0.00","TxnFee":"0.00003639"},{"Txhash":"0xd00d81d6a5f145c37deafa883eeb52453e9d2dc0aae77949d7afefebb89944f8","Status":"Success","Method":"Claim Relayer Reward","Blockno":"42607459","DateTime":"2024-09-27 01:56:02","Sender":"0xb005741528b86F5952469d80A8614591E3c5B632","SenderLable":null,"Receiver":"0x0000000000000000000000000000000000001005","ReceiverLable":"BSC: Relayer Incentivize","Amount":"0 BNB","Value":"$0.00","TxnFee":"0.00003639"}]'; const quickExportCsvTitle = 'Transaction Hash,Status,Method,Blockno,"DateTime (UTC)",From,From_Nametag,To,To_Nametag,Amount,Value (USD),Txn Fee'; let isExportFinish = true; if ($("#btnExportQuickTableToCSV").length > 0 && quickExportCsvData) { $("#btnExportQuickTableToCSV").click(function () { if (isExportFinish == true) { isExportFinish = false; $("#btnExportQuickTableToCSV").append(''); let lstTxsObj = JSON.parse(quickExportCsvData); if (lstTxsObj.length > 0) { let csvRows = []; csvRows.push(quickExportCsvTitle.replace(/"/g, "")); for (let i = 0; i 0 && quickExportInternalTxsData) { $("#ContentPlaceHolder1_btnQuickExportInternalTxs").click(function () { if (isExportFinish == true) { isExportFinish = false; $("#ContentPlaceHolder1_btnQuickExportInternalTxs").append(''); let lstTxsObj = JSON.parse(quickExportInternalTxsData); if (lstTxsObj.length > 0) { let csvRows = []; csvRows.push(quickExportInternalTxsTitle.replace(/"/g, "")); for (let i = 0; i { if (x.startsWith("F")) { file = x.replace("F", ""); } else if (x.startsWith("L")) { line = x.replace("L", ""); } }) var editorId = "editor" + file var editorElem = $("#" + editorId); if (!editorElem.length) { return; } if (!line) { return; } var editor = ace.edit(editorId); editor.resize(true); editor.scrollToLine(line, true, true, function () { }); editor.gotoLine(line); var Range = ace.require('ace/range').Range $(document).scrollTop($("#" + editorId).offset().top - 95); //document.getElementById(editorId).scrollIntoView(); editor.session.addMarker(new Range(line - 1, 0, line - 1, 1), "myMarker", "fullLine"); //window.onbeforeunload = function () { $(document).scrollTop($("#" + editorId).offset().top); }; } setTimeout(function () { editorGoToLine(); }, 500); }); $("body,html").click(function (evt) { let elm = $(evt.target).attr("id"); let isClickedMode = elm === "darkModaBtn" || elm === "darkModaBtnIcon"; if (isClickedMode) { let isClickedSunMode = false; let clrBorder = "#112641"; if (elm === "darkModaBtn") isClickedSunMode = $(evt.target).find("#darkModaBtnIcon").hasClass("fa-moon"); if (elm === "darkModaBtnIcon") isClickedSunMode = $(evt.target).hasClass("fa-moon"); if (isClickedSunMode) { clrBorder = "#fff"; } let iframes = document.getElementById('analytics_pageiframe'); let heatcell = iframes.contentWindow.document.getElementsByClassName("ch-day").length; for (let i = 0; i