Contract 0x94b008aa00579c1307b0ef2c499ad98a8ce58e58 6

 

Contract Overview

Balance:
0 Ether

EtherValue:
$0.00

Token:
Txn Hash Method
Index
From
To
Value
0x7b45fc51a76e79f02e719c593e8407a573a7bba1c68f3091d7ba77f6a016722fApprove138552072022-07-05 0:31:0914 mins ago0xc50e05b4802c643cd0873f5de9b793f2f988a12e IN  0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether0.0001210846430.001
0x4afc1cb2f45917dd63e2d75161e3ab13d596d42a56454a509284c4ee89406857Approve138548412022-07-05 0:22:2023 mins ago0x236176b4f9d3e3013e6959c58f7fe3de534e1772 IN  0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether0.0002362570870.001
0x8c8fb4a5b2f0568480f9da3b6edf765913879d80556c8dda0784dc8b7849f4d4Approve138533802022-07-05 0:00:1845 mins ago0x056a8f6a7222fcb6ecd3bee5368bc65dcf5e3ff7 IN  0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether0.0000909844320.001
0x6777dcb71471d05f3b04c7d2802e6d6ec62f179b00051a22857f82aff07f3d7dApprove138531192022-07-04 23:55:3450 mins ago0xe8ded3e09b2d02553feb804abfcc416ea57d137a IN  0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether0.0002471824950.001
0xcf9c2fb1b536039fe5a01cfa3f005408aaf07acf355ca3b26470fffb4c59c894Approve138522352022-07-04 23:39:501 hr 5 mins ago0x2ddbd93427608f5ff3a7f83f46f293aa410ddea9 IN  0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether0.0001078497140.001
0x73b0d24bc16f714c3783293b946f985afc49e966a619b071de41976ad35c2a4bApprove138516742022-07-04 23:28:501 hr 16 mins ago0x1bcd869a18a21196cd016b38411f78573e47c0a0 IN  0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether0.0002283064640.001
0xca6e63dab032afca3bfd4b9b9387ebe372323c16f99a37b62bcd5bc8f249ab71Approve138513832022-07-04 23:21:191 hr 24 mins ago0xbaf0ce3ed7888ab21e028ca421664f7b6c8a3eb2 IN  0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether0.0001808980890.001
0x47ebff33e33fdf39be3df1066e0443b08d9a7970939c1a52fad63e51b1b749abApprove138513802022-07-04 23:21:191 hr 24 mins ago0xbaf0ce3ed7888ab21e028ca421664f7b6c8a3eb2 IN  0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether0.0001809179890.001
0x177307f6913d6fd82b5015eaf562f76bf6a452b0ea56ab0bb2e3dea07c8af893Transfer138507332022-07-04 23:11:491 hr 33 mins ago0xd7aa9ba6caac7b0436c91396f22ca5a7f31664fc IN  0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether0.0002121540770.001
0xd7b877b95135bde070e453505d995848a768e907a7d3e5d704fc72ce0b291991Approve138506212022-07-04 23:09:201 hr 36 mins ago0xf06370c67def47be38a36c36fbcc04d30a29c1fb IN  0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether0.0001741369220.001
0x00098720b24af1c01588d2e86e5c9338b4ab41afbe0b77b1333441800fcf7c2dApprove138505322022-07-04 23:07:451 hr 38 mins ago0x1bcd869a18a21196cd016b38411f78573e47c0a0 IN  0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether0.0001553327250.001
0x0ba47b00eaa1b6d074c7e7ad3de6c55b77c12425cc972f6d206ca4efcbba3ac7Approve138495832022-07-04 22:48:311 hr 57 mins ago0xe655016b2183dee463197f0c176eafe14bbfc304 IN  0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether0.000087117120.001
0xcc7b86d23125170ad0c7778fd7551e4df10fb449a12bcfad7d50913b00656db9Approve138475722022-07-04 22:09:382 hrs 36 mins ago0x449833c57904f9d88cd3c26932060a329b93fe94 IN  0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether0.0001064658570.001
0x178b30b9b6486fea2b67ca7c70e07c8044b2772d2a1ed779838c8d7c13816d0fApprove138462782022-07-04 21:43:513 hrs 1 min ago0xee3a8fc33ed3f4c33b3e68d495325898877237f7 IN  0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether0.0000929298710.001
0xebce6b79a15c9369234b24994dd0ebb8c4a27131a6fa0057a1a1193d0d7b9024Approve138462082022-07-04 21:42:113 hrs 3 mins ago0xc2868742b4627f7052997f212ee5051d465b3947 IN  0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether0.0000818586460.001
0xfd15bab87ab4d7708aafc68c3bc82661e129746de65f47ff5de8041f952e6b86Approve138454922022-07-04 21:32:413 hrs 13 mins ago0x40e14b90e66b1d694f425579118d0dc8ef1dbc91 IN  0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether0.000088974590.001
0x3bd7cd99534593fe700d742ddf10257c43304f47fcf9906922097b0457ffbadeApprove138454912022-07-04 21:32:413 hrs 13 mins ago 0x26463f18fa1f6d850542b13376edc152ca8e970d IN  0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether0.000088974590.001
0xd3c0e038afebbe5cc513bd92ead6c085473686b234e3248a8a9a38c711a9147fApprove138454172022-07-04 21:29:433 hrs 16 mins ago0x8e89a28d397b1ea1d6ad9392a7d95e9b50b385db IN  0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether0.0000892464850.001
0xa45950870ced3575989634dda9a454cf780ec8fa193923d23cc334411a8640deApprove138452842022-07-04 21:25:273 hrs 20 mins ago0x27fc97302a7aa0bd1708ab72dc790823a297a885 IN  0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether0.000147818930.001
0x731ab59641a4d4de63697596fbcb103eb15891d4a39088455439421e35ed5479Approve138451852022-07-04 21:20:573 hrs 24 mins ago0x27fc97302a7aa0bd1708ab72dc790823a297a885 IN  0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether0.0000862209060.001
0x7c622489a1c74681e1312e6565af3d9c91ebcd3a5fec10a36a6d3ea59dbc4a83Approve138451392022-07-04 21:19:303 hrs 26 mins ago0xd9dc67e1bd3ba9dee7426c081c23e1a08d7ce567 IN  0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether0.0000666711240.001
0xef297624df7c4b1a2863e5c7b989cf39c6fd6837740ed833c358b50047dfec61Approve138449592022-07-04 21:14:063 hrs 31 mins ago0xec54443a962c8febdeaa4a22317bd90655c3056b IN  0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether0.000050957560.001
0xe7be8b43499eba0ef926ec7e6bfcba71e25b48561391fdfd8dddcb750ef4eb3bApprove138449182022-07-04 21:12:423 hrs 33 mins ago0x4c6468b1447237375d1d1e7028ae087f6e755296 IN  0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether0.000035848760.001
0x5c1a374739d31c0e175e99f25a22114a8332acf5f00eb719a2ea74826d4d124aTransfer138449062022-07-04 21:12:273 hrs 33 mins ago0xd96d48cc159ebad325e5573ba79cccf0bd1a167d IN  0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether0.0000425033580.001
0x28ca509cf4591ec58fd4ea5f3783a8fbec0a5ebf10aec2b08cd9cc25d8cafbeaApprove138448222022-07-04 21:09:103 hrs 36 mins ago0x2c50977c0976fcfec5539579d4f96a59e664efca IN  0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether0.0000615071080.001
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xaf4001fc30660479f1bed0c7a2921db62255ac6044c8045814817877b7a82931138556562022-07-05 0:41:144 mins ago 0xc858a329bf053be78d6239c4a4343b8fbd21472b 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0xaf4001fc30660479f1bed0c7a2921db62255ac6044c8045814817877b7a82931138556562022-07-05 0:41:144 mins ago 0x94bc2a1c732bcad7343b25af48385fe76e08734f 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0xaf4001fc30660479f1bed0c7a2921db62255ac6044c8045814817877b7a82931138556562022-07-05 0:41:144 mins ago 0xc858a329bf053be78d6239c4a4343b8fbd21472b 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0xaf4001fc30660479f1bed0c7a2921db62255ac6044c8045814817877b7a82931138556562022-07-05 0:41:144 mins ago 0x94bc2a1c732bcad7343b25af48385fe76e08734f 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0xaf4001fc30660479f1bed0c7a2921db62255ac6044c8045814817877b7a82931138556562022-07-05 0:41:144 mins ago 0x2df05e4cdbd758cb1a99a34bb0d767e040d6b078 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0xaf4001fc30660479f1bed0c7a2921db62255ac6044c8045814817877b7a82931138556562022-07-05 0:41:144 mins ago 0x94bc2a1c732bcad7343b25af48385fe76e08734f 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0xaf4001fc30660479f1bed0c7a2921db62255ac6044c8045814817877b7a82931138556562022-07-05 0:41:144 mins ago 0x2df05e4cdbd758cb1a99a34bb0d767e040d6b078 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0xaf4001fc30660479f1bed0c7a2921db62255ac6044c8045814817877b7a82931138556562022-07-05 0:41:144 mins ago 0x94bc2a1c732bcad7343b25af48385fe76e08734f 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0xaf4001fc30660479f1bed0c7a2921db62255ac6044c8045814817877b7a82931138556562022-07-05 0:41:144 mins ago 0xf3f3433c3a97f70349c138ada81da4d3554982db 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0xaf4001fc30660479f1bed0c7a2921db62255ac6044c8045814817877b7a82931138556562022-07-05 0:41:144 mins ago 0xe08d427724d8a2673fe0be3a81b7db17be835b36 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0xaf4001fc30660479f1bed0c7a2921db62255ac6044c8045814817877b7a82931138556562022-07-05 0:41:144 mins ago 0xe08d427724d8a2673fe0be3a81b7db17be835b36 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0xaf4001fc30660479f1bed0c7a2921db62255ac6044c8045814817877b7a82931138556562022-07-05 0:41:144 mins ago 0xe08d427724d8a2673fe0be3a81b7db17be835b36 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0x6e6cba3a5dd88ac9b201772c7d4d5463bb6221cb6b0d7fec1f605a4e999017f0138556412022-07-05 0:40:534 mins ago 0xc858a329bf053be78d6239c4a4343b8fbd21472b 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0x7a2c14001ef85ec81281db29d9ca8ff56c41660ae0fb9ec0d82a1841327bdad1138556092022-07-05 0:40:025 mins ago Clipper Exchange: Pool 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0x7a2c14001ef85ec81281db29d9ca8ff56c41660ae0fb9ec0d82a1841327bdad1138556092022-07-05 0:40:025 mins ago Clipper Exchange: Pool 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0x2db5f5bcd7a936f75b261b907fdcda0b3d65021bf95a20b316fdcb9170c6d11d138555342022-07-05 0:37:408 mins ago 0x1337bedc9d22ecbe766df105c9623922a27963ec 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0x2db5f5bcd7a936f75b261b907fdcda0b3d65021bf95a20b316fdcb9170c6d11d138555342022-07-05 0:37:408 mins ago 0x94bc2a1c732bcad7343b25af48385fe76e08734f 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0x2db5f5bcd7a936f75b261b907fdcda0b3d65021bf95a20b316fdcb9170c6d11d138555342022-07-05 0:37:408 mins ago 1inch.exchange: Aggregation Router V4 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0xef2f6ec98d44986ed5f9bc143b4fa0f341a746882b0216e5dd9f731682b570b3138555002022-07-05 0:36:089 mins ago 0xc8f51393fe595f3f3a3caad164d781b7f4a596dd 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0xef2f6ec98d44986ed5f9bc143b4fa0f341a746882b0216e5dd9f731682b570b3138555002022-07-05 0:36:089 mins ago 0xc8f51393fe595f3f3a3caad164d781b7f4a596dd 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0xef2f6ec98d44986ed5f9bc143b4fa0f341a746882b0216e5dd9f731682b570b3138555002022-07-05 0:36:089 mins ago 0xc8f51393fe595f3f3a3caad164d781b7f4a596dd 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0xef2f6ec98d44986ed5f9bc143b4fa0f341a746882b0216e5dd9f731682b570b3138555002022-07-05 0:36:089 mins ago 0xe1224c055c057cb71e41dac936ba946f6f500ed1 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0xef2f6ec98d44986ed5f9bc143b4fa0f341a746882b0216e5dd9f731682b570b3138555002022-07-05 0:36:089 mins ago 0xe1224c055c057cb71e41dac936ba946f6f500ed1 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0xef2f6ec98d44986ed5f9bc143b4fa0f341a746882b0216e5dd9f731682b570b3138555002022-07-05 0:36:089 mins ago 0xe1224c055c057cb71e41dac936ba946f6f500ed1 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
0xef2f6ec98d44986ed5f9bc143b4fa0f341a746882b0216e5dd9f731682b570b3138555002022-07-05 0:36:089 mins ago 0xf046d8b7365d8abe5a8f8301c669b4b5284fc21d 0x94b008aa00579c1307b0ef2c499ad98a8ce58e580 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Genesis Bytecode Match Only)

