Contract 0x1da650c3b2daa8aa9ff6f661d4156ce24d08a062 4

 

Contract Overview

Dentacoin: DCN Token
Balance:
0 Ether

EtherValue:
$0.00
Txn Hash Method
Index
From
To
Value
0x2adee8a6988373a4a3b785610592c1bc6ca2cdf08fd464ac02553c28128f33faTransfer86558592022-05-20 9:32:0524 mins ago0x6526aceec97e86ba1965a3e2e120e629d7abdf79 IN  Dentacoin: DCN Token0 Ether0.0000594562380.001
0x495136d35c99963a5f329ffe39b688a2571dc1fcfeed78d38ace8ab8489e3b8eTransfer86544032022-05-20 9:01:5654 mins ago0xdeda58ed6e4b9aec9f73ff2ddd1e1d94117b0a21 IN  Dentacoin: DCN Token0 Ether0.0000544548110.001
0xea23ec3bcb822ab839a9c7af84f78a8cc5c0261499020586e9c7893c47ce0a79Transfer86521992022-05-20 8:15:541 hr 40 mins ago0x472dca9969fb7f13686b056a2582166034fcf780 IN  Dentacoin: DCN Token0 Ether0.0000492902380.001
0xb3f726c000fd0c6b3071e6476cf9b8487e9d97a8a8e35d53269ef58fb33cc0b4Transfer86520172022-05-20 8:10:471 hr 45 mins ago0x4db7e0a6474f39f4fbffd96bd0b39c83a9f291c8 IN  Dentacoin: DCN Token0 Ether0.0000830035940.001
0xce4fdd6849ae74b870d4a858f66186b88f08007083a1ad64827b39c426675d01Transfer86519082022-05-20 8:09:461 hr 46 mins ago0x4db7e0a6474f39f4fbffd96bd0b39c83a9f291c8 IN  Dentacoin: DCN Token0 Ether0.0000656144930.001
0x6763ce2255a927250535cf8d8026b085f9a7abbfdc4cd572c924f3e38cb27a82Transfer86511232022-05-20 7:54:102 hrs 2 mins ago0xf77cc15d253e50f0773bf6f843a958e2a9337454 IN  Dentacoin: DCN Token0 Ether0.000068423090.001
0xba7e74721f4dc2a6ed963cf9cabb8f424694185058c5bb5640b68402f34c093dTransfer86504642022-05-20 7:36:442 hrs 19 mins ago0x79815740a8711cbad81ba4bec0619bed296cb728 IN  Dentacoin: DCN Token0 Ether0.000081535370.001
0xbaec908c505b098fb8678a0ed71325ba2326f85abd931f56fe57430000618fe8Transfer86312662022-05-19 23:09:0010 hrs 47 mins ago0xa9bf76f9082ea2117c224049cda897536174d85e IN  Dentacoin: DCN Token0 Ether0.0001294057930.001
0x9af3be182753c5a8258d017bcec33ff16929ad534b2903f1b50f3b86dffa7b11Transfer86279602022-05-19 21:35:5212 hrs 20 mins ago0xa9bf76f9082ea2117c224049cda897536174d85e IN  Dentacoin: DCN Token0 Ether0.0001413931410.001
0x7840e1f41ed4dbe067f9297bb1ee0b9e381c6e8dc5ca1a7478cec73a42405bf6Transfer86276712022-05-19 21:25:0012 hrs 31 mins ago0xa9bf76f9082ea2117c224049cda897536174d85e IN  Dentacoin: DCN Token0 Ether0.0000852501430.001
0x478e6419f4bac5476a1262eb71b82ef746227b92210e79d6dcb84b0ed10f5682Transfer86273742022-05-19 21:15:5212 hrs 40 mins ago0xa9bf76f9082ea2117c224049cda897536174d85e IN  Dentacoin: DCN Token0 Ether0.0001075916230.001
0xd149092c76461dc8d2a3c44a50bf90d898eeaf6386df420aa9343b72d401c58cTransfer86233662022-05-19 19:03:0114 hrs 53 mins ago0xa9bf76f9082ea2117c224049cda897536174d85e IN  Dentacoin: DCN Token0 Ether0.0000823135730.001
0x7adee8d2cbe070aedecb96c56906831d8e2cc036b231588ca53dc17e0e81cc55Transfer86162412022-05-19 16:25:0617 hrs 31 mins ago0xfe9eb2868c0c2181784557adc1c2bdd6fb8c17f4 IN  Dentacoin: DCN Token0 Ether0.0001981592540.0011
0xb90e57df48e02253f38f0f4577a6f2767a59c7da20f18d3c66c4027883bc3d7dTransfer86145512022-05-19 15:52:5918 hrs 3 mins ago0xa9bf76f9082ea2117c224049cda897536174d85e IN  Dentacoin: DCN Token0 Ether0.0002143279530.001
0x349bef53cfeb9522b392f8076cf513ef08622b88dddc440a6ea27c59635f1df9Transfer86106252022-05-19 14:52:2119 hrs 3 mins ago0xb9bd7df9acf3685cbd6947bebd5bc1e74a3bb40f IN  Dentacoin: DCN Token0 Ether0.0001085145950.001
0xbdad0b4796457d7edc61c275d31b8357b0935b6f6e27f75c89c2d305e0bee457Transfer86025452022-05-19 12:57:5320 hrs 58 mins ago0xa9bf76f9082ea2117c224049cda897536174d85e IN  Dentacoin: DCN Token0 Ether0.0000936470040.001
0x13d766c843ae60145cffb7dfbe09a7266b18f99652acbd9b886f357ba311d77dTransfer86024362022-05-19 12:56:1221 hrs ago0x4db7e0a6474f39f4fbffd96bd0b39c83a9f291c8 IN  Dentacoin: DCN Token0 Ether0.0000759847520.001
0xdabc942131d92296f4f7d89021f7014c594b7ea4840bfe50d2fced17a865fc6bTransfer86015452022-05-19 12:36:5821 hrs 19 mins ago0xa9bf76f9082ea2117c224049cda897536174d85e IN  Dentacoin: DCN Token0 Ether0.0000727566190.001
0xa79f5c39ea0d99a74887c34d6126b549a27ebc2a46fa064c681bce55bf7144c0Transfer86009322022-05-19 12:27:5121 hrs 28 mins ago0xa9bf76f9082ea2117c224049cda897536174d85e IN  Dentacoin: DCN Token0 Ether0.0000839958690.001
0xb057ee5354b02579e3ec0d85e8d26d25f6e94df4ce174f2cd35a090849acf6aeTransfer85995082022-05-19 12:04:5221 hrs 51 mins ago0xc832cb4d85d9bfec8d866d430225530f926aae1f IN  Dentacoin: DCN Token0 Ether0.0000902070450.001
0x2bf33910bf9c4b76b45d979e65be08fb057f63f7c262d8a8aa74f6cc8b219993Transfer85962252022-05-19 11:18:4322 hrs 37 mins ago0x4db7e0a6474f39f4fbffd96bd0b39c83a9f291c8 IN  Dentacoin: DCN Token0 Ether0.0001065865680.001
0x8cec48d796d97981f97369dc930cbed30e2ce104f1208f8a7d08e2d3ac35c054Transfer85961542022-05-19 11:17:2622 hrs 38 mins ago0x4db7e0a6474f39f4fbffd96bd0b39c83a9f291c8 IN  Dentacoin: DCN Token0 Ether0.0000898125730.001
0x70463b2a8cf84e6fc60b3232c238e5df0e483b93f8488e4490c9faa173be04fcTransfer85959652022-05-19 11:15:3722 hrs 40 mins ago0x4db7e0a6474f39f4fbffd96bd0b39c83a9f291c8 IN  Dentacoin: DCN Token0 Ether0.000075148960.001
0x582b6cd0abc9ad8bc161c80bd7ebd2d430b3ea1dc0d04782c284cc63d7b2d671Transfer85957982022-05-19 11:12:4622 hrs 43 mins ago0x4db7e0a6474f39f4fbffd96bd0b39c83a9f291c8 IN  Dentacoin: DCN Token0 Ether0.0000652958970.001
0xb1dd997c26c0ddcb1e2c4379c8fa0a4409f061756cf92e516d23866804345a00Transfer85957292022-05-19 11:12:0022 hrs 44 mins ago0x4db7e0a6474f39f4fbffd96bd0b39c83a9f291c8 IN  Dentacoin: DCN Token0 Ether0.0000862966060.001
[ Download CSV Export 

OVERVIEW

Dentacoin is the first blockchain solution for the dental industry. It aims to improve oral health globally using a preventive, smart contract-based dental assurance model; a set of dental apps, incentivizing beneficial user behavior and a functioning cryptocurrency, used for rewards and payments.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x166e04708a7fbe25f1d73ba9a8a4c7931570a689c0a604c91415fd53d53f28da86494062022-05-20 7:10:012 hrs 46 mins ago 0x32424581364ed499489d25cb9df17e35b591bc14 Dentacoin: DCN Token0 Ether
0x3d111f9855869ef93971c58001beb8304f54788470fdab041ecae16a7a542fa786462012022-05-20 5:54:554 hrs 1 min ago 0x55d8db13021d3df2d79b767cfb07ba014cf26cf2 Dentacoin: DCN Token0 Ether
0x3c1165eecfbdd9c941ed293dbc046244586d98220e6afd7cbf90ccae890b3c1e86407432022-05-20 3:09:516 hrs 46 mins ago 0x32424581364ed499489d25cb9df17e35b591bc14 Dentacoin: DCN Token0 Ether
0x65df33194ae0065d7b269ccf49d3c2463f4dd3789fcaf85dba8d63eb21ae103c86343432022-05-20 0:24:599 hrs 31 mins ago 0x32424581364ed499489d25cb9df17e35b591bc14 Dentacoin: DCN Token0 Ether
0x5ce572d958dace9343c0e0da8de90998931fcf4085e7ea6718bdd662f683a59786260512022-05-19 20:22:3313 hrs 33 mins ago 0x32424581364ed499489d25cb9df17e35b591bc14 Dentacoin: DCN Token0 Ether
0x336200cebbd0dd79f97223f60758188bb593fdc43ad0c52ca11dc5560b4e94ba86247402022-05-19 19:34:5514 hrs 21 mins ago 0x32424581364ed499489d25cb9df17e35b591bc14 Dentacoin: DCN Token0 Ether
0xaa7c80a83de7de0ee89743ccd133968c187f5fc0ac3c3bb2785e0f65936a090286224252022-05-19 18:39:5315 hrs 16 mins ago 0x32424581364ed499489d25cb9df17e35b591bc14 Dentacoin: DCN Token0 Ether
0x2b23d228bba8c11941fa1ee01bcf77c7b573964e1157a977fc752a36b72b21b086167182022-05-19 16:35:0217 hrs 21 mins ago 0x32424581364ed499489d25cb9df17e35b591bc14 Dentacoin: DCN Token0 Ether
0xb30c1bf6f239bfec3c5e93f2c772dffe89e056289d1479c99b557e2da5eec2d086086102022-05-19 14:19:5519 hrs 36 mins ago 0x32424581364ed499489d25cb9df17e35b591bc14 Dentacoin: DCN Token0 Ether
0x85ea8237a36375369a4d33ae6218191ce73f98c1f83519604ff9110a523af04786016872022-05-19 12:39:5521 hrs 16 mins ago 0x32424581364ed499489d25cb9df17e35b591bc14 Dentacoin: DCN Token0 Ether
0x584dd93cc76d0ca36a1c9f4eb5777ea7038446f2bf3e38a480091e1add3b932485982932022-05-19 11:50:0022 hrs 6 mins ago 0x32424581364ed499489d25cb9df17e35b591bc14 Dentacoin: DCN Token0 Ether
0x3cce6509d87879d95dc817a5e7cd0fd77338c3b89efa9eb4b14d6875cb43710d85981172022-05-19 11:48:2522 hrs 7 mins ago 0x55d8db13021d3df2d79b767cfb07ba014cf26cf2 Dentacoin: DCN Token0 Ether
0x9d9a1db1c05046976ace087e8567abbb62dac623bfd9e9b1e59fb1965c9340a585971322022-05-19 11:32:0922 hrs 24 mins ago 0x55d8db13021d3df2d79b767cfb07ba014cf26cf2 Dentacoin: DCN Token0 Ether
0x6e5e5d65fdf39b8220b5afcb272c25ab1bfebdb845967c3c5d28b3c24b352c8985929322022-05-19 10:39:1723 hrs 16 mins ago 0x55d8db13021d3df2d79b767cfb07ba014cf26cf2 Dentacoin: DCN Token0 Ether
0xea7d2edbe074a27415e0933ed41df1f21d1b85e8c9c280aaddabf6a0f990a5f185923252022-05-19 10:27:1723 hrs 28 mins ago 0x55d8db13021d3df2d79b767cfb07ba014cf26cf2 Dentacoin: DCN Token0 Ether
0x32a32aff05d6a0c2c3676e9e014904c06d5bf7774e17d14b392ad7da4f0356cb85917952022-05-19 10:14:5523 hrs 41 mins ago 0x55d8db13021d3df2d79b767cfb07ba014cf26cf2 Dentacoin: DCN Token0 Ether
0x9136dfd5c9af3484cb8c9754ef5c25b1846f62460785b607791653231677d15b85914152022-05-19 10:05:0423 hrs 51 mins ago 0x32424581364ed499489d25cb9df17e35b591bc14 Dentacoin: DCN Token0 Ether
0x1988eef92e96515b7cdb7ac6b7f512774d49ba5f03da14a5ef7daf0f3a29032185837762022-05-19 7:34:521 day 2 hrs ago 0x32424581364ed499489d25cb9df17e35b591bc14 Dentacoin: DCN Token0 Ether
0xa0882d635991fb59eceeccbecb03756451f3b23b4621727e11b8bee2f30431cd85810672022-05-19 6:42:281 day 3 hrs ago Optimism Bridge Dentacoin: DCN Token0 Ether
0xa0882d635991fb59eceeccbecb03756451f3b23b4621727e11b8bee2f30431cd85810672022-05-19 6:42:281 day 3 hrs ago Optimism Bridge Dentacoin: DCN Token0 Ether
0xa0882d635991fb59eceeccbecb03756451f3b23b4621727e11b8bee2f30431cd85810672022-05-19 6:42:281 day 3 hrs ago Optimism Bridge Dentacoin: DCN Token0 Ether
0xa0882d635991fb59eceeccbecb03756451f3b23b4621727e11b8bee2f30431cd85810672022-05-19 6:42:281 day 3 hrs ago Optimism Bridge Dentacoin: DCN Token0 Ether
0xa0882d635991fb59eceeccbecb03756451f3b23b4621727e11b8bee2f30431cd85810672022-05-19 6:42:281 day 3 hrs ago Optimism Bridge Dentacoin: DCN Token0 Ether
0x5a7a6d59127ed8942897964a920a4df8ad5632dcf1db5d445e9f7ce414077a2185762162022-05-19 4:31:231 day 5 hrs ago 0x55d8db13021d3df2d79b767cfb07ba014cf26cf2 Dentacoin: DCN Token0 Ether
0x5a7a6d59127ed8942897964a920a4df8ad5632dcf1db5d445e9f7ce414077a2185762162022-05-19 4:31:231 day 5 hrs ago Uniswap V3: Router 2 Dentacoin: DCN Token0 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
L2CustomERC20

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 7 of 8: L2CustomERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.5.16 <0.9.0;

import { L2StandardERC20 } from "./L2StandardERC20.sol";

contract L2CustomERC20 is L2StandardERC20 {
    constructor(
      address _l2Bridge,
      address _l1Token
    )
        L2StandardERC20(_l2Bridge, _l1Token, "Dentacoin", "DCN")
        {
        }

        function decimals() public view override returns (uint8) {
            return 0;
        }
}

File 1 of 8: Context.sol
// SPDX-License-Identifier: MIT

pragma solidity ^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 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) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

