Contract 0x1fc3607fa67b58deddb0faf7a116f417a20c551c 6

 
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x2cc576b8a220bc1618e17bb73cadd40f7a784abbe4db0b8248559f7d3462f1600x7c025200242976622022-01-29 8:48:161 hr 11 mins ago0xedf29347a11ea9a5f313f1718bd266cb4d457e8c IN  0x1fc3607fa67b58deddb0faf7a116f417a20c551c0 MATIC0.0003675362771.500001132
0xae68f433f273f5da2680c65e3877418f1e37f9cfe6407fcf1703aadbc7b297160x7c025200242834312022-01-29 0:00:459 hrs 59 mins ago0x9b3e837b6b26d150fa29e00cb7a4a7a8a16078ee IN  0x1fc3607fa67b58deddb0faf7a116f417a20c551c0 MATIC0.013170578014 32.520026012
0x57971de1c7779a329197c82500a8fa8ec8309c621fe07e1ba6e49385100c9ea60x7c025200242816672022-01-28 22:55:5311 hrs 3 mins ago0x6f87dd57228a85ae6a8ad2e381fe5eac79b807d6 IN  0x1fc3607fa67b58deddb0faf7a116f417a20c551c0 MATIC0.010477806648 29.638344003
0xffc74b667edef60d6890b3499fcfa8a097bc91564416501c425328112bb984cd0x7c025200242770232022-01-28 19:54:5314 hrs 4 mins ago0x6198a9195da139a4d8a937a56711d38c50a0d33b IN  0x1fc3607fa67b58deddb0faf7a116f417a20c551c0 MATIC0.005057800381 30.419199987
0x5d47dd82d224a2296feebb579d563831760abe647f8f5ea1c5fe185d96eaf01d0x7c025200242754962022-01-28 18:51:4315 hrs 8 mins ago0xc25fac07520dc6cc9a5214098f7649f9d2b460e2 IN  0x1fc3607fa67b58deddb0faf7a116f417a20c551c0 MATIC0.0105635240
0x8e38ba12333d256f9c497466f0147e7cfa8798aff60bc7835a9c517909d5213b0x7c025200242732352022-01-28 17:29:4116 hrs 30 mins ago0x1cb2ca1319a88bade81c77932ea257fac7cf0dc4 IN  0x1fc3607fa67b58deddb0faf7a116f417a20c551c0 MATIC0.004999116776 28.651189102
0x4af70c69491dadb39fffa08e9857aaaeea48804bb2a5afc87ca5961cec8389e30x7c025200242731982022-01-28 17:28:2316 hrs 31 mins ago0x1cb2ca1319a88bade81c77932ea257fac7cf0dc4 IN  0x1fc3607fa67b58deddb0faf7a116f417a20c551c0 MATIC0.006935846901 32.554866682
0x1a6253d9b2a006f3e143788853bc08b497de438fd78e950c5a77ee8985227b850x7c025200242675572022-01-28 14:00:3919 hrs 59 mins ago0x5ca85f36e7a865e2a6d0349acc1523eafbeb3e72 IN  0x1fc3607fa67b58deddb0faf7a116f417a20c551c0 MATIC0.005510092701 31.302364971
0x55244e5c26330968f1f5aa006f8fb5b75387857ad4df417e5aa002c7c3742fa20x7c025200242674212022-01-28 13:54:4320 hrs 5 mins ago0x5ca85f36e7a865e2a6d0349acc1523eafbeb3e72 IN  0x1fc3607fa67b58deddb0faf7a116f417a20c551c0 MATIC0.004865885847 27.443435913
0xa296f0421fa8b911fb5107c660c3b2247b68fb12f6885ad3b22c51f649cb02ef0x7c025200242668512022-01-28 13:35:0720 hrs 24 mins ago0x764bea59caf8c9bcd49473bf2ecf8d5fca17cc48 IN  0x1fc3607fa67b58deddb0faf7a116f417a20c551c0 MATIC0.005935078044 34.033557418
0xcff16e9e32254e237099b616b94f3dcb9e506317404482411938134a8fb4cc4b0x7c025200242668332022-01-28 13:34:3120 hrs 25 mins ago0x764bea59caf8c9bcd49473bf2ecf8d5fca17cc48 IN  0x1fc3607fa67b58deddb0faf7a116f417a20c551c0 MATIC0.007111643817 40.347920763
0x61757d763d792779d84365b221574e454883d3b72234a703148d50a1d628225e0x7c025200242666612022-01-28 13:28:3520 hrs 31 mins ago0x764bea59caf8c9bcd49473bf2ecf8d5fca17cc48 IN  0x1fc3607fa67b58deddb0faf7a116f417a20c551c0 MATIC0.005334054767 30.415484527
0x2d9dde5120ad35c5b7e6dcba707c6c5730e870d8b94849be38e6462470ae51850x7c025200242666442022-01-28 13:28:0120 hrs 31 mins ago0x764bea59caf8c9bcd49473bf2ecf8d5fca17cc48 IN  0x1fc3607fa67b58deddb0faf7a116f417a20c551c0 MATIC0.005456539797 31.038690984
0x992b10f9338b07e9a33a574e6f8eb518f73b68669ea6f2a549fc68df723927de0x7c025200242663432022-01-28 13:14:4320 hrs 45 mins ago0x764bea59caf8c9bcd49473bf2ecf8d5fca17cc48 IN  0x1fc3607fa67b58deddb0faf7a116f417a20c551c0 MATIC0.006412058632 36.860020765
0xd23b3ba6cceac8abd5486790956438869cc4aeafb2c3bc800121b59e8383f8520x7c025200242663212022-01-28 13:13:1520 hrs 46 mins ago0x764bea59caf8c9bcd49473bf2ecf8d5fca17cc48 IN  0x1fc3607fa67b58deddb0faf7a116f417a20c551c0 MATIC0.00643458394 36.88328389
0xb5c7d9a8568dc599c57e6bfbf5366c891f7fbf680c3c9e18094789d0ed4d89d50x7c025200242660132022-01-28 13:02:0320 hrs 57 mins ago0x764bea59caf8c9bcd49473bf2ecf8d5fca17cc48 IN  0x1fc3607fa67b58deddb0faf7a116f417a20c551c0 MATIC0.006191250395 35.502528229
0xa37c21c302f954aea1b05df9f25a95bd1dba7ee748416fde875033b859c6d0780x7c025200242659902022-01-28 13:01:1720 hrs 58 mins ago0x764bea59caf8c9bcd49473bf2ecf8d5fca17cc48 IN  0x1fc3607fa67b58deddb0faf7a116f417a20c551c0 MATIC0.005515500985 31.369800054
0x02081565fe916d168cea6c2c8cef1713e329b8659a6cce38ed3ba48247cb712d0x7c025200242656922022-01-28 12:51:0121 hrs 8 mins ago0xa57c571d52ac12f0029056de43157c823be6b28f IN  0x1fc3607fa67b58deddb0faf7a116f417a20c551c0 MATIC0.01218352000130.069994968
0xcb7664d60c38c7041b7afc1c50aae1a4583b2609688d9065ff03a6ddf1a12d520x7c025200242653992022-01-28 12:40:5521 hrs 18 mins ago0xa57c571d52ac12f0029056de43157c823be6b28f IN  0x1fc3607fa67b58deddb0faf7a116f417a20c551c0 MATIC0.01216252902230.069989722
0xeefb96d826a9f34f0d44f50462abc1e332f4a5f4a4ad006267b6e1d18bcd63a30x7c025200242652732022-01-28 12:36:3521 hrs 23 mins ago0xa57c571d52ac12f0029056de43157c823be6b28f IN  0x1fc3607fa67b58deddb0faf7a116f417a20c551c0 MATIC0.01106413249230.06998987
0x36ae527aeb8dffe59a216c04851d9dfbeb89cd74ce430345ed58799cbeeefb190x7c025200242647772022-01-28 12:15:1921 hrs 44 mins ago0x5ca85f36e7a865e2a6d0349acc1523eafbeb3e72 IN  0x1fc3607fa67b58deddb0faf7a116f417a20c551c0 MATIC0.005766995314 32.96443082
0x817b63e8d7e5153119a99b410854d37183c641dde750279b1fb492cd7c7c57b60x7c025200242622652022-01-28 10:41:4023 hrs 18 mins ago0x5ca85f36e7a865e2a6d0349acc1523eafbeb3e72 IN  0x1fc3607fa67b58deddb0faf7a116f417a20c551c0 MATIC0.002545464778 14.550002737
0xe67ddb37cb075d115042afb9fa7dd6c2f238c456d89e9229f360af84dad3bcae0x7c025200242622302022-01-28 10:40:3023 hrs 19 mins ago0x5ca85f36e7a865e2a6d0349acc1523eafbeb3e72 IN  0x1fc3607fa67b58deddb0faf7a116f417a20c551c0 MATIC0.002737570861 29.682000018
0x196a28b6ca76f9fa32085593cf4f6241dd58821dbba06bf6752adb6c2db0aea40x7c025200242481332022-01-28 2:08:081 day 7 hrs ago0x627f1d9cee22804f0c49f9999c1bd9d4cffb1afe IN  0x1fc3607fa67b58deddb0faf7a116f417a20c551c0 MATIC0.005719400368 32.650197342
0xf5e0f5176311fd06e22b911119db1e1ed4cfda23246aff9655a3fd39b837149e0x7c025200242429562022-01-27 23:01:271 day 10 hrs ago0x764bea59caf8c9bcd49473bf2ecf8d5fca17cc48 IN  0x1fc3607fa67b58deddb0faf7a116f417a20c551c0 MATIC0.005258080397 30.108800002
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x85aa7b0d1e9da054e1757891b8e9e345ea20c016ea884abd4403f6461d503eb1242968272022-01-29 8:15:221 hr 44 mins ago 0x1fc3607fa67b58deddb0faf7a116f417a20c551c 0x18008a3d4de136e090d0a71cb1de601fc8246225574.54 MATIC
0x85aa7b0d1e9da054e1757891b8e9e345ea20c016ea884abd4403f6461d503eb1242968272022-01-29 8:15:221 hr 44 mins ago 0xa21dbda6debd04e8d9ece070c54047d6662e3930 0x1fc3607fa67b58deddb0faf7a116f417a20c551c574.54 MATIC
0x54d71dcdc8b54bbd323257d41701cdc525d454c7d092e27acb49a068c55c0fbe242967952022-01-29 8:14:181 hr 45 mins ago 0x1fc3607fa67b58deddb0faf7a116f417a20c551c 0x18008a3d4de136e090d0a71cb1de601fc8246225574.54 MATIC
0x54d71dcdc8b54bbd323257d41701cdc525d454c7d092e27acb49a068c55c0fbe242967952022-01-29 8:14:181 hr 45 mins ago 0xa21dbda6debd04e8d9ece070c54047d6662e3930 0x1fc3607fa67b58deddb0faf7a116f417a20c551c574.54 MATIC
0x33857dfcc573d6ebc942ec704692f4d98b14fd6f583319e82e800995c7548346242964492022-01-29 7:56:022 hrs 3 mins ago 0x1fc3607fa67b58deddb0faf7a116f417a20c551c 0x18008a3d4de136e090d0a71cb1de601fc8246225299.76 MATIC
0x33857dfcc573d6ebc942ec704692f4d98b14fd6f583319e82e800995c7548346242964492022-01-29 7:56:022 hrs 3 mins ago 0xa21dbda6debd04e8d9ece070c54047d6662e3930 0x1fc3607fa67b58deddb0faf7a116f417a20c551c299.76 MATIC
0x8ced86444ecd8f8e67c8f033ee6d12449e21ed9afbdcaefdd9aa4cf303fc47aa242949772022-01-29 6:57:023 hrs 2 mins ago 0x1fc3607fa67b58deddb0faf7a116f417a20c551c 0x18008a3d4de136e090d0a71cb1de601fc82462250.9992 MATIC
0x8ced86444ecd8f8e67c8f033ee6d12449e21ed9afbdcaefdd9aa4cf303fc47aa242949772022-01-29 6:57:023 hrs 2 mins ago 0xa21dbda6debd04e8d9ece070c54047d6662e3930 0x1fc3607fa67b58deddb0faf7a116f417a20c551c0.9992 MATIC
0xef8432ae39db32dd077cf465007fe6700efe8c60c13ce63ed36aeea6a64faafc242939532022-01-29 6:19:343 hrs 40 mins ago 0x1fc3607fa67b58deddb0faf7a116f417a20c551c 0x18008a3d4de136e090d0a71cb1de601fc82462250.9992 MATIC
0xef8432ae39db32dd077cf465007fe6700efe8c60c13ce63ed36aeea6a64faafc242939532022-01-29 6:19:343 hrs 40 mins ago 0xa21dbda6debd04e8d9ece070c54047d6662e3930 0x1fc3607fa67b58deddb0faf7a116f417a20c551c0.9992 MATIC
0x0d0711747c9d0498c8e29e2836e591721c47c1239e7d195b59295ef324bf33d8242938052022-01-29 6:12:183 hrs 47 mins ago 0x1fc3607fa67b58deddb0faf7a116f417a20c551c 0x18008a3d4de136e090d0a71cb1de601fc824622559.952 MATIC
0x0d0711747c9d0498c8e29e2836e591721c47c1239e7d195b59295ef324bf33d8242938052022-01-29 6:12:183 hrs 47 mins ago 0xa21dbda6debd04e8d9ece070c54047d6662e3930 0x1fc3607fa67b58deddb0faf7a116f417a20c551c59.952 MATIC
0xedbd5e2f618b70ed7b668a1f3f5a5e3ff4fefaef99fc2241d8296fa34d416d2a242921452022-01-29 5:12:384 hrs 47 mins ago 0x1fc3607fa67b58deddb0faf7a116f417a20c551c 0x18008a3d4de136e090d0a71cb1de601fc82462250.39968 MATIC
0xedbd5e2f618b70ed7b668a1f3f5a5e3ff4fefaef99fc2241d8296fa34d416d2a242921452022-01-29 5:12:384 hrs 47 mins ago 0xa21dbda6debd04e8d9ece070c54047d6662e3930 0x1fc3607fa67b58deddb0faf7a116f417a20c551c0.39968 MATIC
0x16f46e8961cb94b2ed661247e550c88dcd6a1c942678983e444be5fb291cd2b0242921282022-01-29 5:11:304 hrs 48 mins ago 0x1fc3607fa67b58deddb0faf7a116f417a20c551c 0x18008a3d4de136e090d0a71cb1de601fc82462250.9992 MATIC
0x16f46e8961cb94b2ed661247e550c88dcd6a1c942678983e444be5fb291cd2b0242921282022-01-29 5:11:304 hrs 48 mins ago 0xa21dbda6debd04e8d9ece070c54047d6662e3930 0x1fc3607fa67b58deddb0faf7a116f417a20c551c0.9992 MATIC
0x47a7b09cf979ea81806b284c2f60b3e15bd02e3f068406e1a760e2014f95f096242906392022-01-29 4:15:305 hrs 44 mins ago 0x1fc3607fa67b58deddb0faf7a116f417a20c551c 0x18008a3d4de136e090d0a71cb1de601fc82462257.39408 MATIC
0x47a7b09cf979ea81806b284c2f60b3e15bd02e3f068406e1a760e2014f95f096242906392022-01-29 4:15:305 hrs 44 mins ago 0xa21dbda6debd04e8d9ece070c54047d6662e3930 0x1fc3607fa67b58deddb0faf7a116f417a20c551c7.39408 MATIC
0xd49075983b7eb1dcc7d14ea631b37a70d25ae01e156f99dfca66fc87f42b9acd242875702022-01-29 2:25:117 hrs 34 mins ago 0x1fc3607fa67b58deddb0faf7a116f417a20c551c 0x18008a3d4de136e090d0a71cb1de601fc824622513.9888 MATIC
0xd49075983b7eb1dcc7d14ea631b37a70d25ae01e156f99dfca66fc87f42b9acd242875702022-01-29 2:25:117 hrs 34 mins ago 0xa21dbda6debd04e8d9ece070c54047d6662e3930 0x1fc3607fa67b58deddb0faf7a116f417a20c551c13.9888 MATIC
0xd3350f41119578275f6dba9f087747a0359a4ab1293359bea07ce7566b4b6dd9242875412022-01-29 2:24:097 hrs 35 mins ago 0x1fc3607fa67b58deddb0faf7a116f417a20c551c 0x18008a3d4de136e090d0a71cb1de601fc8246225482.6136 MATIC
0xd3350f41119578275f6dba9f087747a0359a4ab1293359bea07ce7566b4b6dd9242875412022-01-29 2:24:097 hrs 35 mins ago 0xa21dbda6debd04e8d9ece070c54047d6662e3930 0x1fc3607fa67b58deddb0faf7a116f417a20c551c482.6136 MATIC
0x7a9abef2594af59b7db37ae49a7f76283d4d43fbf5fdce314662b8d8826b2880242873002022-01-29 2:15:557 hrs 43 mins ago 0x1fc3607fa67b58deddb0faf7a116f417a20c551c 0x18008a3d4de136e090d0a71cb1de601fc824622512.9896 MATIC
0x7a9abef2594af59b7db37ae49a7f76283d4d43fbf5fdce314662b8d8826b2880242873002022-01-29 2:15:557 hrs 43 mins ago 0xa21dbda6debd04e8d9ece070c54047d6662e3930 0x1fc3607fa67b58deddb0faf7a116f417a20c551c12.9896 MATIC
0x4a5206389b4359958857c8c18b7a5005d94be18fbd4b1379ead23af27ad2f88d242823512022-01-28 23:21:2910 hrs 38 mins ago 0x1fc3607fa67b58deddb0faf7a116f417a20c551c 0x18008a3d4de136e090d0a71cb1de601fc824622512.68984 MATIC
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AggregationRouter

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at polygonscan.com on 2021-09-29
*/