Contract Name:
USDT

Compiler Version
v0.7.6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at optimistic.etherscan.io on 2021-08-31
*/

// Sources flattened with hardhat v2.3.3 https://hardhat.org

// File @openzeppelin/contracts/utils/[email protected]

// SPDX-License-Identifier: MIT

pragma solidity >=0.6.0 <0.8.0;

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with GSN meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return msg.sender;
    }

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


// File @openzeppelin/contracts/token/ERC20/[email protected]


pragma solidity >=0.6.0 <0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}


// File @openzeppelin/contracts/math/[email protected]

pragma solidity >=0.6.0 <0.8.0;

/**
 * @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, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        uint256 c = a + b;
        if (c < a) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b > a) return (false, 0);
        return (true, a - b);
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, 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 (true, 0);
        uint256 c = a * b;
        if (c / a != b) return (false, 0);
        return (true, c);
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a / b);
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a % b);
    }

    /**
     * @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) {
        require(b <= a, "SafeMath: subtraction overflow");
        return a - b;
    }

    /**
     * @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) {
        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, reverting 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) {
        require(b > 0, "SafeMath: division by zero");
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting 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) {
        require(b > 0, "SafeMath: modulo by zero");
        return a % b;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * 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);
        return a - b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryDiv}.
     *
     * 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) {
        require(b > 0, errorMessage);
        return a / b;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * 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;
    }
}


// File @openzeppelin/contracts/token/ERC20/[email protected]


pragma solidity >=0.6.0 <0.8.0;



/**
 * @dev Implementation of the {IERC20} interface.
 *
 * This implementation is agnostic to the way tokens are created. This means
 * that a supply mechanism has to be added in a derived contract using {_mint}.
 * For a generic mechanism see {ERC20PresetMinterPauser}.
 *
 * TIP: For a detailed writeup see our guide
 * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
 * to implement supply mechanisms].
 *
 * We have followed general OpenZeppelin guidelines: functions revert instead
 * of returning `false` on failure. This behavior is nonetheless conventional
 * and does not conflict with the expectations of ERC20 applications.
 *
 * Additionally, an {Approval} event is emitted on calls to {transferFrom}.
 * This allows applications to reconstruct the allowance for all accounts just
 * by listening to said events. Other implementations of the EIP may not emit
 * these events, as it isn't required by the specification.
 *
 * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
 * functions have been added to mitigate the well-known issues around setting
 * allowances. See {IERC20-approve}.
 */