File 2 of 8: ERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "./IERC20.sol";
import "./IERC20Metadata.sol";
import "./Context.sol";

/**
 * @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 Contracts guidelines: functions revert
 * instead 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, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override 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 this function is
     * overridden;
     *
     * 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 override returns (uint8) {
        return 18;
    }

    /**
     * @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);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        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] + 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) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This 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);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(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:
     *
     * - `account` 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 += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(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);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(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 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 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 {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been 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 _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}

File 3 of 8: IERC165.sol
// SPDX-License-Identifier: MIT

pragma solidity ^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 4 of 8: IERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity ^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 5 of 8: IERC20Metadata.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "./IERC20.sol";

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

File 6 of 8: IL2StandardERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

import { IERC20 } from "./IERC20.sol";
import { IERC165 } from "./IERC165.sol";

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 8 of 8: L2StandardERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

import { ERC20 } from "./ERC20.sol";
import "./IL2StandardERC20.sol";

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

    /**
     * @param _l2Bridge Address of the L2 standard bridge.
     * @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 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 virtual onlyL2Bridge {
        _mint(_to, _amount);

        emit Mint(_to, _amount);
    }

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

        emit Burn(_from, _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"}]

60806040523480156200001157600080fd5b50604051620020f0380380620020f0833981810160405281019062000037919062000283565b81816040518060400160405280600981526020017f44656e7461636f696e00000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f44434e000000000000000000000000000000000000000000000000000000000081525081818160039080519060200190620000bf92919062000169565b508060049080519060200190620000d892919062000169565b50505082600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050506200032f565b8280546200017790620002f9565b90600052602060002090601f0160209004810192826200019b5760008555620001e7565b82601f10620001b657805160ff1916838001178555620001e7565b82800160010185558215620001e7579182015b82811115620001e6578251825591602001919060010190620001c9565b5b509050620001f69190620001fa565b5090565b5b8082111562000215576000816000905550600101620001fb565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200024b826200021e565b9050919050565b6200025d816200023e565b81146200026957600080fd5b50565b6000815190506200027d8162000252565b92915050565b600080604083850312156200029d576200029c62000219565b5b6000620002ad858286016200026c565b9250506020620002c0858286016200026c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200031257607f821691505b60208210811415620003295762000328620002ca565b5b50919050565b611db1806200033f6000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806370a0823111610097578063a9059cbb11610066578063a9059cbb146102d5578063ae1f6aaf14610305578063c01e1bd614610323578063dd62ed3e1461034157610100565b806370a082311461023b57806395d89b411461026b5780639dc29fac14610289578063a457c2d7146102a557610100565b806323b872dd116100d357806323b872dd146101a1578063313ce567146101d157806339509351146101ef57806340c10f191461021f57610100565b806301ffc9a71461010557806306fdde0314610135578063095ea7b31461015357806318160ddd14610183575b600080fd5b61011f600480360381019061011a919061132a565b610371565b60405161012c9190611372565b60405180910390f35b61013d610447565b60405161014a9190611426565b60405180910390f35b61016d600480360381019061016891906114dc565b6104d9565b60405161017a9190611372565b60405180910390f35b61018b6104f7565b604051610198919061152b565b60405180910390f35b6101bb60048036038101906101b69190611546565b610501565b6040516101c89190611372565b60405180910390f35b6101d96105f9565b6040516101e691906115b5565b60405180910390f35b610209600480360381019061020491906114dc565b6105fe565b6040516102169190611372565b60405180910390f35b610239600480360381019061023491906114dc565b6106aa565b005b610255600480360381019061025091906115d0565b610796565b604051610262919061152b565b60405180910390f35b6102736107de565b6040516102809190611426565b60405180910390f35b6102a3600480360381019061029e91906114dc565b610870565b005b6102bf60048036038101906102ba91906114dc565b61095c565b6040516102cc9190611372565b60405180910390f35b6102ef60048036038101906102ea91906114dc565b610a47565b6040516102fc9190611372565b60405180910390f35b61030d610a65565b60405161031a919061160c565b60405180910390f35b61032b610a8b565b604051610338919061160c565b60405180910390f35b61035b60048036038101906103569190611627565b610ab1565b604051610368919061152b565b60405180910390f35b6000807f01ffc9a7a5cef8baa21ed3c5c0d7e23accb804b619e9333b597f47a0d84076e290506000639dc29fac60e01b6340c10f1960e01b63c01e1bd660e01b18189050817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043e5750807bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916847bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b92505050919050565b60606003805461045690611696565b80601f016020809104026020016040519081016040528092919081815260200182805461048290611696565b80156104cf5780601f106104a4576101008083540402835291602001916104cf565b820191906000526020600020905b8154815290600101906020018083116104b257829003601f168201915b5050505050905090565b60006104ed6104e6610b38565b8484610b40565b6001905092915050565b6000600254905090565b600061050e848484610d0b565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610559610b38565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156105d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d09061173a565b60405180910390fd5b6105ed856105e5610b38565b858403610b40565b60019150509392505050565b600090565b60006106a061060b610b38565b848460016000610619610b38565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461069b9190611789565b610b40565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461073a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107319061182b565b60405180910390fd5b6107448282610f8c565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405161078a919061152b565b60405180910390a25050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546107ed90611696565b80601f016020809104026020016040519081016040528092919081815260200182805461081990611696565b80156108665780601f1061083b57610100808354040283529160200191610866565b820191906000526020600020905b81548152906001019060200180831161084957829003601f168201915b5050505050905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610900576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f79061182b565b60405180910390fd5b61090a82826110ec565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca582604051610950919061152b565b60405180910390a25050565b6000806001600061096b610b38565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1f906118bd565b60405180910390fd5b610a3c610a33610b38565b85858403610b40565b600191505092915050565b6000610a5b610a54610b38565b8484610d0b565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610bb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba79061194f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c17906119e1565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610cfe919061152b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7290611a73565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610deb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de290611b05565b60405180910390fd5b610df68383836112c3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7390611b97565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f0f9190611789565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f73919061152b565b60405180910390a3610f868484846112c8565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff390611c03565b60405180910390fd5b611008600083836112c3565b806002600082825461101a9190611789565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461106f9190611789565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516110d4919061152b565b60405180910390a36110e8600083836112c8565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561115c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115390611c95565b60405180910390fd5b611168826000836112c3565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156111ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e590611d27565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546112459190611d47565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112aa919061152b565b60405180910390a36112be836000846112c8565b505050565b505050565b505050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611307816112d2565b811461131257600080fd5b50565b600081359050611324816112fe565b92915050565b6000602082840312156113405761133f6112cd565b5b600061134e84828501611315565b91505092915050565b60008115159050919050565b61136c81611357565b82525050565b60006020820190506113876000830184611363565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156113c75780820151818401526020810190506113ac565b838111156113d6576000848401525b50505050565b6000601f19601f8301169050919050565b60006113f88261138d565b6114028185611398565b93506114128185602086016113a9565b61141b816113dc565b840191505092915050565b6000602082019050818103600083015261144081846113ed565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061147382611448565b9050919050565b61148381611468565b811461148e57600080fd5b50565b6000813590506114a08161147a565b92915050565b6000819050919050565b6114b9816114a6565b81146114c457600080fd5b50565b6000813590506114d6816114b0565b92915050565b600080604083850312156114f3576114f26112cd565b5b600061150185828601611491565b9250506020611512858286016114c7565b9150509250929050565b611525816114a6565b82525050565b6000602082019050611540600083018461151c565b92915050565b60008060006060848603121561155f5761155e6112cd565b5b600061156d86828701611491565b935050602061157e86828701611491565b925050604061158f868287016114c7565b9150509250925092565b600060ff82169050919050565b6115af81611599565b82525050565b60006020820190506115ca60008301846115a6565b92915050565b6000602082840312156115e6576115e56112cd565b5b60006115f484828501611491565b91505092915050565b61160681611468565b82525050565b600060208201905061162160008301846115fd565b92915050565b6000806040838503121561163e5761163d6112cd565b5b600061164c85828601611491565b925050602061165d85828601611491565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806116ae57607f821691505b602082108114156116c2576116c1611667565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611724602883611398565b915061172f826116c8565b604082019050919050565b6000602082019050818103600083015261175381611717565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611794826114a6565b915061179f836114a6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156117d4576117d361175a565b5b828201905092915050565b7f4f6e6c79204c32204272696467652063616e206d696e7420616e64206275726e600082015250565b6000611815602083611398565b9150611820826117df565b602082019050919050565b6000602082019050818103600083015261184481611808565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006118a7602583611398565b91506118b28261184b565b604082019050919050565b600060208201905081810360008301526118d68161189a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611939602483611398565b9150611944826118dd565b604082019050919050565b600060208201905081810360008301526119688161192c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006119cb602283611398565b91506119d68261196f565b604082019050919050565b600060208201905081810360008301526119fa816119be565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611a5d602583611398565b9150611a6882611a01565b604082019050919050565b60006020820190508181036000830152611a8c81611a50565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611aef602383611398565b9150611afa82611a93565b604082019050919050565b60006020820190508181036000830152611b1e81611ae2565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611b81602683611398565b9150611b8c82611b25565b604082019050919050565b60006020820190508181036000830152611bb081611b74565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000611bed601f83611398565b9150611bf882611bb7565b602082019050919050565b60006020820190508181036000830152611c1c81611be0565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611c7f602183611398565b9150611c8a82611c23565b604082019050919050565b60006020820190508181036000830152611cae81611c72565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d11602283611398565b9150611d1c82611cb5565b604082019050919050565b60006020820190508181036000830152611d4081611d04565b9050919050565b6000611d52826114a6565b9150611d5d836114a6565b925082821015611d7057611d6f61175a565b5b82820390509291505056fea2646970667358221220c1a06dddf9cac8eedbe4cc367868c2691e8cf8e16bf43f59ce302bf039670a7d64736f6c63430008090033000000000000000000000000420000000000000000000000000000000000001000000000000000000000000008d32b0da63e2c3bcf8019c9c5d849d7a9d791e6

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

000000000000000000000000420000000000000000000000000000000000001000000000000000000000000008d32b0da63e2c3bcf8019c9c5d849d7a9d791e6

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

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000004200000000000000000000000000000000000010
Arg [1] : 00000000000000000000000008d32b0da63e2c3bcf8019c9c5d849d7a9d791e6


Deployed ByteCode Sourcemap

129:313:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;798:448:7;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2063:98:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4160:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3151:106;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4793:478;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;347:92:6;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5666:212:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1252:142:7;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3315:125:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2274:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1400:148:7;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6365:405:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3643:172;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;214:23:7;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;186:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3873:149:1;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;798:448:7;867:4;883:30;923:38;883:79;;982:31;1109:30;;;1064;;;1016:33;;;:78;:123;982:157;;1172:23;1156:39;;;:12;:39;;;;:83;;;;1215:24;1199:40;;;:12;:40;;;;1156:83;1149:90;;;;798:448;;;:::o;2063:98:1:-;2117:13;2149:5;2142:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2063:98;:::o;4160:166::-;4243:4;4259:39;4268:12;:10;:12::i;:::-;4282:7;4291:6;4259:8;:39::i;:::-;4315:4;4308:11;;4160:166;;;;:::o;3151:106::-;3212:7;3238:12;;3231:19;;3151:106;:::o;4793:478::-;4929:4;4945:36;4955:6;4963:9;4974:6;4945:9;:36::i;:::-;4992:24;5019:11;:19;5031:6;5019:19;;;;;;;;;;;;;;;:33;5039:12;:10;:12::i;:::-;5019:33;;;;;;;;;;;;;;;;4992:60;;5090:6;5070:16;:26;;5062:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5175:57;5184:6;5192:12;:10;:12::i;:::-;5225:6;5206:16;:25;5175:8;:57::i;:::-;5260:4;5253:11;;;4793:478;;;;;:::o;347:92:6:-;397:5;347:92;:::o;5666:212:1:-;5754:4;5770:80;5779:12;:10;:12::i;:::-;5793:7;5839:10;5802:11;:25;5814:12;:10;:12::i;:::-;5802:25;;;;;;;;;;;;;;;:34;5828:7;5802:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;5770:8;:80::i;:::-;5867:4;5860:11;;5666:212;;;;:::o;1252:142:7:-;729:8;;;;;;;;;;;715:22;;:10;:22;;;707:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1334:19:::1;1340:3;1345:7;1334:5;:19::i;:::-;1374:3;1369:18;;;1379:7;1369:18;;;;;;:::i;:::-;;;;;;;;1252:142:::0;;:::o;3315:125:1:-;3389:7;3415:9;:18;3425:7;3415:18;;;;;;;;;;;;;;;;3408:25;;3315:125;;;:::o;2274:102::-;2330:13;2362:7;2355:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2274:102;:::o;1400:148:7:-;729:8;;;;;;;;;;;715:22;;:10;:22;;;707:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1484:21:::1;1490:5;1497:7;1484:5;:21::i;:::-;1526:5;1521:20;;;1533:7;1521:20;;;;;;:::i;:::-;;;;;;;;1400:148:::0;;:::o;6365:405:1:-;6458:4;6474:24;6501:11;:25;6513:12;:10;:12::i;:::-;6501:25;;;;;;;;;;;;;;;:34;6527:7;6501:34;;;;;;;;;;;;;;;;6474:61;;6573:15;6553:16;:35;;6545:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;6664:67;6673:12;:10;:12::i;:::-;6687:7;6715:15;6696:16;:34;6664:8;:67::i;:::-;6759:4;6752:11;;;6365:405;;;;:::o;3643:172::-;3729:4;3745:42;3755:12;:10;:12::i;:::-;3769:9;3780:6;3745:9;:42::i;:::-;3804:4;3797:11;;3643:172;;;;:::o;214:23:7:-;;;;;;;;;;;;;:::o;186:22::-;;;;;;;;;;;;;:::o;3873:149:1:-;3962:7;3988:11;:18;4000:5;3988:18;;;;;;;;;;;;;;;:27;4007:7;3988:27;;;;;;;;;;;;;;;;3981:34;;3873:149;;;;:::o;587:96:0:-;640:7;666:10;659:17;;587:96;:::o;9941:370:1:-;10089:1;10072:19;;:5;:19;;;;10064:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10169:1;10150:21;;:7;:21;;;;10142:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10251:6;10221:11;:18;10233:5;10221:18;;;;;;;;;;;;;;;:27;10240:7;10221:27;;;;;;;;;;;;;;;:36;;;;10288:7;10272:32;;10281:5;10272:32;;;10297:6;10272:32;;;;;;:::i;:::-;;;;;;;;9941:370;;;:::o;7244:713::-;7397:1;7379:20;;:6;:20;;;;7371:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7480:1;7459:23;;:9;:23;;;;7451:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7533:47;7554:6;7562:9;7573:6;7533:20;:47::i;:::-;7591:21;7615:9;:17;7625:6;7615:17;;;;;;;;;;;;;;;;7591:41;;7667:6;7650:13;:23;;7642:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;7786:6;7770:13;:22;7750:9;:17;7760:6;7750:17;;;;;;;;;;;;;;;:42;;;;7836:6;7812:9;:20;7822:9;7812:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;7875:9;7858:35;;7867:6;7858:35;;;7886:6;7858:35;;;;;;:::i;:::-;;;;;;;;7904:46;7924:6;7932:9;7943:6;7904:19;:46::i;:::-;7361:596;7244:713;;;:::o;8233:389::-;8335:1;8316:21;;:7;:21;;;;8308:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8384:49;8413:1;8417:7;8426:6;8384:20;:49::i;:::-;8460:6;8444:12;;:22;;;;;;;:::i;:::-;;;;;;;;8498:6;8476:9;:18;8486:7;8476:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;8540:7;8519:37;;8536:1;8519:37;;;8549:6;8519:37;;;;;;:::i;:::-;;;;;;;;8567:48;8595:1;8599:7;8608:6;8567:19;:48::i;:::-;8233:389;;:::o;8942:576::-;9044:1;9025:21;;:7;:21;;;;9017:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9095:49;9116:7;9133:1;9137:6;9095:20;:49::i;:::-;9155:22;9180:9;:18;9190:7;9180:18;;;;;;;;;;;;;;;;9155:43;;9234:6;9216:14;:24;;9208:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9351:6;9334:14;:23;9313:9;:18;9323:7;9313:18;;;;;;;;;;;;;;;:44;;;;9393:6;9377:12;;:22;;;;;;;:::i;:::-;;;;;;;;9441:1;9415:37;;9424:7;9415:37;;;9445:6;9415:37;;;;;;:::i;:::-;;;;;;;;9463:48;9483:7;9500:1;9504:6;9463:19;:48::i;:::-;9007:511;8942:576;;:::o;10895:121::-;;;;:::o;11604:120::-;;;;:::o;88:117:8:-;197:1;194;187:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:99::-;1570:6;1604:5;1598:12;1588:22;;1518:99;;;:::o;1623:169::-;1707:11;1741:6;1736:3;1729:19;1781:4;1776:3;1772:14;1757:29;;1623:169;;;;:::o;1798:307::-;1866:1;1876:113;1890:6;1887:1;1884:13;1876:113;;;1975:1;1970:3;1966:11;1960:18;1956:1;1951:3;1947:11;1940:39;1912:2;1909:1;1905:10;1900:15;;1876:113;;;2007:6;2004:1;2001:13;1998:101;;;2087:1;2078:6;2073:3;2069:16;2062:27;1998:101;1847:258;1798:307;;;:::o;2111:102::-;2152:6;2203:2;2199:7;2194:2;2187:5;2183:14;2179:28;2169:38;;2111:102;;;:::o;2219:364::-;2307:3;2335:39;2368:5;2335:39;:::i;:::-;2390:71;2454:6;2449:3;2390:71;:::i;:::-;2383:78;;2470:52;2515:6;2510:3;2503:4;2496:5;2492:16;2470:52;:::i;:::-;2547:29;2569:6;2547:29;:::i;:::-;2542:3;2538:39;2531:46;;2311:272;2219:364;;;;:::o;2589:313::-;2702:4;2740:2;2729:9;2725:18;2717:26;;2789:9;2783:4;2779:20;2775:1;2764:9;2760:17;2753:47;2817:78;2890:4;2881:6;2817:78;:::i;:::-;2809:86;;2589:313;;;;:::o;2908:126::-;2945:7;2985:42;2978:5;2974:54;2963:65;;2908:126;;;:::o;3040:96::-;3077:7;3106:24;3124:5;3106:24;:::i;:::-;3095:35;;3040:96;;;:::o;3142:122::-;3215:24;3233:5;3215:24;:::i;:::-;3208:5;3205:35;3195:63;;3254:1;3251;3244:12;3195:63;3142:122;:::o;3270:139::-;3316:5;3354:6;3341:20;3332:29;;3370:33;3397:5;3370:33;:::i;:::-;3270:139;;;;:::o;3415:77::-;3452:7;3481:5;3470:16;;3415:77;;;:::o;3498:122::-;3571:24;3589:5;3571:24;:::i;:::-;3564:5;3561:35;3551:63;;3610:1;3607;3600:12;3551:63;3498:122;:::o;3626:139::-;3672:5;3710:6;3697:20;3688:29;;3726:33;3753:5;3726:33;:::i;:::-;3626:139;;;;:::o;3771:474::-;3839:6;3847;3896:2;3884:9;3875:7;3871:23;3867:32;3864:119;;;3902:79;;:::i;:::-;3864:119;4022:1;4047:53;4092:7;4083:6;4072:9;4068:22;4047:53;:::i;:::-;4037:63;;3993:117;4149:2;4175:53;4220:7;4211:6;4200:9;4196:22;4175:53;:::i;:::-;4165:63;;4120:118;3771:474;;;;;:::o;4251:118::-;4338:24;4356:5;4338:24;:::i;:::-;4333:3;4326:37;4251:118;;:::o;4375:222::-;4468:4;4506:2;4495:9;4491:18;4483:26;;4519:71;4587:1;4576:9;4572:17;4563:6;4519:71;:::i;:::-;4375:222;;;;:::o;4603:619::-;4680:6;4688;4696;4745:2;4733:9;4724:7;4720:23;4716:32;4713:119;;;4751:79;;:::i;:::-;4713:119;4871:1;4896:53;4941:7;4932:6;4921:9;4917:22;4896:53;:::i;:::-;4886:63;;4842:117;4998:2;5024:53;5069:7;5060:6;5049:9;5045:22;5024:53;:::i;:::-;5014:63;;4969:118;5126:2;5152:53;5197:7;5188:6;5177:9;5173:22;5152:53;:::i;:::-;5142:63;;5097:118;4603:619;;;;;:::o;5228:86::-;5263:7;5303:4;5296:5;5292:16;5281:27;;5228:86;;;:::o;5320:112::-;5403:22;5419:5;5403:22;:::i;:::-;5398:3;5391:35;5320:112;;:::o;5438:214::-;5527:4;5565:2;5554:9;5550:18;5542:26;;5578:67;5642:1;5631:9;5627:17;5618:6;5578:67;:::i;:::-;5438:214;;;;:::o;5658:329::-;5717:6;5766:2;5754:9;5745:7;5741:23;5737:32;5734:119;;;5772:79;;:::i;:::-;5734:119;5892:1;5917:53;5962:7;5953:6;5942:9;5938:22;5917:53;:::i;:::-;5907:63;;5863:117;5658:329;;;;:::o;5993:118::-;6080:24;6098:5;6080:24;:::i;:::-;6075:3;6068:37;5993:118;;:::o;6117:222::-;6210:4;6248:2;6237:9;6233:18;6225:26;;6261:71;6329:1;6318:9;6314:17;6305:6;6261:71;:::i;:::-;6117:222;;;;:::o;6345:474::-;6413:6;6421;6470:2;6458:9;6449:7;6445:23;6441:32;6438:119;;;6476:79;;:::i;:::-;6438:119;6596:1;6621:53;6666:7;6657:6;6646:9;6642:22;6621:53;:::i;:::-;6611:63;;6567:117;6723:2;6749:53;6794:7;6785:6;6774:9;6770:22;6749:53;:::i;:::-;6739:63;;6694:118;6345:474;;;;;:::o;6825:180::-;6873:77;6870:1;6863:88;6970:4;6967:1;6960:15;6994:4;6991:1;6984:15;7011:320;7055:6;7092:1;7086:4;7082:12;7072:22;;7139:1;7133:4;7129:12;7160:18;7150:81;;7216:4;7208:6;7204:17;7194:27;;7150:81;7278:2;7270:6;7267:14;7247:18;7244:38;7241:84;;;7297:18;;:::i;:::-;7241:84;7062:269;7011:320;;;:::o;7337:227::-;7477:34;7473:1;7465:6;7461:14;7454:58;7546:10;7541:2;7533:6;7529:15;7522:35;7337:227;:::o;7570:366::-;7712:3;7733:67;7797:2;7792:3;7733:67;:::i;:::-;7726:74;;7809:93;7898:3;7809:93;:::i;:::-;7927:2;7922:3;7918:12;7911:19;;7570:366;;;:::o;7942:419::-;8108:4;8146:2;8135:9;8131:18;8123:26;;8195:9;8189:4;8185:20;8181:1;8170:9;8166:17;8159:47;8223:131;8349:4;8223:131;:::i;:::-;8215:139;;7942:419;;;:::o;8367:180::-;8415:77;8412:1;8405:88;8512:4;8509:1;8502:15;8536:4;8533:1;8526:15;8553:305;8593:3;8612:20;8630:1;8612:20;:::i;:::-;8607:25;;8646:20;8664:1;8646:20;:::i;:::-;8641:25;;8800:1;8732:66;8728:74;8725:1;8722:81;8719:107;;;8806:18;;:::i;:::-;8719:107;8850:1;8847;8843:9;8836:16;;8553:305;;;;:::o;8864:182::-;9004:34;9000:1;8992:6;8988:14;8981:58;8864:182;:::o;9052:366::-;9194:3;9215:67;9279:2;9274:3;9215:67;:::i;:::-;9208:74;;9291:93;9380:3;9291:93;:::i;:::-;9409:2;9404:3;9400:12;9393:19;;9052:366;;;:::o;9424:419::-;9590:4;9628:2;9617:9;9613:18;9605:26;;9677:9;9671:4;9667:20;9663:1;9652:9;9648:17;9641:47;9705:131;9831:4;9705:131;:::i;:::-;9697:139;;9424:419;;;:::o;9849:224::-;9989:34;9985:1;9977:6;9973:14;9966:58;10058:7;10053:2;10045:6;10041:15;10034:32;9849:224;:::o;10079:366::-;10221:3;10242:67;10306:2;10301:3;10242:67;:::i;:::-;10235:74;;10318:93;10407:3;10318:93;:::i;:::-;10436:2;10431:3;10427:12;10420:19;;10079:366;;;:::o;10451:419::-;10617:4;10655:2;10644:9;10640:18;10632:26;;10704:9;10698:4;10694:20;10690:1;10679:9;10675:17;10668:47;10732:131;10858:4;10732:131;:::i;:::-;10724:139;;10451:419;;;:::o;10876:223::-;11016:34;11012:1;11004:6;11000:14;10993:58;11085:6;11080:2;11072:6;11068:15;11061:31;10876:223;:::o;11105:366::-;11247:3;11268:67;11332:2;11327:3;11268:67;:::i;:::-;11261:74;;11344:93;11433:3;11344:93;:::i;:::-;11462:2;11457:3;11453:12;11446:19;;11105:366;;;:::o;11477:419::-;11643:4;11681:2;11670:9;11666:18;11658:26;;11730:9;11724:4;11720:20;11716:1;11705:9;11701:17;11694:47;11758:131;11884:4;11758:131;:::i;:::-;11750:139;;11477:419;;;:::o;11902:221::-;12042:34;12038:1;12030:6;12026:14;12019:58;12111:4;12106:2;12098:6;12094:15;12087:29;11902:221;:::o;12129:366::-;12271:3;12292:67;12356:2;12351:3;12292:67;:::i;:::-;12285:74;;12368:93;12457:3;12368:93;:::i;:::-;12486:2;12481:3;12477:12;12470:19;;12129:366;;;:::o;12501:419::-;12667:4;12705:2;12694:9;12690:18;12682:26;;12754:9;12748:4;12744:20;12740:1;12729:9;12725:17;12718:47;12782:131;12908:4;12782:131;:::i;:::-;12774:139;;12501:419;;;:::o;12926:224::-;13066:34;13062:1;13054:6;13050:14;13043:58;13135:7;13130:2;13122:6;13118:15;13111:32;12926:224;:::o;13156:366::-;13298:3;13319:67;13383:2;13378:3;13319:67;:::i;:::-;13312:74;;13395:93;13484:3;13395:93;:::i;:::-;13513:2;13508:3;13504:12;13497:19;;13156:366;;;:::o;13528:419::-;13694:4;13732:2;13721:9;13717:18;13709:26;;13781:9;13775:4;13771:20;13767:1;13756:9;13752:17;13745:47;13809:131;13935:4;13809:131;:::i;:::-;13801:139;;13528:419;;;:::o;13953:222::-;14093:34;14089:1;14081:6;14077:14;14070:58;14162:5;14157:2;14149:6;14145:15;14138:30;13953:222;:::o;14181:366::-;14323:3;14344:67;14408:2;14403:3;14344:67;:::i;:::-;14337:74;;14420:93;14509:3;14420:93;:::i;:::-;14538:2;14533:3;14529:12;14522:19;;14181:366;;;:::o;14553:419::-;14719:4;14757:2;14746:9;14742:18;14734:26;;14806:9;14800:4;14796:20;14792:1;14781:9;14777:17;14770:47;14834:131;14960:4;14834:131;:::i;:::-;14826:139;;14553:419;;;:::o;14978:225::-;15118:34;15114:1;15106:6;15102:14;15095:58;15187:8;15182:2;15174:6;15170:15;15163:33;14978:225;:::o;15209:366::-;15351:3;15372:67;15436:2;15431:3;15372:67;:::i;:::-;15365:74;;15448:93;15537:3;15448:93;:::i;:::-;15566:2;15561:3;15557:12;15550:19;;15209:366;;;:::o;15581:419::-;15747:4;15785:2;15774:9;15770:18;15762:26;;15834:9;15828:4;15824:20;15820:1;15809:9;15805:17;15798:47;15862:131;15988:4;15862:131;:::i;:::-;15854:139;;15581:419;;;:::o;16006:181::-;16146:33;16142:1;16134:6;16130:14;16123:57;16006:181;:::o;16193:366::-;16335:3;16356:67;16420:2;16415:3;16356:67;:::i;:::-;16349:74;;16432:93;16521:3;16432:93;:::i;:::-;16550:2;16545:3;16541:12;16534:19;;16193:366;;;:::o;16565:419::-;16731:4;16769:2;16758:9;16754:18;16746:26;;16818:9;16812:4;16808:20;16804:1;16793:9;16789:17;16782:47;16846:131;16972:4;16846:131;:::i;:::-;16838:139;;16565:419;;;:::o;16990:220::-;17130:34;17126:1;17118:6;17114:14;17107:58;17199:3;17194:2;17186:6;17182:15;17175:28;16990:220;:::o;17216:366::-;17358:3;17379:67;17443:2;17438:3;17379:67;:::i;:::-;17372:74;;17455:93;17544:3;17455:93;:::i;:::-;17573:2;17568:3;17564:12;17557:19;;17216:366;;;:::o;17588:419::-;17754:4;17792:2;17781:9;17777:18;17769:26;;17841:9;17835:4;17831:20;17827:1;17816:9;17812:17;17805:47;17869:131;17995:4;17869:131;:::i;:::-;17861:139;;17588:419;;;:::o;18013:221::-;18153:34;18149:1;18141:6;18137:14;18130:58;18222:4;18217:2;18209:6;18205:15;18198:29;18013:221;:::o;18240:366::-;18382:3;18403:67;18467:2;18462:3;18403:67;:::i;:::-;18396:74;;18479:93;18568:3;18479:93;:::i;:::-;18597:2;18592:3;18588:12;18581:19;;18240:366;;;:::o;18612:419::-;18778:4;18816:2;18805:9;18801:18;18793:26;;18865:9;18859:4;18855:20;18851:1;18840:9;18836:17;18829:47;18893:131;19019:4;18893:131;:::i;:::-;18885:139;;18612:419;;;:::o;19037:191::-;19077:4;19097:20;19115:1;19097:20;:::i;:::-;19092:25;;19131:20;19149:1;19131:20;:::i;:::-;19126:25;;19170:1;19167;19164:8;19161:34;;;19175:18;;:::i;:::-;19161:34;19220:1;19217;19213:9;19205:17;;19037:191;;;;:::o

Swarm Source

ipfs://c1a06dddf9cac8eedbe4cc367868c2691e8cf8e16bf43f59ce302bf039670a7d
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.