// File: contracts/AggregationRouter.sol

// SPDX-License-Identifier: MIT

pragma solidity >=0.7.6;
pragma abicoder v2;

interface IERC20 {
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Transfer(address indexed from, address indexed to, uint256 value);

    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);

    function totalSupply() external view returns (uint256);

    function balanceOf(address owner) external view returns (uint256);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 value) external returns (bool);

    function transfer(address to, uint256 value) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);
}

interface IAggregationExecutor {
    function callBytes(bytes calldata data) external payable; // 0xd9c45357
}

// helper methods for interacting with ERC20 tokens and sending ETH that do not consistently return true/false
library TransferHelper {
    function safeApprove(
        address token,
        address to,
        uint256 value
    ) internal {
        // bytes4(keccak256(bytes('approve(address,uint256)')));
        (bool success, bytes memory data) =
            token.call(abi.encodeWithSelector(0x095ea7b3, to, value));
        require(
            success && (data.length == 0 || abi.decode(data, (bool))),
            "TransferHelper: APPROVE_FAILED"
        );
    }

    function safeTransfer(
        address token,
        address to,
        uint256 value
    ) internal {
        // bytes4(keccak256(bytes('transfer(address,uint256)')));
        (bool success, bytes memory data) =
            token.call(abi.encodeWithSelector(0xa9059cbb, to, value));
        require(
            success && (data.length == 0 || abi.decode(data, (bool))),
            "TransferHelper: TRANSFER_FAILED"
        );
    }

    function safeTransferFrom(
        address token,
        address from,
        address to,
        uint256 value
    ) internal {
        // bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));
        (bool success, bytes memory data) =
            token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));
        require(
            success && (data.length == 0 || abi.decode(data, (bool))),
            "TransferHelper: TRANSFER_FROM_FAILED"
        );
    }

    function safeTransferETH(address to, uint256 value) internal {
        (bool success, ) = to.call{value: value}(new bytes(0));
        require(success, "TransferHelper: ETH_TRANSFER_FAILED");
    }
}