contract ERC20 is Context, IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;

    mapping (address => mapping (address => uint256)) private _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    /**
     * @dev Sets the values for {name} and {symbol}, initializes {decimals} with
     * a default value of 18.
     *
     * To select a different value for {decimals}, use {_setupDecimals}.
     *
     * All three of these values are immutable: they can only be set once during
     * construction.
     */
    constructor (string memory name_, string memory symbol_) public {
        _name = name_;
        _symbol = symbol_;
        _decimals = 18;
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5,05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is
     * called.
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual returns (uint8) {
        return _decimals;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    /**
     * @dev Moves tokens `amount` from `sender` to `recipient`.
     *
     * This is internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `to` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }

    /**
     * @dev Destroys `amount` tokens from `account`, reducing the
     * total supply.
     *
     * Emits a {Transfer} event with `to` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     * - `account` must have at least `amount` tokens.
     */
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Sets {decimals} to a value other than the default one of 18.
     *
     * WARNING: This function should only be called from the constructor. Most
     * applications that interact with token contracts will not expect
     * {decimals} to ever change, and may work incorrectly if it does.
     */
    function _setupDecimals(uint8 decimals_) internal virtual {
        _decimals = decimals_;
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be to transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}


// File @openzeppelin/contracts/introspection/[email protected]


pragma solidity >=0.6.0 <0.8.0;

/**
 * @dev Interface of the ERC165 standard, as defined in the
 * https://eips.ethereum.org/EIPS/eip-165[EIP].
 *
 * Implementers can declare support of contract interfaces, which can then be
 * queried by others ({ERC165Checker}).
 *
 * For an implementation, see {ERC165}.
 */
interface IERC165 {
    /**
     * @dev Returns true if this contract implements the interface defined by
     * `interfaceId`. See the corresponding
     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
     * to learn more about how these ids are created.
     *
     * This function call must use less than 30 000 gas.
     */
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}


// File @eth-optimism/contracts/libraries/standards/[email protected]

pragma solidity >=0.5.16 <0.8.0;


interface IL2StandardERC20 is IERC20, IERC165 {
    function l1Token() external returns (address);

    function mint(address _to, uint256 _amount) external;

    function burn(address _from, uint256 _amount) external;

    event Mint(address indexed _account, uint256 _amount);
    event Burn(address indexed _account, uint256 _amount);
}


// File @eth-optimism/contracts/libraries/standards/[email protected]

pragma solidity >=0.5.16 <0.8.0;

contract L2StandardERC20 is IL2StandardERC20, ERC20 {
    address public override l1Token;
    address public l2Bridge;

    /**
     * @param _l1Token Address of the corresponding L1 token.
     * @param _name ERC20 name.
     * @param _symbol ERC20 symbol.
     */
    constructor(
        address _l2Bridge,
        address _l1Token,
        string memory _name,
        string memory _symbol
    )
        ERC20(_name, _symbol) {
        l1Token = _l1Token;
        l2Bridge = _l2Bridge;
    }

    modifier onlyL2Bridge {
        require(msg.sender == l2Bridge, "Only L2 Bridge can mint and burn");
        _;
    }

    function supportsInterface(bytes4 _interfaceId) public override pure returns (bool) {
        bytes4 firstSupportedInterface = bytes4(keccak256("supportsInterface(bytes4)")); // ERC165
        bytes4 secondSupportedInterface = IL2StandardERC20.l1Token.selector
            ^ IL2StandardERC20.mint.selector
            ^ IL2StandardERC20.burn.selector;
        return _interfaceId == firstSupportedInterface || _interfaceId == secondSupportedInterface;
    }

    function mint(address _to, uint256 _amount) public override onlyL2Bridge {
        _mint(_to, _amount);

        emit Mint(_to, _amount);
    }

    function burn(address _from, uint256 _amount) public override onlyL2Bridge {
        _burn(_from, _amount);

        emit Burn(_from, _amount);
    }
}


// File contracts/USDT.sol

pragma solidity >=0.5.16 <0.8.0;



contract USDT is L2StandardERC20 {
    constructor(
      address _l2Bridge,
      address _l1Token
    )
        L2StandardERC20(_l2Bridge, _l1Token, "Tether USD", "USDT")
        {
            _setupDecimals(6);
        }

    using SafeMath for uint256;

    /**
    * @dev Fix for the ERC20 short address attack.
    */
    modifier onlyPayloadSize(uint size) {
        require(!(msg.data.length < size + 4));
        _;
    }

    function transfer(address recipient, uint256 amount) public
    onlyPayloadSize(2 * 32)
    override returns (bool)
    {
      return super.transfer(recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) public
    onlyPayloadSize(2 * 32)
    override returns (bool)
    {
      _transfer(sender, recipient, amount);

      uint256 currentAllowance = allowance(sender, _msgSender());
      if (currentAllowance < type(uint).max)
      {
        _approve(sender, _msgSender(), currentAllowance.sub(amount, "ERC20: transfer amount exceeds allowance"));
      }

      return true;
    }

    function approve(address spender, uint256 amount) public
    onlyPayloadSize(2 * 32)
    override returns (bool)
    {
      return super.approve(spender, amount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_l2Bridge","type":"address"},{"internalType":"address","name":"_l1Token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_account","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_account","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"l1Token","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"l2Bridge","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001c576000806200001962000236565b50505b506040516200223538038062002235833981810160405260408110156200004d576000806200004a62000236565b50505b81019080805190602001909291908051906020019092919050505081816040518060400160405280600a81526020017f54657468657220555344000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f555344540000000000000000000000000000000000000000000000000000000081525081818160039080519060200190620000f0929190620002a6565b50806004908051906020019062000109929190620002a6565b506012600560006101000a816200011f62000372565b8160ff021916908360ff1602179062000137620003d7565b505050505082600560016101000a816200015062000372565b8173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217906200018e620003d7565b50505083600660006101000a81620001a562000372565b8173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790620001e3620003d7565b50505050505050620001fc60066200020460201b60201c565b505062000468565b80600560006101000a816200021862000372565b8160ff021916908360ff1602179062000230620003d7565b50505050565b632a2a7adb598160e01b8152600481016020815285602082015260005b868110156200027357808601518160408401015260208101905062000253565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b8280620002b262000372565b600181600116156101000203166002900490600052602060002090601f016020900481019282620002f257600085620002ea620003d7565b50506200035f565b82601f106200031857805160ff1916838001178562000310620003d7565b50506200035f565b8280016001018562000329620003d7565b505082156200035f579182015b828111156200035e578251826200034c620003d7565b50509160200191906001019062000336565b5b5090506200036e91906200043e565b5090565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b6040811015620003d257600081830152602081019050620003b6565b505050565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b60005b604081101562000439576000818301526020810190506200041d565b505050565b5b80821115620004645760008160009062000458620003d7565b5050506001016200043f565b5090565b611dbd80620004786000396000f3fe608060405234801561001957600080610016611ae5565b50505b50600436106101095760003560e01c806370a08231116100a0578063a9059cbb1161006f578063a9059cbb146105ab578063ae1f6aaf14610618578063c01e1bd61461064c578063dd62ed3e1461068057610109565b806370a082311461040357806395d89b41146104645780639dc29fac146104e7578063a457c2d71461053e57610109565b806323b872dd116100dc57806323b872dd14610291578063313ce5671461031e578063395093511461033f57806340c10f19146103ac57610109565b806301ffc9a71461011757806306fdde0314610183578063095ea7b31461020657806318160ddd14610273575b600080610114611ae5565b50505b61016b6004803603602081101561013657600080610133611ae5565b50505b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610701565b60405180821515815260200191505060405180910390f35b61018b6107d7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101cb5780820151818401526020810190506101b0565b50505050905090810190601f1680156101f85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61025b6004803603604081101561022557600080610222611ae5565b50505b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610895565b60405180821515815260200191505060405180910390f35b61027b6108c9565b6040518082815260200191505060405180910390f35b610306600480360360608110156102b0576000806102ad611ae5565b50505b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108da565b60405180821515815260200191505060405180910390f35b61032661098f565b604051808260ff16815260200191505060405180910390f35b6103946004803603604081101561035e5760008061035b611ae5565b50505b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109ad565b60405180821515815260200191505060405180910390f35b610401600480360360408110156103cb576000806103c8611ae5565b50505b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a67565b005b61044e600480360360208110156104225760008061041f611ae5565b50505b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b9e565b6040518082815260200191505060405180910390f35b61046c610bed565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104ac578082015181840152602081019050610491565b50505050905090810190601f1680156104d95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61053c6004803603604081101561050657600080610503611ae5565b50505b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cab565b005b6105936004803603604081101561055d5760008061055a611ae5565b50505b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610de2565b60405180821515815260200191505060405180910390f35b610600600480360360408110156105ca576000806105c7611ae5565b50505b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610eb6565b60405180821515815260200191505060405180910390f35b610620610eea565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610654610f17565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106eb6004803603604081101561069f5760008061069c611ae5565b50505b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f44565b6040518082815260200191505060405180910390f35b6000807f01ffc9a7a5cef8baa21ed3c5c0d7e23accb804b619e9333b597f47a0d84076e290506000639dc29fac60e01b6340c10f1960e01b63c01e1bd660e01b18189050817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806107ce5750807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b92505050919050565b60606003806107e4611b53565b600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828061081f611b53565b6001816001161561010002031660029004801561088b5780601f1061085957610100808361084b611b53565b04028352916020019161088b565b820191906000526020600020905b81610870611b53565b8152906001019060200180831161086757829003601f168201915b5050505050905090565b6000604060048101600036905010156108b6576000806108b3611ae5565b50505b6108c08484610fd2565b91505092915050565b600060026108d5611b53565b905090565b6000604060048101600036905010156108fb576000806108f8611ae5565b50505b610906858585610ff0565b6000610919866109146112e3565b610f44565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811015610982576109818661094f6112e3565b61097c87604051806060016040528060288152602001611d0660289139866112f39092919063ffffffff16565b6113b6565b5b6001925050509392505050565b6000600560009061099e611b53565b906101000a900460ff16905090565b6000610a5d6109ba6112e3565b84610a5885600160006109cb6112e3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020610a4a611b53565b6115c890919063ffffffff16565b6113b6565b6001905092915050565b6006600090610a74611b53565b906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165a610ab0611bb6565b73ffffffffffffffffffffffffffffffffffffffff1614610b42576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f6e6c79204c32204272696467652063616e206d696e7420616e64206275726e81525060200191505060405180910390610b3f611ae5565b50505b610b4c8282611659565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040518082815260200191505060405180910390a25050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020610be6611b53565b9050919050565b6060600480610bfa611b53565b600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280610c35611b53565b60018160011615610100020316600290048015610ca15780601f10610c6f576101008083610c61611b53565b040283529160200191610ca1565b820191906000526020600020905b81610c86611b53565b81529060010190602001808311610c7d57829003601f168201915b5050505050905090565b6006600090610cb8611b53565b906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165a610cf4611bb6565b73ffffffffffffffffffffffffffffffffffffffff1614610d86576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f6e6c79204c32204272696467652063616e206d696e7420616e64206275726e81525060200191505060405180910390610d83611ae5565b50505b610d908282611849565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a25050565b6000610eac610def6112e3565b84610ea785604051806060016040528060258152602001611d986025913960016000610e196112e3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020610e98611b53565b6112f39092919063ffffffff16565b6113b6565b6001905092915050565b600060406004810160003690501015610ed757600080610ed4611ae5565b50505b610ee18484611a36565b91505092915050565b6006600090610ef7611b53565b906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6005600190610f24611b53565b906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020610fca611b53565b905092915050565b6000610fe6610fdf6112e3565b84846113b6565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561107f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180611d4f602591396040019150506040518091039061107c611ae5565b50505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561110e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611c79602391396040019150506040518091039061110b611ae5565b50505b611119838383611a54565b61118b81604051806060016040528060268152602001611ce0602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061117c611b53565b6112f39092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081906111d3611c13565b50505061122e816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611220611b53565b6115c890919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190611276611c13565b5050508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60005a6112ee611bb6565b905090565b60008383111582906113a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561136557808201518184015260208101905061134a565b50505050905090810190601f1680156113925780820380516001836020036101000a031916815260200191505b5092505050604051809103906113a6611ae5565b50505b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611445576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180611d746024913960400191505060405180910390611442611ae5565b50505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114d4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611cbe60229139604001915050604051809103906114d1611ae5565b50505b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819061155b611c13565b5050508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b60008082840190508381101561164f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f7700000000008152506020019150506040518091039061164c611ae5565b50505b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611705576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390611702611ae5565b50505b61171160008383611a54565b61172d81600261171f611b53565b6115c890919063ffffffff16565b60028190611739611c13565b505050611794816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611786611b53565b6115c890919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081906117dc611c13565b5050508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118d8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611d2e60219139604001915050604051809103906118d5611ae5565b50505b6118e482600083611a54565b61195681604051806060016040528060228152602001611c9c602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611947611b53565b6112f39092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819061199e611c13565b5050506119bd8160026119af611b53565b611a5990919063ffffffff16565b600281906119c9611c13565b505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000611a4a611a436112e3565b8484610ff0565b6001905092915050565b505050565b600082821115611ada576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390611ad7611ae5565b50505b818303905092915050565b632a2a7adb598160e01b8152600481016020815285602082015260005b86811015611b20578086015181604084010152602081019050611b02565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b6040811015611bb157600081830152602081019050611b97565b505050565b6373509064598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b6040811015611c0e57600081830152602081019050611bf4565b505050565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b60005b6040811015611c7357600081830152602081019050611c59565b50505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f0000000000000000000000004200000000000000000000000000000000000010000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000004200000000000000000000000000000000000010000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7

-----Decoded View---------------
Arg [0] : _l2Bridge (address): 0x4200000000000000000000000000000000000010
Arg [1] : _l1Token (address): 0xdac17f958d2ee523a2206206994597c13d831ec7

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000004200000000000000000000000000000000000010
Arg [1] : 000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7


Deployed ByteCode Sourcemap

25410:1295:0:-:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;24552:463;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13548:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26528:174;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14647:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;26054:466;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14491:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17075:218;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;25023:147;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14818:127;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13758:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25178:153;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17796:269;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;25866:180;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;23998:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;23960:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15396:151;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;24552:463;24630:4;24647:30;24687:38;24647:79;;24747:31;24876:30;;;24830;;;24781:33;;;:79;:125;24747:159;;24940:23;24924:39;;;:12;:39;;;;:83;;;;24983:24;24967:40;;;:12;:40;;;;24924:83;24917:90;;;;24552:463;;;:::o;13548:91::-;13593:13;13626:5;13619:12;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13548:91;:::o;26528:174::-;26637:4;26606:6;25835:1;25828:4;:8;25810;;:15;;:26;25808:29;25800:38;;;;;;:::i;:::-;;;;26664:30:::1;26678:7;26687:6;26664:13;:30::i;:::-;26657:37;;26528:174:::0;;;;;:::o;14647:108::-;14708:7;14735:12;;;:::i;:::-;14728:19;;14647:108;:::o;26054:466::-;26186:4;26155:6;25835:1;25828:4;:8;25810;;:15;;:26;25808:29;25800:38;;;;;;:::i;:::-;;;;26206:36:::1;26216:6;26224:9;26235:6;26206:9;:36::i;:::-;26253:24;26280:31;26290:6;26298:12;:10;:12::i;:::-;26280:9;:31::i;:::-;26253:58;;26343:14;26324:16;:33;26320:171;;;26377:104;26386:6;26394:12;:10;:12::i;:::-;26408:72;26429:6;26408:72;;;;;;;;;;;;;;;;;:16;:20;;:72;;;;;:::i;:::-;26377:8;:104::i;:::-;26320:171;26508:4;26501:11;;;26054:466:::0;;;;;;:::o;14491:91::-;14540:5;14565:9;;;;;:::i;:::-;;;;;;;;14558:16;;14491:91;:::o;17075:218::-;17163:4;17180:83;17189:12;:10;:12::i;:::-;17203:7;17212:50;17251:10;17212:11;:25;17224:12;:10;:12::i;:::-;17212:25;;;;;;;;;;;;;;;:34;17238:7;17212:34;;;;;;;;;;;;;;;;;:::i;:::-;:38;;:50;;;;:::i;:::-;17180:8;:83::i;:::-;17281:4;17274:11;;17075:218;;;;:::o;25023:147::-;24479:8;;;;;:::i;:::-;;;;;;;;24465:22;;:10;;;:::i;:::-;:22;;;24457:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;25107:19:::1;25113:3;25118:7;25107:5;:19::i;:::-;25149:3;25144:18;;;25154:7;25144:18;;;;;;;;;;;;;;;;;;25023:147:::0;;:::o;14818:127::-;14892:7;14919:9;:18;14929:7;14919:18;;;;;;;;;;;;;;;;;:::i;:::-;14912:25;;14818:127;;;:::o;13758:95::-;13805:13;13838:7;13831:14;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13758:95;:::o;25178:153::-;24479:8;;;;;:::i;:::-;;;;;;;;24465:22;;:10;;;:::i;:::-;:22;;;24457:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;25264:21:::1;25270:5;25277:7;25264:5;:21::i;:::-;25308:5;25303:20;;;25315:7;25303:20;;;;;;;;;;;;;;;;;;25178:153:::0;;:::o;17796:269::-;17889:4;17906:129;17915:12;:10;:12::i;:::-;17929:7;17938:96;17977:15;17938:96;;;;;;;;;;;;;;;;;:11;:25;17950:12;:10;:12::i;:::-;17938:25;;;;;;;;;;;;;;;:34;17964:7;17938:34;;;;;;;;;;;;;;;;;:::i;:::-;:38;;:96;;;;;:::i;:::-;17906:8;:129::i;:::-;18053:4;18046:11;;17796:269;;;;:::o;25866:180::-;25978:4;25947:6;25835:1;25828:4;:8;25810;;:15;;:26;25808:29;25800:38;;;;;;:::i;:::-;;;;26005:33:::1;26020:9;26031:6;26005:14;:33::i;:::-;25998:40;;25866:180:::0;;;;;:::o;23998:23::-;;;;;;:::i;:::-;;;;;;;;;:::o;23960:31::-;;;;;;:::i;:::-;;;;;;;;;:::o;15396:151::-;15485:7;15512:11;:18;15524:5;15512:18;;;;;;;;;;;;;;;:27;15531:7;15512:27;;;;;;;;;;;;;;;;;:::i;:::-;15505:34;;15396:151;;;;:::o;15694:169::-;15777:4;15794:39;15803:12;:10;:12::i;:::-;15817:7;15826:6;15794:8;:39::i;:::-;15851:4;15844:11;;15694:169;;;;:::o;18555:539::-;18679:1;18661:20;;:6;:20;;;;18653:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18763:1;18742:23;;:9;:23;;;;18734:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18818:47;18839:6;18847:9;18858:6;18818:20;:47::i;:::-;18898:71;18920:6;18898:71;;;;;;;;;;;;;;;;;:9;:17;18908:6;18898:17;;;;;;;;;;;;;;;;;:::i;:::-;:21;;:71;;;;;:::i;:::-;18878:9;:17;18888:6;18878:17;;;;;;;;;;;;;;;:91;;;;:::i;:::-;;;;19003:32;19028:6;19003:9;:20;19013:9;19003:20;;;;;;;;;;;;;;;;;:::i;:::-;:24;;:32;;;;:::i;:::-;18980:9;:20;18990:9;18980:20;;;;;;;;;;;;;;;:55;;;;:::i;:::-;;;;19068:9;19051:35;;19060:6;19051:35;;;19079:6;19051:35;;;;;;;;;;;;;;;;;;18555:539;;;:::o;737:106::-;790:15;825:10;;;:::i;:::-;818:17;;737:106;:::o;9536:166::-;9622:7;9655:1;9650;:6;;9658:12;9642:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;9693:1;9689;:5;9682:12;;9536:166;;;;;:::o;20943:346::-;21062:1;21045:19;;:5;:19;;;;21037:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21143:1;21124:21;;:7;:21;;;;21116:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21227:6;21197:11;:18;21209:5;21197:18;;;;;;;;;;;;;;;:27;21216:7;21197:27;;;;;;;;;;;;;;;:36;;;;:::i;:::-;;;;21265:7;21249:32;;21258:5;21249:32;;;21274:6;21249:32;;;;;;;;;;;;;;;;;;20943:346;;;:::o;6709:179::-;6767:7;6787:9;6803:1;6799;:5;6787:17;;6828:1;6823;:6;;6815:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;6879:1;6872:8;;;6709:179;;;;:::o;19376:378::-;19479:1;19460:21;;:7;:21;;;;19452:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19530:49;19559:1;19563:7;19572:6;19530:20;:49::i;:::-;19607:24;19624:6;19607:12;;;:::i;:::-;:16;;:24;;;;:::i;:::-;19592:12;:39;;;;:::i;:::-;;;;19663:30;19686:6;19663:9;:18;19673:7;19663:18;;;;;;;;;;;;;;;;;:::i;:::-;:22;;:30;;;;:::i;:::-;19642:9;:18;19652:7;19642:18;;;;;;;;;;;;;;;:51;;;;:::i;:::-;;;;19730:7;19709:37;;19726:1;19709:37;;;19739:6;19709:37;;;;;;;;;;;;;;;;;;19376:378;;:::o;20087:418::-;20190:1;20171:21;;:7;:21;;;;20163:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20243:49;20264:7;20281:1;20285:6;20243:20;:49::i;:::-;20326:68;20349:6;20326:68;;;;;;;;;;;;;;;;;:9;:18;20336:7;20326:18;;;;;;;;;;;;;;;;;:::i;:::-;:22;;:68;;;;;:::i;:::-;20305:9;:18;20315:7;20305:18;;;;;;;;;;;;;;;:89;;;;:::i;:::-;;;;20420:24;20437:6;20420:12;;;:::i;:::-;:16;;:24;;;;:::i;:::-;20405:12;:39;;;;:::i;:::-;;;;20486:1;20460:37;;20469:7;20460:37;;;20490:6;20460:37;;;;;;;;;;;;;;;;;;20087:418;;:::o;15158:175::-;15244:4;15261:42;15271:12;:10;:12::i;:::-;15285:9;15296:6;15261:9;:42::i;:::-;15321:4;15314:11;;15158:175;;;;:::o;22322:92::-;;;;:::o;7171:158::-;7229:7;7262:1;7257;:6;;7249:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7320:1;7316;:5;7309:12;;7171:158;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

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