Contract 0x1eba7a6a72c894026cd654ac5cdcf83a46445b08 12

 
Txn Hash Method
Block
From
To
Value
0x7a1b4d5fe957892eee920251cc57f0b0c46705f24e04141678638ecea132c7a3Approve1180370572024-03-29 0:41:3110 hrs 3 mins ago0xac18c73423d43ad14630c32491ec0db14e2e6148 IN  0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH0.0000035640740.030419148
0x7eb0d35133f8d3ccc7a1d0af718b3d9324feb747d9a60d8ff820c49c0f85528cApprove1180368572024-03-29 0:34:5110 hrs 10 mins ago0x50c516ad3b9720d2fcbda68037050d6ac55eac40 IN  0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH0.0000028775670.030497908
0x8a4e776604b0401a66fbdef521bb3b6483beba35f4716375934ce1910882d7afApprove1180280852024-03-28 19:42:2715 hrs 2 mins ago0xb2a589af684e56c61cd36a44d52484e4d51b7266 IN  0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH0.0000027579080.025249084
0x683353bfb91a42cef7fe13fc2f9ef81d744cf7a6c981c56aba5e6ee9a1abfa8fApprove1180112812024-03-28 10:22:191 day 22 mins ago0xa39480e0c586a664b0900de2c9e248274bd5585e IN  0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH0.0000032973150.02941254
0xc0dff83776fe944d7622b763349dac3c0b8163b7de546b5ee025f6f56da88ac5Approve1180088302024-03-28 9:00:371 day 1 hr ago0x40b8cef0fa62aef0050bf7d8bb62cf065583b648 IN  0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH0.0000044271650.029059472
0x29a16592bf1a0000f9a51ea84d0a8ceb0114ab945bca58c5d51ab3751beb4ba1Approve1179973812024-03-28 2:38:591 day 8 hrs ago0xbfee99da66025065ba1d2237900fcc9997c7131f IN  0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH0.0000063583880.044981634
0x265bdecc180ac61fdf13379a5d3378913cdcc8d76fb968db49deaffde9584afdApprove1179970602024-03-28 2:28:171 day 8 hrs ago0xcef6f0c8f927814dd7157a562c2b0f2739f08b01 IN  0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH0.0000099172080.043314795
0x69eacaffd627797d39b142a885f3f345416c4bdea66d6acdc08f724060cdc360Approve1179943782024-03-28 0:58:531 day 9 hrs ago0x40b8cef0fa62aef0050bf7d8bb62cf065583b648 IN  0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH0.0000035564140.02956266
0x192495f02ddfcdc827ddf80be16038d2a60e6a9eab1a5d2e1b0504c483dcee5bApprove1179784062024-03-27 16:06:291 day 18 hrs ago0x3ad2c0dd5c62cd9d584fb3017ae9039969fede70 IN  0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH0.0000020290910.036119071
0x3f6d4a675dd706edf16d7142af9fce8bf3b41286ffc1e735be76939b29dd29e9Approve1179654102024-03-27 8:53:172 days 1 hr ago0x0ddd63badf84e4880ca83334ebcb7eb949bc0f4f IN  0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH0.0000007980430.0154437
0xa9f8916013e7a9d08833d2252ed0b3a35633ed3c8c34900c1f95db4e15e14467Approve1179564242024-03-27 3:53:452 days 6 hrs ago0xfed06fc7eae07f660dd4cf44b98c95ac0ce9e680 IN  0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH0.0000007513920.014484403
0x5e839ed9674a39b2017177e2794841e32267189836552b9d2fa19f180f65f16bApprove1179469952024-03-26 22:39:272 days 12 hrs ago0x62bc58d12f6d255ac59d6c209ae12229db9df284 IN  0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH0.0000004641130.014500707
0x2f9ed6b19db957f805eba11305a0263988d0b31b2dfacabc735eaead47c42625Approve1179339602024-03-26 15:24:572 days 19 hrs ago0x7b8f0b8e09ca522ad3418fb89b9176f1bc74644c IN  0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH0.0000018933620.0372503
0x3a0f6c51708589c272d9b62d855244a1744ec4bf23b9a30d8bea33f020d9638fApprove1179241932024-03-26 9:59:233 days 45 mins ago0xf7fb463c7c37ef001049713cd166a4f5be368dd8 IN  0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH0.0000014316180.029430348
0x83ba130f4bff2dd8d1b61fe870a21f9f44eaa5208fd9f406306f16c3dbbd4bdaApprove1179160072024-03-26 5:26:313 days 5 hrs ago0x536299004d15c40458702cda4a99a1f1eec01505 IN  0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH0.0000014375710.029526112
0x9ab5172608cb9a8ff6b6c50f407dd1fa43fa67640963682602b70fdee299467dTransfer1179080302024-03-26 1:00:373 days 9 hrs ago0x4f84b3650dbf651732a41647618e7ff94a633f09 IN  0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH0.0000014311210.029343344
0x49f5f4913e4b49baafdfb622e9b92d05532930dc494e1fe006562b1233300e1aApprove1178516652024-03-24 17:41:474 days 17 hrs ago0x565b70fa0d965eb7953adb6aa32566638e21bf0d IN  0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH0.0000004180640.007760684
0x75c9999509e15168c9d95ef8b87fc8b8bb4bdd78be1f5e484095bcbbed5fc0daApprove1178474402024-03-24 15:20:574 days 19 hrs ago0xf6e361a7cbe885c9087dbdf06262a55b0c089255 IN  0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH0.0000003672870.006621756
0xacd2f3178d726ae669c7b6030e340ad6e3a7872a032d856121dcf1520cbcec39Approve1178365472024-03-24 9:17:515 days 1 hr ago0x27e8062fe77ea70ed637f1a2886aa7e062080cb0 IN  0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH0.0000003548440.0066082
0x664ab7fe5c30351f6a01492e225be228612e40dfaa22e6cf624b5b21d04a1abaApprove1178140562024-03-23 20:48:095 days 13 hrs ago0x2c93170de4e509716d10f791b7ced23fea27e407 IN  0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH0.0000003430870.005915747
0x218b6bcfaed4ba8a7be01089ae3132d05f2b97ebce83d130af2c3abb410f2ae0Approve1178139312024-03-23 20:43:595 days 14 hrs ago0x2c93170de4e509716d10f791b7ced23fea27e407 IN  0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH0.0000002061380.005761442
0xd27b53a9209fb2b327e061cf3aa76ea1388b2f128e8647e8afe9ce71f2bf398dApprove1178139192024-03-23 20:43:355 days 14 hrs ago0x2c93170de4e509716d10f791b7ced23fea27e407 IN  0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH0.0000003287580.005979709
0x8a4248045458f7cdd520dbb17ce634fe9e092d0b600a554f9f977ab6eba93e99Approve1177838712024-03-23 4:01:596 days 6 hrs ago0xa481cc6f785841bddeed7dcfbe92d4a5f4f4612c IN  0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH0.000000206640.006039236
0x5df5b0ff48b7bf373a5d7e6b74819c2aec209b276a34afa69a9089789b906dcfApprove1177838692024-03-23 4:01:556 days 6 hrs ago0xa481cc6f785841bddeed7dcfbe92d4a5f4f4612c IN  0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH0.0000002070850.006057583
0xd74f9d3c211416c5326095160602384d896eb1f4b0bbf957668708aa4264e35cApprove1177635002024-03-22 16:42:576 days 18 hrs ago0x04209541851a74572bb9288376445164cefe94cf IN  0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH0.0000014710140.03
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x428fbe23d18f952676dcc7964645acaee6466aca209ae34c0048d9bd936d222e1075530892023-07-30 8:15:55243 days 2 hrs ago 0xd0fa3b5264ccde31e8b094b86bca4a1e97d3c603 0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH
0x428fbe23d18f952676dcc7964645acaee6466aca209ae34c0048d9bd936d222e1075530892023-07-30 8:15:55243 days 2 hrs ago Uniswap Protocol: Permit2 0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH
0x428fbe23d18f952676dcc7964645acaee6466aca209ae34c0048d9bd936d222e1075530892023-07-30 8:15:55243 days 2 hrs ago 0xd0fa3b5264ccde31e8b094b86bca4a1e97d3c603 0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH
0x8af04bcf9f3096bf080ce219124bbe557ebf7ca7ef06c7233abc172dac5cb1461075529692023-07-30 8:11:55243 days 2 hrs ago 0xd0fa3b5264ccde31e8b094b86bca4a1e97d3c603 0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH
0x2d8571a52caa5f6d9d75900b0616ca18b6916a8d847c2f653c47b7a25d5980871075224382023-07-29 15:14:13243 days 19 hrs ago 0xd0fa3b5264ccde31e8b094b86bca4a1e97d3c603 0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH
0xc11849df7b68e018780e90357ba531ec61f6ab21b37af0ec66e60a500485c1801075223622023-07-29 15:11:41243 days 19 hrs ago 0xd0fa3b5264ccde31e8b094b86bca4a1e97d3c603 0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH
0x9868b5fb15bc841dd34e8add87416b511d1ac4defad156c3afc3aff12f1ae2931075192832023-07-29 13:29:03243 days 21 hrs ago 0xd0fa3b5264ccde31e8b094b86bca4a1e97d3c603 0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH
0x9868b5fb15bc841dd34e8add87416b511d1ac4defad156c3afc3aff12f1ae2931075192832023-07-29 13:29:03243 days 21 hrs ago Uniswap Protocol: Permit2 0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH
0x9868b5fb15bc841dd34e8add87416b511d1ac4defad156c3afc3aff12f1ae2931075192832023-07-29 13:29:03243 days 21 hrs ago 0xd0fa3b5264ccde31e8b094b86bca4a1e97d3c603 0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH
0xaa970a68208972c076627e3f5e5ef080e2f91deb69706c51e7e5c0d5310c222f1075153242023-07-29 11:17:05243 days 23 hrs ago 0xd0fa3b5264ccde31e8b094b86bca4a1e97d3c603 0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH
0x549e8f2fe958a353c176347a1a0a9627765af9fd35208593c1fcc2e6c392919d1075147212023-07-29 10:56:59243 days 23 hrs ago 0xd0fa3b5264ccde31e8b094b86bca4a1e97d3c603 0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH
0x852995badd4418210c1897218ff1b18df7aa9c318941cc9892f0913c7597df351074793102023-07-28 15:16:37244 days 19 hrs ago 0xd0fa3b5264ccde31e8b094b86bca4a1e97d3c603 0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH
0xa73d01cc4b43bae9b73975ec3ffdf7d7a84bb18a689fe6c7eacdab2a92fffcfb1074750262023-07-28 12:53:49244 days 21 hrs ago 0xd0fa3b5264ccde31e8b094b86bca4a1e97d3c603 0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH
0xa73d01cc4b43bae9b73975ec3ffdf7d7a84bb18a689fe6c7eacdab2a92fffcfb1074750262023-07-28 12:53:49244 days 21 hrs ago Uniswap Protocol: Permit2 0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH
0xa73d01cc4b43bae9b73975ec3ffdf7d7a84bb18a689fe6c7eacdab2a92fffcfb1074750262023-07-28 12:53:49244 days 21 hrs ago 0xd0fa3b5264ccde31e8b094b86bca4a1e97d3c603 0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH
0x54984b78f000630b2544d7c12bdb61e8c6423a963f5818ba1962e1bdb6f822651074748552023-07-28 12:48:07244 days 21 hrs ago 0xd0fa3b5264ccde31e8b094b86bca4a1e97d3c603 0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH
0xfbee61cb1c2816263b5a0692fb60703abd225e17fa6fcbcf2c811df428508aec1074721552023-07-28 11:18:07244 days 23 hrs ago 0xd0fa3b5264ccde31e8b094b86bca4a1e97d3c603 0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH
0xfbee61cb1c2816263b5a0692fb60703abd225e17fa6fcbcf2c811df428508aec1074721552023-07-28 11:18:07244 days 23 hrs ago 0xafea5601b0a894451955355e79ad3026515e500d 0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH
0xfbee61cb1c2816263b5a0692fb60703abd225e17fa6fcbcf2c811df428508aec1074721552023-07-28 11:18:07244 days 23 hrs ago 0xd0fa3b5264ccde31e8b094b86bca4a1e97d3c603 0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH
0xfbee61cb1c2816263b5a0692fb60703abd225e17fa6fcbcf2c811df428508aec1074721552023-07-28 11:18:07244 days 23 hrs ago 0xb2bf236fb6e8c7be664a6d7f8cf7c21f5305fcdf 0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH
0xfbee61cb1c2816263b5a0692fb60703abd225e17fa6fcbcf2c811df428508aec1074721552023-07-28 11:18:07244 days 23 hrs ago 0xafea5601b0a894451955355e79ad3026515e500d 0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH
0xfbee61cb1c2816263b5a0692fb60703abd225e17fa6fcbcf2c811df428508aec1074721552023-07-28 11:18:07244 days 23 hrs ago 0xb2bf236fb6e8c7be664a6d7f8cf7c21f5305fcdf 0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH
0xfbee61cb1c2816263b5a0692fb60703abd225e17fa6fcbcf2c811df428508aec1074721552023-07-28 11:18:07244 days 23 hrs ago 1inch: Aggregation Router V5 0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH
0xe57196daf13be78a44f127302b086c859fd4d6d9abbc67dfaa060a5d3912bb481074718632023-07-28 11:08:23244 days 23 hrs ago 0xd0fa3b5264ccde31e8b094b86bca4a1e97d3c603 0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH
0x3773d55865621cdea4288d60761633c51020bb80be6bd0532064e8b66f74e1891074716502023-07-28 11:01:17244 days 23 hrs ago 0xd0fa3b5264ccde31e8b094b86bca4a1e97d3c603 0x1eba7a6a72c894026cd654ac5cdcf83a46445b080 ETH
[ Download CSV Export 
Loading

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

Contract Name:
L2StandardERC20

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 10000 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Optimistic.Etherscan.io on 2021-11-28
*/

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

// 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 @openzeppelin/contracts/token/ERC20/extensions/[email protected]

pragma solidity ^0.8.0;

/**
 * @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 @openzeppelin/contracts/utils/[email protected]

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 @openzeppelin/contracts/token/ERC20/[email protected]

pragma solidity ^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 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 @openzeppelin/contracts/utils/introspection/[email protected]

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 contracts/standards/IL2StandardERC20.sol

pragma solidity ^0.8.9;


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 contracts/standards/L2StandardERC20.sol

pragma solidity ^0.8.9;


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"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"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"}]

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101005760003560e01c806370a0823111610097578063a9059cbb11610066578063a9059cbb14610215578063ae1f6aaf14610228578063c01e1bd61461026d578063dd62ed3e1461028d57600080fd5b806370a08231146101b157806395d89b41146101e75780639dc29fac146101ef578063a457c2d71461020257600080fd5b806323b872dd116100d357806323b872dd14610167578063313ce5671461017a578063395093511461018957806340c10f191461019c57600080fd5b806301ffc9a71461010557806306fdde031461012d578063095ea7b31461014257806318160ddd14610155575b600080fd5b610118610113366004610e4a565b6102d3565b60405190151581526020015b60405180910390f35b610135610393565b6040516101249190610e93565b610118610150366004610f2f565b610425565b6002545b604051908152602001610124565b610118610175366004610f59565b61043b565b60405160128152602001610124565b610118610197366004610f2f565b61050c565b6101af6101aa366004610f2f565b610555565b005b6101596101bf366004610f95565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b61013561061a565b6101af6101fd366004610f2f565b610629565b610118610210366004610f2f565b6106e2565b610118610223366004610f2f565b6107a0565b6006546102489073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610124565b6005546102489073ffffffffffffffffffffffffffffffffffffffff1681565b61015961029b366004610fb0565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60007f01ffc9a7a5cef8baa21ed3c5c0d7e23accb804b619e9333b597f47a0d84076e27f1d1d8b63000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000084167f01ffc9a700000000000000000000000000000000000000000000000000000000148061038b57507fffffffff00000000000000000000000000000000000000000000000000000000848116908216145b949350505050565b6060600380546103a290610fe3565b80601f01602080910402602001604051908101604052809291908181526020018280546103ce90610fe3565b801561041b5780601f106103f05761010080835404028352916020019161041b565b820191906000526020600020905b8154815290600101906020018083116103fe57829003601f168201915b5050505050905090565b60006104323384846107ad565b50600192915050565b600061044884848461092d565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600160209081526040808320338452909152902054828110156104f45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160448201527f6c6c6f77616e636500000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61050185338584036107ad565b506001949350505050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684529091528120549091610432918590610550908690611066565b6107ad565b60065473ffffffffffffffffffffffffffffffffffffffff1633146105bc5760405162461bcd60e51b815260206004820181905260248201527f4f6e6c79204c32204272696467652063616e206d696e7420616e64206275726e60448201526064016104eb565b6105c68282610b93565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968858260405161060e91815260200190565b60405180910390a25050565b6060600480546103a290610fe3565b60065473ffffffffffffffffffffffffffffffffffffffff1633146106905760405162461bcd60e51b815260206004820181905260248201527f4f6e6c79204c32204272696467652063616e206d696e7420616e64206275726e60448201526064016104eb565b61069a8282610c99565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58260405161060e91815260200190565b33600090815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff86168452909152812054828110156107895760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084016104eb565b61079633858584036107ad565b5060019392505050565b600061043233848461092d565b73ffffffffffffffffffffffffffffffffffffffff83166108355760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff82166108be5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166109b65760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff8216610a3f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f657373000000000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015610adb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e6365000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260208190526040808220858503905591851681529081208054849290610b1f908490611066565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b8591815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff8216610bf65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016104eb565b8060026000828254610c089190611066565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604081208054839290610c42908490611066565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff8216610d225760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f730000000000000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205481811015610dbe5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f636500000000000000000000000000000000000000000000000000000000000060648201526084016104eb565b73ffffffffffffffffffffffffffffffffffffffff83166000908152602081905260408120838303905560028054849290610dfa90849061107e565b909155505060405182815260009073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610920565b600060208284031215610e5c57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e8c57600080fd5b9392505050565b600060208083528351808285015260005b81811015610ec057858101830151858201604001528201610ea4565b81811115610ed2576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610f2a57600080fd5b919050565b60008060408385031215610f4257600080fd5b610f4b83610f06565b946020939093013593505050565b600080600060608486031215610f6e57600080fd5b610f7784610f06565b9250610f8560208501610f06565b9150604084013590509250925092565b600060208284031215610fa757600080fd5b610e8c82610f06565b60008060408385031215610fc357600080fd5b610fcc83610f06565b9150610fda60208401610f06565b90509250929050565b600181811c90821680610ff757607f821691505b60208210811415611031577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561107957611079611037565b500190565b60008282101561109057611090611037565b50039056fea2646970667358221220cf6f2a647337a3023928b1f0a8286454f8c5755dd6ed9bb72c21a4693b3d555b64736f6c63430008090033

Deployed ByteCode Sourcemap

17782:1466:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18477:454;;;;;;:::i;:::-;;:::i;:::-;;;516:14:1;;509:22;491:41;;479:2;464:18;18477:454:0;;;;;;;;6451:100;;;:::i;:::-;;;;;;;:::i;8618:169::-;;;;;;:::i;:::-;;:::i;7571:108::-;7659:12;;7571:108;;;1810:25:1;;;1798:2;1783:18;7571:108:0;1664:177:1;9269:492:0;;;;;;:::i;:::-;;:::i;7413:93::-;;;7496:2;2321:36:1;;2309:2;2294:18;7413:93:0;2179:184:1;10170:215:0;;;;;;:::i;:::-;;:::i;18939:146::-;;;;;;:::i;:::-;;:::i;:::-;;7742:127;;;;;;:::i;:::-;7843:18;;7816:7;7843:18;;;;;;;;;;;;7742:127;6670:104;;;:::i;19093:152::-;;;;;;:::i;:::-;;:::i;10888:413::-;;;;;;:::i;:::-;;:::i;8082:175::-;;;;;;:::i;:::-;;:::i;17870:23::-;;;;;;;;;;;;2735:42:1;2723:55;;;2705:74;;2693:2;2678:18;17870:23:0;2559:226:1;17841:22:0;;;;;;;;;8320:151;;;;;;:::i;:::-;8436:18;;;;8409:7;8436:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8320:151;18477:454;18546:4;18603:38;18697:125;18840:39;;;;;;:83;;-1:-1:-1;18883:40:0;;;;;;;;18840:83;18833:90;18477:454;-1:-1:-1;;;;18477:454:0:o;6451:100::-;6505:13;6538:5;6531:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6451:100;:::o;8618:169::-;8701:4;8718:39;4242:10;8741:7;8750:6;8718:8;:39::i;:::-;-1:-1:-1;8775:4:0;8618:169;;;;:::o;9269:492::-;9409:4;9426:36;9436:6;9444:9;9455:6;9426:9;:36::i;:::-;9502:19;;;9475:24;9502:19;;;:11;:19;;;;;;;;4242:10;9502:33;;;;;;;;9554:26;;;;9546:79;;;;-1:-1:-1;;;9546:79:0;;3699:2:1;9546:79:0;;;3681:21:1;3738:2;3718:18;;;3711:30;3777:34;3757:18;;;3750:62;3848:10;3828:18;;;3821:38;3876:19;;9546:79:0;;;;;;;;;9661:57;9670:6;4242:10;9711:6;9692:16;:25;9661:8;:57::i;:::-;-1:-1:-1;9749:4:0;;9269:492;-1:-1:-1;;;;9269:492:0:o;10170:215::-;4242:10;10258:4;10307:25;;;:11;:25;;;;;;;;;:34;;;;;;;;;;10258:4;;10275:80;;10298:7;;10307:47;;10344:10;;10307:47;:::i;:::-;10275:8;:80::i;18939:146::-;18404:8;;;;18390:10;:22;18382:67;;;;-1:-1:-1;;;18382:67:0;;4430:2:1;18382:67:0;;;4412:21:1;;;4449:18;;;4442:30;4508:34;4488:18;;;4481:62;4560:18;;18382:67:0;4228:356:1;18382:67:0;19022:19:::1;19028:3;19033:7;19022:5;:19::i;:::-;19064:3;19059:18;;;19069:7;19059:18;;;;1810:25:1::0;;1798:2;1783:18;;1664:177;19059:18:0::1;;;;;;;;18939:146:::0;;:::o;6670:104::-;6726:13;6759:7;6752:14;;;;;:::i;19093:152::-;18404:8;;;;18390:10;:22;18382:67;;;;-1:-1:-1;;;18382:67:0;;4430:2:1;18382:67:0;;;4412:21:1;;;4449:18;;;4442:30;4508:34;4488:18;;;4481:62;4560:18;;18382:67:0;4228:356:1;18382:67:0;19178:21:::1;19184:5;19191:7;19178:5;:21::i;:::-;19222:5;19217:20;;;19229:7;19217:20;;;;1810:25:1::0;;1798:2;1783:18;;1664:177;10888:413:0;4242:10;10981:4;11025:25;;;:11;:25;;;;;;;;;:34;;;;;;;;;;11078:35;;;;11070:85;;;;-1:-1:-1;;;11070:85:0;;4791:2:1;11070:85:0;;;4773:21:1;4830:2;4810:18;;;4803:30;4869:34;4849:18;;;4842:62;4940:7;4920:18;;;4913:35;4965:19;;11070:85:0;4589:401:1;11070:85:0;11191:67;4242:10;11214:7;11242:15;11223:16;:34;11191:8;:67::i;:::-;-1:-1:-1;11289:4:0;;10888:413;-1:-1:-1;;;10888:413:0:o;8082:175::-;8168:4;8185:42;4242:10;8209:9;8220:6;8185:9;:42::i;14572:380::-;14708:19;;;14700:68;;;;-1:-1:-1;;;14700:68:0;;5197:2:1;14700:68:0;;;5179:21:1;5236:2;5216:18;;;5209:30;5275:34;5255:18;;;5248:62;5346:6;5326:18;;;5319:34;5370:19;;14700:68:0;4995:400:1;14700:68:0;14787:21;;;14779:68;;;;-1:-1:-1;;;14779:68:0;;5602:2:1;14779:68:0;;;5584:21:1;5641:2;5621:18;;;5614:30;5680:34;5660:18;;;5653:62;5751:4;5731:18;;;5724:32;5773:19;;14779:68:0;5400:398:1;14779:68:0;14860:18;;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;14912:32;;1810:25:1;;;14912:32:0;;1783:18:1;14912:32:0;;;;;;;;14572:380;;;:::o;11791:733::-;11931:20;;;11923:70;;;;-1:-1:-1;;;11923:70:0;;6005:2:1;11923:70:0;;;5987:21:1;6044:2;6024:18;;;6017:30;6083:34;6063:18;;;6056:62;6154:7;6134:18;;;6127:35;6179:19;;11923:70:0;5803:401:1;11923:70:0;12012:23;;;12004:71;;;;-1:-1:-1;;;12004:71:0;;6411:2:1;12004:71:0;;;6393:21:1;6450:2;6430:18;;;6423:30;6489:34;6469:18;;;6462:62;6560:5;6540:18;;;6533:33;6583:19;;12004:71:0;6209:399:1;12004:71:0;12172:17;;;12148:21;12172:17;;;;;;;;;;;12208:23;;;;12200:74;;;;-1:-1:-1;;;12200:74:0;;6815:2:1;12200:74:0;;;6797:21:1;6854:2;6834:18;;;6827:30;6893:34;6873:18;;;6866:62;6964:8;6944:18;;;6937:36;6990:19;;12200:74:0;6613:402:1;12200:74:0;12310:17;;;;:9;:17;;;;;;;;;;;12330:22;;;12310:42;;12374:20;;;;;;;;:30;;12346:6;;12310:9;12374:30;;12346:6;;12374:30;:::i;:::-;;;;;;;;12439:9;12422:35;;12431:6;12422:35;;;12450:6;12422:35;;;;1810:25:1;;1798:2;1783:18;;1664:177;12422:35:0;;;;;;;;11912:612;11791:733;;;:::o;12811:399::-;12895:21;;;12887:65;;;;-1:-1:-1;;;12887:65:0;;7222:2:1;12887:65:0;;;7204:21:1;7261:2;7241:18;;;7234:30;7300:33;7280:18;;;7273:61;7351:18;;12887:65:0;7020:355:1;12887:65:0;13043:6;13027:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;13060:18:0;;;:9;:18;;;;;;;;;;:28;;13082:6;;13060:9;:28;;13082:6;;13060:28;:::i;:::-;;;;-1:-1:-1;;13104:37:0;;1810:25:1;;;13104:37:0;;;;13121:1;;13104:37;;1798:2:1;1783:18;13104:37:0;;;;;;;12811:399;;:::o;13543:591::-;13627:21;;;13619:67;;;;-1:-1:-1;;;13619:67:0;;7582:2:1;13619:67:0;;;7564:21:1;7621:2;7601:18;;;7594:30;7660:34;7640:18;;;7633:62;7731:3;7711:18;;;7704:31;7752:19;;13619:67:0;7380:397:1;13619:67:0;13786:18;;;13761:22;13786:18;;;;;;;;;;;13823:24;;;;13815:71;;;;-1:-1:-1;;;13815:71:0;;7984:2:1;13815:71:0;;;7966:21:1;8023:2;8003:18;;;7996:30;8062:34;8042:18;;;8035:62;8133:4;8113:18;;;8106:32;8155:19;;13815:71:0;7782:398:1;13815:71:0;13922:18;;;:9;:18;;;;;;;;;;13943:23;;;13922:44;;13988:12;:22;;13960:6;;13922:9;13988:22;;13960:6;;13988:22;:::i;:::-;;;;-1:-1:-1;;14028:37:0;;1810:25:1;;;14054:1:0;;14028:37;;;;;;1798:2:1;1783:18;14028:37:0;1664:177:1;14:332;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;199:117;335:5;14:332;-1:-1:-1;;;14:332:1:o;543:656::-;655:4;684:2;713;702:9;695:21;745:6;739:13;788:6;783:2;772:9;768:18;761:34;813:1;823:140;837:6;834:1;831:13;823:140;;;932:14;;;928:23;;922:30;898:17;;;917:2;894:26;887:66;852:10;;823:140;;;981:6;978:1;975:13;972:91;;;1051:1;1046:2;1037:6;1026:9;1022:22;1018:31;1011:42;972:91;-1:-1:-1;1115:2:1;1103:15;1120:66;1099:88;1084:104;;;;1190:2;1080:113;;543:656;-1:-1:-1;;;543:656:1:o;1204:196::-;1272:20;;1332:42;1321:54;;1311:65;;1301:93;;1390:1;1387;1380:12;1301:93;1204:196;;;:::o;1405:254::-;1473:6;1481;1534:2;1522:9;1513:7;1509:23;1505:32;1502:52;;;1550:1;1547;1540:12;1502:52;1573:29;1592:9;1573:29;:::i;:::-;1563:39;1649:2;1634:18;;;;1621:32;;-1:-1:-1;;;1405:254:1:o;1846:328::-;1923:6;1931;1939;1992:2;1980:9;1971:7;1967:23;1963:32;1960:52;;;2008:1;2005;1998:12;1960:52;2031:29;2050:9;2031:29;:::i;:::-;2021:39;;2079:38;2113:2;2102:9;2098:18;2079:38;:::i;:::-;2069:48;;2164:2;2153:9;2149:18;2136:32;2126:42;;1846:328;;;;;:::o;2368:186::-;2427:6;2480:2;2468:9;2459:7;2455:23;2451:32;2448:52;;;2496:1;2493;2486:12;2448:52;2519:29;2538:9;2519:29;:::i;2790:260::-;2858:6;2866;2919:2;2907:9;2898:7;2894:23;2890:32;2887:52;;;2935:1;2932;2925:12;2887:52;2958:29;2977:9;2958:29;:::i;:::-;2948:39;;3006:38;3040:2;3029:9;3025:18;3006:38;:::i;:::-;2996:48;;2790:260;;;;;:::o;3055:437::-;3134:1;3130:12;;;;3177;;;3198:61;;3252:4;3244:6;3240:17;3230:27;;3198:61;3305:2;3297:6;3294:14;3274:18;3271:38;3268:218;;;3342:77;3339:1;3332:88;3443:4;3440:1;3433:15;3471:4;3468:1;3461:15;3268:218;;3055:437;;;:::o;3906:184::-;3958:77;3955:1;3948:88;4055:4;4052:1;4045:15;4079:4;4076:1;4069:15;4095:128;4135:3;4166:1;4162:6;4159:1;4156:13;4153:39;;;4172:18;;:::i;:::-;-1:-1:-1;4208:9:1;;4095:128::o;8185:125::-;8225:4;8253:1;8250;8247:8;8244:34;;;8258:18;;:::i;:::-;-1:-1:-1;8295:9:1;;8185:125::o

Swarm Source

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