// a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math)
library SafeMath {
    function add(uint256 x, uint256 y) internal pure returns (uint256 z) {
        require((z = x + y) >= x, "ds-math-add-overflow");
    }

    function sub(uint256 x, uint256 y) internal pure returns (uint256 z) {
        require((z = x - y) <= x, "ds-math-sub-underflow");
    }

    function mul(uint256 x, uint256 y) internal pure returns (uint256 z) {
        require(y == 0 || (z = x * y) / y == x, "ds-math-mul-overflow");
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256 c) {
        require(b > 0, "ds-math-division-by-zero");
        c = a / b;
    }
}

interface IERC20Permit {
    function permit(
        address owner,
        address spender,
        uint256 amount,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external;
}

library RevertReasonParser {
    function parse(bytes memory data, string memory prefix)
        internal
        pure
        returns (string memory)
    {
        // https://solidity.readthedocs.io/en/latest/control-structures.html#revert
        // We assume that revert reason is abi-encoded as Error(string)

        // 68 = 4-byte selector 0x08c379a0 + 32 bytes offset + 32 bytes length
        if (
            data.length >= 68 &&
            data[0] == "\x08" &&
            data[1] == "\xc3" &&
            data[2] == "\x79" &&
            data[3] == "\xa0"
        ) {
            string memory reason;
            // solhint-disable no-inline-assembly
            assembly {
                // 68 = 32 bytes data length + 4-byte selector + 32 bytes offset
                reason := add(data, 68)
            }
            /*
                revert reason is padded up to 32 bytes with ABI encoder: Error(string)
                also sometimes there is extra 32 bytes of zeros padded in the end:
                https://github.com/ethereum/solidity/issues/10170
                because of that we can't check for equality and instead check
                that string length + extra 68 bytes is less than overall data length
            */
            require(
                data.length >= 68 + bytes(reason).length,
                "Invalid revert reason"
            );
            return string(abi.encodePacked(prefix, "Error(", reason, ")"));
        }
        // 36 = 4-byte selector 0x4e487b71 + 32 bytes integer
        else if (
            data.length == 36 &&
            data[0] == "\x4e" &&
            data[1] == "\x48" &&
            data[2] == "\x7b" &&
            data[3] == "\x71"
        ) {
            uint256 code;
            // solhint-disable no-inline-assembly
            assembly {
                // 36 = 32 bytes data length + 4-byte selector
                code := mload(add(data, 36))
            }
            return
                string(abi.encodePacked(prefix, "Panic(", _toHex(code), ")"));
        }

        return string(abi.encodePacked(prefix, "Unknown(", _toHex(data), ")"));
    }

    function _toHex(uint256 value) private pure returns (string memory) {
        return _toHex(abi.encodePacked(value));
    }

    function _toHex(bytes memory data) private pure returns (string memory) {
        bytes16 alphabet = 0x30313233343536373839616263646566;
        bytes memory str = new bytes(2 + data.length * 2);
        str[0] = "0";
        str[1] = "x";
        for (uint256 i = 0; i < data.length; i++) {
            str[2 * i + 2] = alphabet[uint8(data[i] >> 4)];
            str[2 * i + 3] = alphabet[uint8(data[i] & 0x0f)];
        }
        return string(str);
    }
}

contract Permitable {
    event Error(string reason);

    function _permit(
        IERC20 token,
        uint256 amount,
        bytes calldata permit
    ) internal {
        if (permit.length == 32 * 7) {
            // solhint-disable-next-line avoid-low-level-calls
            (bool success, bytes memory result) =
                address(token).call(
                    abi.encodePacked(IERC20Permit.permit.selector, permit)
                );
            if (!success) {
                string memory reason =
                    RevertReasonParser.parse(result, "Permit call failed: ");
                if (token.allowance(msg.sender, address(this)) < amount) {
                    revert(reason);
                } else {
                    emit Error(reason);
                }
            }
        }
    }
}

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

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

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract AggregationRouter is Permitable, Ownable {
    using SafeMath for uint256;
    address public immutable WETH;
    address private constant ETH_ADDRESS =
        address(0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE);

    uint256 private constant _PARTIAL_FILL = 0x01;
    uint256 private constant _REQUIRES_EXTRA_ETH = 0x02;
    uint256 private constant _SHOULD_CLAIM = 0x04;
    uint256 private constant _BURN_FROM_MSG_SENDER = 0x08;
    uint256 private constant _BURN_FROM_TX_ORIGIN = 0x10;

    struct SwapDescription {
        IERC20 srcToken;
        IERC20 dstToken;
        address srcReceiver;
        address dstReceiver;
        uint256 amount;
        uint256 minReturnAmount;
        uint256 flags;
        bytes permit;
    }

    event Swapped(
        address sender,
        IERC20 srcToken,
        IERC20 dstToken,
        address dstReceiver,
        uint256 spentAmount,
        uint256 returnAmount
    );

    event Exchange(address pair, uint256 amountOut, address output);

    modifier ensure(uint256 deadline) {
        require(deadline >= block.timestamp, "Router: EXPIRED");
        _;
    }

    constructor(address _WETH) public {
        WETH = _WETH;
    }

    receive() external payable {
        assert(msg.sender == WETH);
        // only accept ETH via fallback from the WETH contract
    }

    function swap(
        IAggregationExecutor caller,
        SwapDescription calldata desc,
        bytes calldata data
    ) external payable returns (uint256 returnAmount) {
        require(desc.minReturnAmount > 0, "Min return should not be 0");
        require(data.length > 0, "data should be not zero");

        uint256 flags = desc.flags;
        uint256 amount = desc.amount;
        IERC20 srcToken = desc.srcToken;
        IERC20 dstToken = desc.dstToken;

        if (flags & _REQUIRES_EXTRA_ETH != 0) {
            require(
                msg.value > (isETH(srcToken) ? amount : 0),
                "Invalid msg.value"
            );
        } else {
            require(
                msg.value == (isETH(srcToken) ? amount : 0),
                "Invalid msg.value"
            );
        }

        if (flags & _SHOULD_CLAIM != 0) {
            require(!isETH(srcToken), "Claim token is ETH");
            _permit(srcToken, amount, desc.permit);
            TransferHelper.safeTransferFrom(
                address(srcToken),
                msg.sender,
                desc.srcReceiver,
                amount
            );
        }

        address dstReceiver =
            (desc.dstReceiver == address(0)) ? msg.sender : desc.dstReceiver;
        uint256 initialSrcBalance =
            (flags & _PARTIAL_FILL != 0) ? getBalance(srcToken, msg.sender) : 0;
        uint256 initialDstBalance = getBalance(dstToken, dstReceiver);

        {
            // solhint-disable-next-line avoid-low-level-calls
            (bool success, bytes memory result) =
                address(caller).call{value: msg.value}(
                    abi.encodeWithSelector(caller.callBytes.selector, data)
                );
            if (!success) {
                revert(RevertReasonParser.parse(result, "callBytes failed: "));
            }
        }

        uint256 spentAmount = amount;
        returnAmount = getBalance(dstToken, dstReceiver).sub(initialDstBalance);

        if (flags & _PARTIAL_FILL != 0) {
            spentAmount = initialSrcBalance.add(amount).sub(
                getBalance(srcToken, msg.sender)
            );
            require(
                returnAmount.mul(amount) >=
                    desc.minReturnAmount.mul(spentAmount),
                "Return amount is not enough"
            );
        } else {
            require(
                returnAmount >= desc.minReturnAmount,
                "Return amount is not enough"
            );
        }

        emit Swapped(
            msg.sender,
            srcToken,
            dstToken,
            dstReceiver,
            spentAmount,
            returnAmount
        );
        emit Exchange(
            address(caller),
            returnAmount,
            isETH(dstToken) ? WETH : address(dstToken)
        );
    }

    function getBalance(IERC20 token, address account)
        internal
        view
        returns (uint256)
    {
        if (isETH(token)) {
            return account.balance;
        } else {
            return token.balanceOf(account);
        }
    }

    function isETH(IERC20 token) internal pure returns (bool) {
        return (address(token) == ETH_ADDRESS);
    }

    function rescueFunds(address token, uint256 amount) external onlyOwner {
        if (isETH(IERC20(token))) {
            TransferHelper.safeTransferETH(msg.sender, amount);
        } else {
            TransferHelper.safeTransfer(token, msg.sender, amount);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_WETH","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"Error","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"pair","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountOut","type":"uint256"},{"indexed":false,"internalType":"address","name":"output","type":"address"}],"name":"Exchange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"contract IERC20","name":"srcToken","type":"address"},{"indexed":false,"internalType":"contract IERC20","name":"dstToken","type":"address"},{"indexed":false,"internalType":"address","name":"dstReceiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"spentAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"returnAmount","type":"uint256"}],"name":"Swapped","type":"event"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IAggregationExecutor","name":"caller","type":"address"},{"components":[{"internalType":"contract IERC20","name":"srcToken","type":"address"},{"internalType":"contract IERC20","name":"dstToken","type":"address"},{"internalType":"address","name":"srcReceiver","type":"address"},{"internalType":"address","name":"dstReceiver","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"minReturnAmount","type":"uint256"},{"internalType":"uint256","name":"flags","type":"uint256"},{"internalType":"bytes","name":"permit","type":"bytes"}],"internalType":"struct AggregationRouter.SwapDescription","name":"desc","type":"tuple"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"swap","outputs":[{"internalType":"uint256","name":"returnAmount","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040523480156200001157600080fd5b50604051620020d9380380620020d98339810160408190526200003491620000a4565b600062000040620000a0565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060601b6001600160601b031916608052620000d4565b3390565b600060208284031215620000b6578081fd5b81516001600160a01b0381168114620000cd578182fd5b9392505050565b60805160601c611fde620000fb60003980608652806107f452806108595250611fde6000f3fe6080604052600436106100695760003560e01c80638da5cb5b116100435780638da5cb5b14610112578063ad5c464814610134578063f2fde38b14610149576100af565b8063715018a6146100b457806378e3214f146100c95780637c025200146100e9576100af565b366100af573373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146100ad57fe5b005b600080fd5b3480156100c057600080fd5b506100ad610169565b3480156100d557600080fd5b506100ad6100e436600461170d565b610254565b6100fc6100f7366004611758565b6102f3565b60405161010991906119be565b60405180910390f35b34801561011e57600080fd5b5061012761083b565b60405161010991906119c7565b34801561014057600080fd5b50610127610857565b34801561015557600080fd5b506100ad6101643660046116ea565b61087b565b6101716109c8565b73ffffffffffffffffffffffffffffffffffffffff1661018f61083b565b73ffffffffffffffffffffffffffffffffffffffff16146101e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101dc90611d90565b60405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b61025c6109c8565b73ffffffffffffffffffffffffffffffffffffffff1661027a61083b565b73ffffffffffffffffffffffffffffffffffffffff16146102c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101dc90611d90565b6102d0826109cc565b156102e4576102df33826109fe565b6102ef565b6102ef823383610ab7565b5050565b6000808460a0013511610332576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101dc90611d59565b81610369576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101dc90611dc5565b60c08401356080850135600061038260208801886116ea565b905060006103966040890160208a016116ea565b905060028416156103f4576103aa826109cc565b6103b55760006103b7565b825b34116103ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101dc90611ceb565b610442565b6103fd826109cc565b61040857600061040a565b825b3414610442576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101dc90611ceb565b60048416156104bd57610454826109cc565b1561048b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101dc90611be9565b6104a2828461049d60e08c018c611eed565b610be0565b6104bd82336104b760608c0160408d016116ea565b86610dee565b6000806104d060808b0160608c016116ea565b73ffffffffffffffffffffffffffffffffffffffff1614610500576104fb60808a0160608b016116ea565b610502565b335b905060006001861661051557600061051f565b61051f8433610f12565b9050600061052d8484610f12565b90506000808d73ffffffffffffffffffffffffffffffffffffffff163463d9c4535760e01b8e8e604051602401610565929190611add565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516105ee9190611852565b60006040518083038185875af1925050503d806000811461062b576040519150601f19603f3d011682016040523d82523d6000602084013e610630565b606091505b5091509150816106ac57610679816040518060400160405280601281526020017f63616c6c4279746573206661696c65643a200000000000000000000000000000815250610feb565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101dc9190611b2a565b508690506106c4826106be8787610f12565b906113bd565b9850600188161561073d576106e66106dc8733610f12565b6106be858a6113fa565b90506106f660a08d013582611437565b6107008a89611437565b1015610738576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101dc90611d22565b61077b565b8b60a0013589101561077b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101dc90611d22565b7fd6d4f5681c246c9f42c203e287975af1601f8df8035a9251f79aab5c8f09e2f833878787858e6040516107b496959493929190611a0f565b60405180910390a17fddac40937f35385a34f721af292e5a83fc5b840f722bff57c2fc71adba708c488d8a6107e8886109cc565b6107f25787610814565b7f00000000000000000000000000000000000000000000000000000000000000005b60405161082393929190611aad565b60405180910390a15050505050505050949350505050565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b7f000000000000000000000000000000000000000000000000000000000000000081565b6108836109c8565b73ffffffffffffffffffffffffffffffffffffffff166108a161083b565b73ffffffffffffffffffffffffffffffffffffffff16146108ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101dc90611d90565b73ffffffffffffffffffffffffffffffffffffffff811661093b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101dc90611c20565b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b3390565b73ffffffffffffffffffffffffffffffffffffffff811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14919050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff8416908390604051610a359190611852565b60006040518083038185875af1925050503d8060008114610a72576040519150601f19603f3d011682016040523d82523d6000602084013e610a77565b606091505b5050905080610ab2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101dc90611e33565b505050565b6000808473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401610ae9929190611a87565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610b379190611852565b6000604051808303816000865af19150503d8060008114610b74576040519150601f19603f3d011682016040523d82523d6000602084013e610b79565b606091505b5091509150818015610ba3575080511580610ba3575080806020019051810190610ba39190611738565b610bd9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101dc90611bb2565b5050505050565b60e0811415610de8576000808573ffffffffffffffffffffffffffffffffffffffff1663d505accf60e01b8585604051602001610c1f93929190611816565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610c5791611852565b6000604051808303816000865af19150503d8060008114610c94576040519150601f19603f3d011682016040523d82523d6000602084013e610c99565b606091505b509150915081610de5576000610ce4826040518060400160405280601481526020017f5065726d69742063616c6c206661696c65643a20000000000000000000000000815250610feb565b9050858773ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401610d229291906119e8565b60206040518083038186803b158015610d3a57600080fd5b505afa158015610d4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7291906117fe565b1015610dac57806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101dc9190611b2a565b7f08c379a0afcc32b1a39302f7cb8073359698411ab5fd6e3edb2c02c0b5fba8aa81604051610ddb9190611b2a565b60405180910390a1505b50505b50505050565b6000808573ffffffffffffffffffffffffffffffffffffffff166323b872dd868686604051602401610e2293929190611a56565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051610e709190611852565b6000604051808303816000865af19150503d8060008114610ead576040519150601f19603f3d011682016040523d82523d6000602084013e610eb2565b606091505b5091509150818015610edc575080511580610edc575080806020019051810190610edc9190611738565b610de5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101dc90611e90565b6000610f1d836109cc565b15610f40575073ffffffffffffffffffffffffffffffffffffffff811631610fe5565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416906370a0823190610f929085906004016119c7565b60206040518083038186803b158015610faa57600080fd5b505afa158015610fbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe291906117fe565b90505b92915050565b6060604483511015801561105257508260008151811061100757fe5b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f0800000000000000000000000000000000000000000000000000000000000000145b80156110b157508260018151811061106657fe5b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167fc300000000000000000000000000000000000000000000000000000000000000145b80156111105750826002815181106110c557fe5b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f7900000000000000000000000000000000000000000000000000000000000000145b801561116f57508260038151811061112457fe5b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167fa000000000000000000000000000000000000000000000000000000000000000145b156111e55760606044840190508051604401845110156111bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101dc90611dfc565b82816040516020016111ce929190611972565b604051602081830303815290604052915050610fe5565b825160241480156112495750826000815181106111fe57fe5b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f4e00000000000000000000000000000000000000000000000000000000000000145b80156112a857508260018151811061125d57fe5b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f4800000000000000000000000000000000000000000000000000000000000000145b80156113075750826002815181106112bc57fe5b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f7b00000000000000000000000000000000000000000000000000000000000000145b801561136657508260038151811061131b57fe5b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f7100000000000000000000000000000000000000000000000000000000000000145b1561138b5760248301518261137a82611488565b6040516020016111ce92919061186e565b81611395846114ae565b6040516020016113a69291906118f0565b604051602081830303815290604052905092915050565b80820382811115610fe5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101dc90611b7b565b80820182811015610fe5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101dc90611cb4565b60008115806114525750508082028282828161144f57fe5b04145b610fe5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101dc90611c7d565b6060610fe58260405160200161149e91906119be565b6040516020818303038152906040525b80516060907f30313233343536373839616263646566000000000000000000000000000000009060009060029081020167ffffffffffffffff811180156114f457600080fd5b506040519080825280601f01601f19166020018201604052801561151f576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061155057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106115ad57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b84518110156116e2578260048683815181106115f757fe5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016901c60f81c6010811061162d57fe5b1a60f81b82826002026002018151811061164357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508285828151811061167f57fe5b60209101015160f81c600f166010811061169557fe5b1a60f81b8282600202600301815181106116ab57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506001016115df565b509392505050565b6000602082840312156116fb578081fd5b813561170681611f83565b9392505050565b6000806040838503121561171f578081fd5b823561172a81611f83565b946020939093013593505050565b600060208284031215611749578081fd5b81518015158114611706578182fd5b6000806000806060858703121561176d578182fd5b843561177881611f83565b9350602085013567ffffffffffffffff80821115611794578384fd5b9086019061010082890312156117a8578384fd5b909350604086013590808211156117bd578384fd5b818701915087601f8301126117d0578384fd5b8135818111156117de578485fd5b8860208285010111156117ef578485fd5b95989497505060200194505050565b60006020828403121561180f578081fd5b5051919050565b60007fffffffff000000000000000000000000000000000000000000000000000000008516825282846004840137910160040190815292915050565b60008251611864818460208701611f57565b9190910192915050565b60008351611880818460208801611f57565b7f50616e696328000000000000000000000000000000000000000000000000000090830190815283516118ba816006840160208801611f57565b7f290000000000000000000000000000000000000000000000000000000000000060069290910191820152600701949350505050565b60008351611902818460208801611f57565b7f556e6b6e6f776e28000000000000000000000000000000000000000000000000908301908152835161193c816008840160208801611f57565b7f290000000000000000000000000000000000000000000000000000000000000060089290910191820152600901949350505050565b60008351611984818460208801611f57565b7f4572726f7228000000000000000000000000000000000000000000000000000090830190815283516118ba816006840160208801611f57565b90815260200190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff96871681529486166020860152928516604085015293166060830152608082019290925260a081019190915260c00190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff93841681526020810192909252909116604082015260600190565b60006020825282602083015282846040840137818301604090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101919050565b6000602082528251806020840152611b49816040850160208701611f57565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60208082526015908201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604082015260600190565b6020808252601f908201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604082015260600190565b60208082526012908201527f436c61696d20746f6b656e206973204554480000000000000000000000000000604082015260600190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201527f6464726573730000000000000000000000000000000000000000000000000000606082015260800190565b60208082526014908201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604082015260600190565b60208082526014908201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604082015260600190565b60208082526011908201527f496e76616c6964206d73672e76616c7565000000000000000000000000000000604082015260600190565b6020808252601b908201527f52657475726e20616d6f756e74206973206e6f7420656e6f7567680000000000604082015260600190565b6020808252601a908201527f4d696e2072657475726e2073686f756c64206e6f742062652030000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526017908201527f646174612073686f756c64206265206e6f74207a65726f000000000000000000604082015260600190565b60208082526015908201527f496e76616c69642072657665727420726561736f6e0000000000000000000000604082015260600190565b60208082526023908201527f5472616e7366657248656c7065723a204554485f5452414e534645525f46414960408201527f4c45440000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526024908201527f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f464160408201527f494c454400000000000000000000000000000000000000000000000000000000606082015260800190565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112611f21578283fd5b83018035915067ffffffffffffffff821115611f3b578283fd5b602001915036819003821315611f5057600080fd5b9250929050565b60005b83811015611f72578181015183820152602001611f5a565b83811115610de85750506000910152565b73ffffffffffffffffffffffffffffffffffffffff81168114611fa557600080fd5b5056fea2646970667358221220b35595226045d97544539f78e03481c4fad23be8e5ac73398f0678c83ab2db4e64736f6c634300070600330000000000000000000000000d500b1d8e8ef31e21c99d1db9a6444d3adf1270

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

0000000000000000000000000d500b1d8e8ef31e21c99d1db9a6444d3adf1270

-----Decoded View---------------
Arg [0] : _WETH (address): 0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000d500b1d8e8ef31e21c99d1db9a6444d3adf1270


Deployed ByteCode Sourcemap

10763:4977:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12052:10;:18;12066:4;12052:18;;12045:26;;;;10763:4977;;;;;10172:148;;;;;;;;;;;;;:::i;15458:279::-;;;;;;;;;;-1:-1:-1;15458:279:0;;;;;:::i;:::-;;:::i;12151:2904::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9521:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;10853:29::-;;;;;;;;;;;;;:::i;10475:281::-;;;;;;;;;;-1:-1:-1;10475:281:0;;;;;:::i;:::-;;:::i;10172:148::-;9752:12;:10;:12::i;:::-;9741:23;;:7;:5;:7::i;:::-;:23;;;9733:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10279:1:::1;10263:6:::0;;10242:40:::1;::::0;::::1;10263:6:::0;;::::1;::::0;10242:40:::1;::::0;10279:1;;10242:40:::1;10310:1;10293:19:::0;;;::::1;::::0;;10172:148::o;15458:279::-;9752:12;:10;:12::i;:::-;9741:23;;:7;:5;:7::i;:::-;:23;;;9733:68;;;;;;;;;;;;:::i;:::-;15544:20:::1;15557:5;15544;:20::i;:::-;15540:190;;;15581:50;15612:10;15624:6;15581:30;:50::i;:::-;15540:190;;;15664:54;15692:5;15699:10;15711:6;15664:27;:54::i;:::-;15458:279:::0;;:::o;12151:2904::-;12306:20;12370:1;12347:4;:20;;;:24;12339:63;;;;;;;;;;;;:::i;:::-;12421:15;12413:51;;;;;;;;;;;;:::i;:::-;12493:10;;;;12531:11;;;;12477:13;12571;;;;12493:4;12571:13;:::i;:::-;12553:31;-1:-1:-1;12595:15:0;12613:13;;;;;;;;:::i;:::-;12595:31;-1:-1:-1;11096:4:0;12643:27;;:32;12639:341;;12731:15;12737:8;12731:5;:15::i;:::-;:28;;12758:1;12731:28;;;12749:6;12731:28;12718:9;:42;12692:121;;;;;;;;;;;;:::i;:::-;12639:341;;;12886:15;12892:8;12886:5;:15::i;:::-;:28;;12913:1;12886:28;;;12904:6;12886:28;12872:9;:43;12846:122;;;;;;;;;;;;:::i;:::-;11148:4;12996:21;;:26;12992:345;;13048:15;13054:8;13048:5;:15::i;:::-;13047:16;13039:47;;;;;;;;;;;;:::i;:::-;13101:38;13109:8;13119:6;13127:11;;;;:4;:11;:::i;:::-;13101:7;:38::i;:::-;13154:171;13212:8;13240:10;13269:16;;;;;;;;:::i;:::-;13304:6;13154:31;:171::i;:::-;13349:19;;13385:16;;;;;;;;:::i;:::-;:30;;;13384:64;;13432:16;;;;;;;;:::i;:::-;13384:64;;;13419:10;13384:64;13349:99;-1:-1:-1;13459:25:0;11038:4;13501:21;;13500:67;;13566:1;13500:67;;;13531:32;13542:8;13552:10;13531;:32::i;:::-;13459:108;;13578:25;13606:33;13617:8;13627:11;13606:10;:33::i;:::-;13578:61;;13732:12;13746:19;13794:6;13786:20;;13814:9;13870:25;;;13897:4;;13847:55;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13786:135;;;;13847:55;13786:135;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13731:190;;;;13941:7;13936:111;;13976:54;14001:6;13976:54;;;;;;;;;;;;;;;;;:24;:54::i;:::-;13969:62;;;;;;;;;;;:::i;13936:111::-;-1:-1:-1;14092:6:0;;-1:-1:-1;14124:56:0;14162:17;14124:33;14135:8;14145:11;14124:10;:33::i;:::-;:37;;:56::i;:::-;14109:71;-1:-1:-1;11038:4:0;14197:21;;:26;14193:520;;14254:99;14306:32;14317:8;14327:10;14306;:32::i;:::-;14254:29;:17;14276:6;14254:21;:29::i;:99::-;14240:113;-1:-1:-1;14443:37:0;:20;;;;14240:113;14443:24;:37::i;:::-;14394:24;:12;14411:6;14394:16;:24::i;:::-;:86;;14368:175;;;;;;;;;;;;:::i;:::-;14193:520;;;14618:4;:20;;;14602:12;:36;;14576:125;;;;;;;;;;;;:::i;:::-;14730:168;14752:10;14777:8;14800;14823:11;14849;14875:12;14730:168;;;;;;;;;;;:::i;:::-;;;;;;;;14914:133;14945:6;14967:12;14994:15;15000:8;14994:5;:15::i;:::-;:42;;15027:8;14994:42;;;15012:4;14994:42;14914:133;;;;;;;;:::i;:::-;;;;;;;;12151:2904;;;;;;;;;;;;;;:::o;9521:87::-;9567:7;9594:6;;;9521:87;:::o;10853:29::-;;;:::o;10475:281::-;9752:12;:10;:12::i;:::-;9741:23;;:7;:5;:7::i;:::-;:23;;;9733:68;;;;;;;;;;;;:::i;:::-;10578:22:::1;::::0;::::1;10556:110;;;;;;;;;;;;:::i;:::-;10703:6;::::0;;10682:38:::1;::::0;::::1;::::0;;::::1;::::0;10703:6;::::1;::::0;10682:38:::1;::::0;::::1;10731:6;:17:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;10475:281::o;8126:106::-;8214:10;8126:106;:::o;15335:115::-;15412:29;;;10945:42;15412:29;15335:115;;;:::o;2748:200::-;2861:12;;;2821;2861;;;;;;;;;2839:7;;;;2854:5;;2839:35;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2820:54;;;2893:7;2885:55;;;;;;;;;;;;:::i;:::-;2748:200;;;:::o;1786:448::-;1972:12;1986:17;2020:5;:10;;2054;2066:2;2070:5;2031:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:57;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1971:106;;;;2110:7;:57;;;;-1:-1:-1;2122:11:0;;:16;;:44;;;2153:4;2142:24;;;;;;;;;;;;:::i;:::-;2088:138;;;;;;;;;;;;:::i;:::-;1786:448;;;;;:::o;6793:783::-;6938:6;6921:23;;6917:652;;;7026:12;7040:19;7088:5;7080:19;;7139:28;;;7169:6;;7122:54;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;7080:115;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7025:170;;;;7215:7;7210:348;;7243:20;7287:56;7312:6;7287:56;;;;;;;;;;;;;;;;;:24;:56::i;:::-;7243:100;;7411:6;7366:5;:15;;;7382:10;7402:4;7366:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:51;7362:181;;;7449:6;7442:14;;;;;;;;;;;:::i;7362:181::-;7510:13;7516:6;7510:13;;;;;;:::i;:::-;;;;;;;;7210:348;;6917:652;;;6793:783;;;;:::o;2242:498::-;2467:12;2481:17;2515:5;:10;;2549;2561:4;2567:2;2571:5;2526:51;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2515:63;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2466:112;;;;2611:7;:57;;;;-1:-1:-1;2623:11:0;;:16;;:44;;;2654:4;2643:24;;;;;;;;;;;;:::i;:::-;2589:143;;;;;;;;;;;;:::i;15063:264::-;15164:7;15193:12;15199:5;15193;:12::i;:::-;15189:131;;;-1:-1:-1;15229:15:0;;;;15222:22;;15189:131;15284:24;;;;;:15;;;;;;:24;;15300:7;;15284:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15277:31;;15189:131;15063:264;;;;:::o;3955:2161::-;4061:13;4365:2;4350:4;:11;:17;;:51;;;;;4384:4;4389:1;4384:7;;;;;;;;;;;;;;;:17;;4350:51;:85;;;;;4418:4;4423:1;4418:7;;;;;;;;;;;;;;;:17;;4350:85;:119;;;;;4452:4;4457:1;4452:7;;;;;;;;;;;;;;;:17;;4350:119;:153;;;;;4486:4;4491:1;4486:7;;;;;;;;;;;;;;;:17;;4350:153;4332:1694;;;4530:20;4746:2;4740:4;4736:13;4726:23;;5266:6;5260:20;5255:2;:25;5240:4;:11;:40;;5214:123;;;;;;;;;;;;:::i;:::-;5383:6;5401;5366:47;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5352:62;;;;;4332:1694;5522:4;:11;5537:2;5522:17;:51;;;;;5556:4;5561:1;5556:7;;;;;;;;;;;;;;;:17;;5522:51;:85;;;;;5590:4;5595:1;5590:7;;;;;;;;;;;;;;;:17;;5522:85;:119;;;;;5624:4;5629:1;5624:7;;;;;;;;;;;;;;;:17;;5522:119;:153;;;;;5658:4;5663:1;5658:7;;;;;;;;;;;;;;;:17;;5522:153;5504:522;;;5896:2;5886:13;;5880:20;5977:6;5995:12;5880:20;5995:6;:12::i;:::-;5960:53;;;;;;;;;:::i;5504:522::-;6069:6;6089:12;6096:4;6089:6;:12::i;:::-;6052:55;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6038:70;;3955:2161;;;;:::o;3230:138::-;3323:5;;;3318:16;;;;3310:50;;;;;;;;;;;;:::i;3085:137::-;3178:5;;;3173:16;;;;3165:49;;;;;;;;;;;;:::i;3376:151::-;3434:9;3464:6;;;:30;;-1:-1:-1;;3479:5:0;;;3493:1;3488;3479:5;3488:1;3474:15;;;;;:20;3464:30;3456:63;;;;;;;;;;;;:::i;6124:125::-;6177:13;6210:31;6234:5;6217:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;6257:467;6437:11;;6314:13;;6340:53;;:16;;6451:1;6437:15;;;6433:19;6423:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6423:30:0;;6404:49;;6464:12;:3;6468:1;6464:6;;;;;;;;;;;:12;;;;;;;;;;;6487;:3;6491:1;6487:6;;;;;;;;;;;:12;;;;;;;;;;;6515:9;6510:178;6534:4;:11;6530:1;:15;6510:178;;;6584:8;6610:1;6599:4;6604:1;6599:7;;;;;;;;;;;;;;:12;;:7;6593:19;6584:29;;;;;;;;;;6567:3;6575:1;6571;:5;6579:1;6571:9;6567:14;;;;;;;;;;;:46;;;;;;;;;;;6645:8;6660:4;6665:1;6660:7;;;;;;;;;;;;;;;6670:4;6654:21;6645:31;;;;;;;;;;6628:3;6636:1;6632;:5;6640:1;6632:9;6628:14;;;;;;;;;;;:48;;;;;;;;;;-1:-1:-1;6547:3:0;;6510:178;;;-1:-1:-1;6712:3:0;6257:467;-1:-1:-1;;;6257:467:0:o;14:259:1:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:33;237:5;210:33;:::i;:::-;262:5;84:189;-1:-1:-1;;;84:189:1:o;278:327::-;;;407:2;395:9;386:7;382:23;378:32;375:2;;;428:6;420;413:22;375:2;472:9;459:23;491:33;518:5;491:33;:::i;:::-;543:5;595:2;580:18;;;;567:32;;-1:-1:-1;;;365:240:1:o;610:297::-;;730:2;718:9;709:7;705:23;701:32;698:2;;;751:6;743;736:22;698:2;788:9;782:16;841:5;834:13;827:21;820:5;817:32;807:2;;868:6;860;853:22;912:1097;;;;;1138:2;1126:9;1117:7;1113:23;1109:32;1106:2;;;1159:6;1151;1144:22;1106:2;1203:9;1190:23;1222:33;1249:5;1222:33;:::i;:::-;1274:5;-1:-1:-1;1330:2:1;1315:18;;1302:32;1353:18;1383:14;;;1380:2;;;1415:6;1407;1400:22;1380:2;1443:22;;;;1499:3;1481:16;;;1477:26;1474:2;;;1521:6;1513;1506:22;1474:2;1549;;-1:-1:-1;1604:2:1;1589:18;;1576:32;;1620:16;;;1617:2;;;1654:6;1646;1639:22;1617:2;1697:8;1686:9;1682:24;1672:34;;1744:7;1737:4;1733:2;1729:13;1725:27;1715:2;;1771:6;1763;1756:22;1715:2;1816;1803:16;1842:2;1834:6;1831:14;1828:2;;;1863:6;1855;1848:22;1828:2;1913:7;1908:2;1899:6;1895:2;1891:15;1887:24;1884:37;1881:2;;;1939:6;1931;1924:22;1881:2;1096:913;;;;-1:-1:-1;;1975:2:1;1967:11;;-1:-1:-1;;;1096:913:1:o;2291:194::-;;2414:2;2402:9;2393:7;2389:23;2385:32;2382:2;;;2435:6;2427;2420:22;2382:2;-1:-1:-1;2463:16:1;;2372:113;-1:-1:-1;2372:113:1:o;2490:416::-;;2697:66;2689:6;2685:79;2680:3;2673:92;2808:6;2800;2796:1;2791:3;2787:11;2774:41;2838:16;;2856:1;2834:24;2867:15;;;2834:24;2663:243;-1:-1:-1;;2663:243:1:o;2911:274::-;;3078:6;3072:13;3094:53;3140:6;3135:3;3128:4;3120:6;3116:17;3094:53;:::i;:::-;3163:16;;;;;3048:137;-1:-1:-1;;3048:137:1:o;3190:773::-;;3609:6;3603:13;3625:53;3671:6;3666:3;3659:4;3651:6;3647:17;3625:53;:::i;:::-;3739:8;3700:16;;;3725:23;;;3773:13;;3795:65;3773:13;3847:1;3836:13;;3829:4;3817:17;;3795:65;:::i;:::-;3927:3;3923:1;3879:20;;;;3915:10;;;3908:23;3955:1;3947:10;;3579:384;-1:-1:-1;;;;3579:384:1:o;3968:775::-;;4387:6;4381:13;4403:53;4449:6;4444:3;4437:4;4429:6;4425:17;4403:53;:::i;:::-;4517:10;4478:16;;;4503:25;;;4553:13;;4575:65;4553:13;4627:1;4616:13;;4609:4;4597:17;;4575:65;:::i;:::-;4707:3;4703:1;4659:20;;;;4695:10;;;4688:23;4735:1;4727:10;;4357:386;-1:-1:-1;;;;4357:386:1:o;4748:773::-;;5167:6;5161:13;5183:53;5229:6;5224:3;5217:4;5209:6;5205:17;5183:53;:::i;:::-;5297:8;5258:16;;;5283:23;;;5331:13;;5353:65;5331:13;5405:1;5394:13;;5387:4;5375:17;;5353:65;:::i;5526:182::-;5655:19;;;5699:2;5690:12;;5645:63::o;5713:226::-;5889:42;5877:55;;;;5859:74;;5847:2;5832:18;;5814:125::o;5944:335::-;6136:42;6205:15;;;6187:34;;6257:15;;6252:2;6237:18;;6230:43;6114:2;6099:18;;6081:198::o;6284:666::-;6615:42;6684:15;;;6666:34;;6736:15;;;6731:2;6716:18;;6709:43;6788:15;;;6783:2;6768:18;;6761:43;6840:15;;6835:2;6820:18;;6813:43;6887:3;6872:19;;6865:35;;;;6931:3;6916:19;;6909:35;;;;6592:3;6577:19;;6559:391::o;6955:398::-;7167:42;7236:15;;;7218:34;;7288:15;;;;7283:2;7268:18;;7261:43;7335:2;7320:18;;7313:34;;;;7145:2;7130:18;;7112:241::o;7358:297::-;7562:42;7550:55;;;;7532:74;;7637:2;7622:18;;7615:34;7520:2;7505:18;;7487:168::o;7660:398::-;7872:42;7941:15;;;7923:34;;7988:2;7973:18;;7966:34;;;;8036:15;;;8031:2;8016:18;;8009:43;7850:2;7835:18;;7817:241::o;8063:450::-;;8220:2;8209:9;8202:21;8259:6;8254:2;8243:9;8239:18;8232:34;8316:6;8308;8303:2;8292:9;8288:18;8275:48;8343:22;;;8367:2;8339:31;;;8332:45;;;;8429:2;8417:15;;;8434:66;8413:88;8398:104;8394:113;;8192:321;-1:-1:-1;8192:321:1:o;8518:442::-;;8667:2;8656:9;8649:21;8699:6;8693:13;8742:6;8737:2;8726:9;8722:18;8715:34;8758:66;8817:6;8812:2;8801:9;8797:18;8792:2;8784:6;8780:15;8758:66;:::i;:::-;8876:2;8864:15;8881:66;8860:88;8845:104;;;;8951:2;8841:113;;8639:321;-1:-1:-1;;8639:321:1:o;8965:345::-;9167:2;9149:21;;;9206:2;9186:18;;;9179:30;9245:23;9240:2;9225:18;;9218:51;9301:2;9286:18;;9139:171::o;9315:355::-;9517:2;9499:21;;;9556:2;9536:18;;;9529:30;9595:33;9590:2;9575:18;;9568:61;9661:2;9646:18;;9489:181::o;9675:342::-;9877:2;9859:21;;;9916:2;9896:18;;;9889:30;9955:20;9950:2;9935:18;;9928:48;10008:2;9993:18;;9849:168::o;10022:402::-;10224:2;10206:21;;;10263:2;10243:18;;;10236:30;10302:34;10297:2;10282:18;;10275:62;10373:8;10368:2;10353:18;;10346:36;10414:3;10399:19;;10196:228::o;10429:344::-;10631:2;10613:21;;;10670:2;10650:18;;;10643:30;10709:22;10704:2;10689:18;;10682:50;10764:2;10749:18;;10603:170::o;10778:344::-;10980:2;10962:21;;;11019:2;10999:18;;;10992:30;11058:22;11053:2;11038:18;;11031:50;11113:2;11098:18;;10952:170::o;11127:341::-;11329:2;11311:21;;;11368:2;11348:18;;;11341:30;11407:19;11402:2;11387:18;;11380:47;11459:2;11444:18;;11301:167::o;11473:351::-;11675:2;11657:21;;;11714:2;11694:18;;;11687:30;11753:29;11748:2;11733:18;;11726:57;11815:2;11800:18;;11647:177::o;11829:350::-;12031:2;12013:21;;;12070:2;12050:18;;;12043:30;12109:28;12104:2;12089:18;;12082:56;12170:2;12155:18;;12003:176::o;12184:356::-;12386:2;12368:21;;;12405:18;;;12398:30;12464:34;12459:2;12444:18;;12437:62;12531:2;12516:18;;12358:182::o;12545:347::-;12747:2;12729:21;;;12786:2;12766:18;;;12759:30;12825:25;12820:2;12805:18;;12798:53;12883:2;12868:18;;12719:173::o;12897:345::-;13099:2;13081:21;;;13138:2;13118:18;;;13111:30;13177:23;13172:2;13157:18;;13150:51;13233:2;13218:18;;13071:171::o;13247:399::-;13449:2;13431:21;;;13488:2;13468:18;;;13461:30;13527:34;13522:2;13507:18;;13500:62;13598:5;13593:2;13578:18;;13571:33;13636:3;13621:19;;13421:225::o;13651:400::-;13853:2;13835:21;;;13892:2;13872:18;;;13865:30;13931:34;13926:2;13911:18;;13904:62;14002:6;13997:2;13982:18;;13975:34;14041:3;14026:19;;13825:226::o;14238:592::-;;;14381:11;14368:25;14471:66;14460:8;14444:14;14440:29;14436:102;14416:18;14412:127;14402:2;;14556:4;14550;14543:18;14402:2;14586:33;;14638:20;;;-1:-1:-1;14681:18:1;14670:30;;14667:2;;;14716:4;14710;14703:18;14667:2;14752:4;14740:17;;-1:-1:-1;14783:14:1;14779:27;;;14769:38;;14766:2;;;14820:1;14817;14810:12;14766:2;14332:498;;;;;:::o;14835:258::-;14907:1;14917:113;14931:6;14928:1;14925:13;14917:113;;;15007:11;;;15001:18;14988:11;;;14981:39;14953:2;14946:10;14917:113;;;15048:6;15045:1;15042:13;15039:2;;;-1:-1:-1;;15083:1:1;15065:16;;15058:27;14888:205::o;15098:156::-;15186:42;15179:5;15175:54;15168:5;15165:65;15155:2;;15244:1;15241;15234:12;15155:2;15145:109;:::o

Swarm Source

ipfs://b35595226045d97544539f78e03481c4fad23be8e5ac73398f0678c83ab2db4e
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
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.