Contract 0x1fdc5e69729eecf8e933c904e86faf7a8886f661 1

 

Contract Overview

Balance:
0 MATIC

MATIC Value:
$0.00

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x7c69c7f479207f9f737024e3c664c5694150d7216fb136c17f7646542277f408Execute Meta Tra...238668422022-01-18 13:05:0410 mins ago0xf08d0d9698e2ffb935a436904db23ddc7717ed79 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.01857715257.6
0x105ba8c240e9327b8df0a1bef071ba2324bd6360ab0ce6f5b7f1f6a3eb6c2654Execute Meta Tra...238668332022-01-18 13:04:4611 mins ago0xdcacb14aa53e7a416d070a9de6ae6340f6814a51 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.016997290855.65
0x2201c60e0612f49b70ae7f23b50cd2955823f8d6dd6519216dbc7ece64bfde88Execute Meta Tra...238667762022-01-18 13:02:4813 mins ago0x36ca507961388641a34ffe6e91da911bc9be0925 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.0255428244568.15
0x1d62d475569bf17f6163812c2dfea600f957c8dee301622d205bf36b134697b5Execute Meta Tra...238666402022-01-18 12:58:0817 mins ago0xf59e2ffee162076e0a7b137e0a994f6f4ee9f561 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.0192219142557.75
0x1da6337dd2066c404b53f40cc8c667754a10173ac7cf36ec1ee84c8de05cd5dfExecute Meta Tra...238666182022-01-18 12:57:2018 mins ago0xbc6c2d12f7d986dd551a6b28a547dc2a0319a3f7 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.019512028856.1
0xb9eb87aded48cd187033440abfbc96e5ea1887ea3a5b731d4605e7075d85a93bExecute Meta Tra...238665692022-01-18 12:55:4220 mins ago0xb5e8094db2d7b859834ab1cf14c8721053fca1fd IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.017319968453.7
0xa1752ec50548f71b6d2d974a5bb28e71ab41566efaa5463c56046d16d458c7f0Execute Meta Tra...238664332022-01-18 12:50:5924 mins ago0xac7cefbbe5309999d0ed4ca5e16999a9680a5e79 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.020589745364.85
0x92a7aaa30449840836654772593b557a4491d91fa076974e1b571d405f06b047Execute Meta Tra...238662412022-01-18 12:44:1931 mins ago0xf0938ee70aeab854b09cca31eac9f056b73a87ee IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.017094177653.65
0xaa04fd9aebbcfa1ea8efcd0db896c81ef992c389bd5b2091f0dde16599a50d92Execute Meta Tra...238662152022-01-18 12:43:2332 mins ago0xe6f7e0add15c665f5ac2b0eedfd2e8578ef2bf8a IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.018252634450.6
0xb28222844d385199c5db3ad7eff68bc0d0d64ac659806114a046edd13339053eExecute Meta Tra...238661162022-01-18 12:40:0135 mins ago0x2291a89ec12b293842d999332332c418972e6422 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.0174168148552.05
0xf55c09345fff7ee320a16356db7553486f4fe34247c34404e3786955faa0df7eExecute Meta Tra...238660882022-01-18 12:38:5737 mins ago0x05b3ce593bd2f01fff90fc70fb046a8145367535 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.019513921856.15
0x9844227742148a611ba4322ded48596460ad5370432cedb70fb0ff73c13e5c13Execute Meta Tra...238659562022-01-18 12:34:2541 mins ago0x6080303e9baf908fcdc8153998c1a0a9beb472b0 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.021529607461.95
0x68d4635ef5a870de10b3f6b9a7fa2ef25c36386cbacaab971a1c85ef5a83462dExecute Meta Tra...238659422022-01-18 12:33:5742 mins ago0xf59e2ffee162076e0a7b137e0a994f6f4ee9f561 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.01768590257.85
0x3a0e985cacf3b26bb33cdfedc0a4e6eb36923cd86e4c2a3dd992f929f2830cb9Execute Meta Tra...238659152022-01-18 12:32:5942 mins ago0x6045d77812a0a3f70bd60490e1d0705245a3fb09 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.017874918656.1
0x49c3d5976b3af1ec8c3552c0ce58f376aff9fe79fd19f00c397620fa79085975Execute Meta Tra...238658952022-01-18 12:32:1943 mins ago0xa5656f99ce331cdac81d5164fe3e2be401f8aecc IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.0202708777560.75
0xe0985d07fcf1740a3d49e5ecbc409201e669486beae94167c6b19820f3cf3239Execute Meta Tra...238658942022-01-18 12:32:1743 mins ago0x961e02f4c8688282961baaf1c692d8e6dad27146 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.01857297660.75
0x5753a52bb7d63fdb66c28444a54eae9c1a982f0aa0f0b3d88399ecef57cff9ceExecute Meta Tra...238658712022-01-18 12:31:3144 mins ago0xe543bf3a1d54a73423d68814b720e65d0ddd203f IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.020056391760.1
0xa180e46867dfdb5a588b9853336b68f33d30d2e4369b851cad492691cb5d9513Execute Meta Tra...238658602022-01-18 12:31:0944 mins ago0x2255dff0d9e9179376db87d28f2a631089f14754 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.01857127560.75
0x327ce879c74428e48ec9e5b917dcdaece547277afc066bb6f7923824ae448175Execute Meta Tra...238658482022-01-18 12:30:4145 mins ago0x2ffca90341e2c2b5b331724874af773a10819556 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.025186207261.6
0x7f61e96dc222303ec9ddfd94081673bb67fd8d74e7e0e31fead7b6412446bd19Execute Meta Tra...238658322022-01-18 12:30:0945 mins ago0x2b9278992af5b23a2b475d23de607a2334f75d4a IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.019475953263.9
0x6a661f14ee9bc07080a6fde616a3401097725454d305deddad33645562e75fb7Execute Meta Tra...238658282022-01-18 12:30:0145 mins ago0x9e9b3efe48c99bdd7bce52e6e54893f6a7b5a718 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.019322798463.4
0x940dbe48b0be44061264d05d62e2de43dc8fb04a17395c6d0d68882d5daabe81Execute Meta Tra...238658242022-01-18 12:29:5346 mins ago0x4bd29c4fa03820d09126b7b984b5a53f719b41be IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.0242149387562.25
0xe5747e9e436ad6495285092b5d5f2a57e589a1252d9a87e417e2e68e7995fc6cExecute Meta Tra...238658172022-01-18 12:29:3946 mins ago0xbcb0cc4518387170b42649e77d9091f388494a31 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.0274646949562.65
0xd7dfbbed9214da4f391147ffc94dc7d31c61d001ba1e606fba7ea167b90d9c9cExecute Meta Tra...238658032022-01-18 12:29:1146 mins ago0xdac09cf80427e7601e768b36ce24c022f346f0de IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.01896744462.05
0xb9785c40d53427d5ce9aac973f6ad8081ae52fb23c5eb52d4e92720ffa6d53e6Execute Meta Tra...238657862022-01-18 12:28:3347 mins ago0x40726df4a24ad3def59f33763242875c82df7845 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.0246750631561.45
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x7c69c7f479207f9f737024e3c664c5694150d7216fb136c17f7646542277f408238668422022-01-18 13:05:0410 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610xab54b51cee4df20bd463e4db49de198600df9eb85.049790603124798996 MATIC
0x7c69c7f479207f9f737024e3c664c5694150d7216fb136c17f7646542277f408238668422022-01-18 13:05:0410 mins ago 0xdb6f1920a889355780af7570773609bd8cb1f498 0x1fdc5e69729eecf8e933c904e86faf7a8886f6615.049790603124798996 MATIC
0x105ba8c240e9327b8df0a1bef071ba2324bd6360ab0ce6f5b7f1f6a3eb6c2654238668332022-01-18 13:04:4611 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610x7a4e6a63963d5d09c7ceeab1ed3789a8fcc0f3111.01061008529374951 MATIC
0x105ba8c240e9327b8df0a1bef071ba2324bd6360ab0ce6f5b7f1f6a3eb6c2654238668332022-01-18 13:04:4611 mins ago 0xdb6f1920a889355780af7570773609bd8cb1f498 0x1fdc5e69729eecf8e933c904e86faf7a8886f6611.01061008529374951 MATIC
0x2201c60e0612f49b70ae7f23b50cd2955823f8d6dd6519216dbc7ece64bfde88238667762022-01-18 13:02:4813 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610x35513420e34fd17d8806dbef0c0077045742f41a1.010001103006314249 MATIC
0x2201c60e0612f49b70ae7f23b50cd2955823f8d6dd6519216dbc7ece64bfde88238667762022-01-18 13:02:4813 mins ago 0xdb6f1920a889355780af7570773609bd8cb1f498 0x1fdc5e69729eecf8e933c904e86faf7a8886f6611.010001103006314249 MATIC
0x1d62d475569bf17f6163812c2dfea600f957c8dee301622d205bf36b134697b5238666402022-01-18 12:58:0817 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610xb7253c89763ed8cefbfc1139d3f0fb7be249d87b1.009999673391528181 MATIC
0x1d62d475569bf17f6163812c2dfea600f957c8dee301622d205bf36b134697b5238666402022-01-18 12:58:0817 mins ago 0xdb6f1920a889355780af7570773609bd8cb1f498 0x1fdc5e69729eecf8e933c904e86faf7a8886f6611.009999673391528181 MATIC
0x1da6337dd2066c404b53f40cc8c667754a10173ac7cf36ec1ee84c8de05cd5df238666182022-01-18 12:57:2018 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610x58b4081258d5a7d3df73d46b5e1adf2d513479ea2.322999994967117283 MATIC
0x1da6337dd2066c404b53f40cc8c667754a10173ac7cf36ec1ee84c8de05cd5df238666182022-01-18 12:57:2018 mins ago 0xdb6f1920a889355780af7570773609bd8cb1f498 0x1fdc5e69729eecf8e933c904e86faf7a8886f6612.322999994967117283 MATIC
0xb9eb87aded48cd187033440abfbc96e5ea1887ea3a5b731d4605e7075d85a93b238665692022-01-18 12:55:4220 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610x5c58b09c13809a4d86d0d1e2a2223df49117ddf31.009163809396117381 MATIC
0xb9eb87aded48cd187033440abfbc96e5ea1887ea3a5b731d4605e7075d85a93b238665692022-01-18 12:55:4220 mins ago 0xdb6f1920a889355780af7570773609bd8cb1f498 0x1fdc5e69729eecf8e933c904e86faf7a8886f6611.009163809396117381 MATIC
0xa1752ec50548f71b6d2d974a5bb28e71ab41566efaa5463c56046d16d458c7f0238664332022-01-18 12:50:5924 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610xf46e22e775e1474ff35ce54432027bd61ce933961.009999931373993224 MATIC
0xa1752ec50548f71b6d2d974a5bb28e71ab41566efaa5463c56046d16d458c7f0238664332022-01-18 12:50:5924 mins ago 0xdb6f1920a889355780af7570773609bd8cb1f498 0x1fdc5e69729eecf8e933c904e86faf7a8886f6611.009999931373993224 MATIC
0x92a7aaa30449840836654772593b557a4491d91fa076974e1b571d405f06b047238662412022-01-18 12:44:1931 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610xd5ce01c2bf02121b5c2b55e73fe0a25c8f3e25499.393000358289293887 MATIC
0x92a7aaa30449840836654772593b557a4491d91fa076974e1b571d405f06b047238662412022-01-18 12:44:1931 mins ago 0xdb6f1920a889355780af7570773609bd8cb1f498 0x1fdc5e69729eecf8e933c904e86faf7a8886f6619.393000358289293887 MATIC
0xaa04fd9aebbcfa1ea8efcd0db896c81ef992c389bd5b2091f0dde16599a50d92238662152022-01-18 12:43:2332 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610xd5ce01c2bf02121b5c2b55e73fe0a25c8f3e254910.100000596275632645 MATIC
0xaa04fd9aebbcfa1ea8efcd0db896c81ef992c389bd5b2091f0dde16599a50d92238662152022-01-18 12:43:2332 mins ago 0xdb6f1920a889355780af7570773609bd8cb1f498 0x1fdc5e69729eecf8e933c904e86faf7a8886f66110.100000596275632645 MATIC
0xb28222844d385199c5db3ad7eff68bc0d0d64ac659806114a046edd13339053e238661162022-01-18 12:40:0135 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610x892748b17ebacb5d1310f9c9877bd2211e3ca40b2.92899780836266935 MATIC
0xb28222844d385199c5db3ad7eff68bc0d0d64ac659806114a046edd13339053e238661162022-01-18 12:40:0135 mins ago 0xdb6f1920a889355780af7570773609bd8cb1f498 0x1fdc5e69729eecf8e933c904e86faf7a8886f6612.92899780836266935 MATIC
0xf55c09345fff7ee320a16356db7553486f4fe34247c34404e3786955faa0df7e238660882022-01-18 12:38:5737 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610x94561a2b0b495c11ec13f0afcf6fe321a12c889b1.009598596600231109 MATIC
0xf55c09345fff7ee320a16356db7553486f4fe34247c34404e3786955faa0df7e238660882022-01-18 12:38:5737 mins ago 0xdb6f1920a889355780af7570773609bd8cb1f498 0x1fdc5e69729eecf8e933c904e86faf7a8886f6611.009598596600231109 MATIC
0x9844227742148a611ba4322ded48596460ad5370432cedb70fb0ff73c13e5c13238659562022-01-18 12:34:2541 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610xc1a06fde8953c08ef4319b50c87a21c0d709b24e1.009999784878632496 MATIC
0x9844227742148a611ba4322ded48596460ad5370432cedb70fb0ff73c13e5c13238659562022-01-18 12:34:2541 mins ago 0xdb6f1920a889355780af7570773609bd8cb1f498 0x1fdc5e69729eecf8e933c904e86faf7a8886f6611.009999784878632496 MATIC
0x68d4635ef5a870de10b3f6b9a7fa2ef25c36386cbacaab971a1c85ef5a83462d238659422022-01-18 12:33:5742 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610xb2baf8333198274a8660e43218763c3b9f8323ac20.197465441401153209 MATIC
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GasSwap

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 999 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 3: GasSwap.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.6;

import "./EIP712MetaTransaction.sol";

struct Transformation {
    uint32 _uint32;
    bytes _bytes;
}

interface IERC20 {
    function approve(address spender, uint256 amount) external returns (bool);
    function transfer(address to, uint256 amount) external returns (bool);
    function transferFrom(address from, address to, uint256 amount) external returns (bool);
}

contract GasSwap is EIP712MetaTransaction("GasSwap", "2") {
    address public owner;
    address public authorizedTarget;

    constructor() {
        owner = msg.sender;
        authorizedTarget = 0xDef1C0ded9bec7F1a1670819833240f027b25EfF;
    }

    modifier onlyOwner() {
        require(msg.sender == owner, "ONLY_OWNER");
        _;
    }

    receive() external payable {
        require(isContract(msgSender()), "REVERT_EOA_DEPOSIT");
    }

    function changeOwner(address newOwner)
        external
        onlyOwner
    {
        owner = newOwner;
    }

    function changeTarget(address newTarget)
        external
        onlyOwner
    {
        require(isContract(newTarget), "NO_CONTRACT_AT_ADDRESS");
        authorizedTarget = newTarget;
    }

    function withdrawToken(IERC20 token, uint256 amount)
        external
        onlyOwner
    {
        require(token.transfer(msg.sender, amount));
    }

    // Transfer ETH held by this contract to the sender/owner.
    function withdrawETH(uint256 amount)
        external
        onlyOwner
    {
        payable(msg.sender).transfer(amount);
    }

    // Swaps ERC20->MATIC tokens held by this contract using a 0x-API quote.
    function fillQuote(address spender, bytes calldata swapCallData) external returns (uint256)
    {
        (address inputToken,address outputToken,uint256 inputAmount,uint256 minOutputAmount,) = abi.decode(swapCallData[4:], (address,address,uint256,uint256,Transformation[]));
        require(outputToken == 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE, "INVALID_OUTPUT_TOKEN");
        IERC20 sellToken = IERC20(inputToken);
        require(sellToken.transferFrom(msgSender(), address(this), inputAmount), "TRANSFER_FAILED");
        require(sellToken.approve(spender, uint256(0)), "APPROVAL_WIPE_FAILED");
        require(sellToken.approve(spender, inputAmount), "REAPPROVAL_FAILED");
        (bool success, bytes memory res) = authorizedTarget.call(swapCallData);
        require(success, string(concat(bytes("SWAP_FAILED: "),bytes(getRevertMsg(res)))));
        uint256 outputTokenAmount = abi.decode(res, (uint256));
        require(outputTokenAmount >= minOutputAmount, "SWAP_VALUE_MISMATCH");
        payable(msgSender()).transfer(outputTokenAmount);
        return outputTokenAmount;
    }

    function isContract(address account) internal view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function concat(bytes memory a, bytes memory b) internal pure returns (bytes memory) {
        return abi.encodePacked(a, b);
    }

    function getRevertMsg(bytes memory _returnData) internal pure returns (string memory) {
        if (_returnData.length < 68)
            return "Transaction reverted silently";

        assembly {
            _returnData := add(_returnData, 0x04)
        }

        return abi.decode(_returnData, (string));
    }
}

File 2 of 3: EIP712Base.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.6;

contract EIP712Base {

    struct EIP712Domain {
        string name;
        string version;
        address verifyingContract;
        bytes32 salt;
    }

    bytes32 internal constant EIP712_DOMAIN_TYPEHASH = keccak256(bytes("EIP712Domain(string name,string version,address verifyingContract,bytes32 salt)"));

    bytes32 internal domainSeparator;

    constructor(string memory name, string memory version) {
        domainSeparator = keccak256(abi.encode(
            EIP712_DOMAIN_TYPEHASH,
            keccak256(bytes(name)),
            keccak256(bytes(version)),
            address(this),
            bytes32(getChainID())
        ));
    }

    function getChainID() internal view returns (uint256 id) {
        assembly {
            id := chainid()
        }
    }

    function getDomainSeparator() private view returns(bytes32) {
        return domainSeparator;
    }

    /**
    * Accept message hash and returns hash message in EIP712 compatible form
    * So that it can be used to recover signer from signature signed using EIP712 formatted data
    * https://eips.ethereum.org/EIPS/eip-712
    * "\\x19" makes the encoding deterministic
    * "\\x01" is the version byte to make it compatible to EIP-191
    */
    function toTypedMessageHash(bytes32 messageHash) internal view returns(bytes32) {
        return keccak256(abi.encodePacked("\x19\x01", getDomainSeparator(), messageHash));
    }

}

File 3 of 3: EIP712MetaTransaction.sol
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.6;

import "./EIP712Base.sol";

contract EIP712MetaTransaction is EIP712Base {
    bytes32 private constant META_TRANSACTION_TYPEHASH = keccak256(bytes("MetaTransaction(uint256 nonce,address from,bytes functionSignature)"));

    event MetaTransactionExecuted(address userAddress, address payable relayerAddress, bytes functionSignature);
    mapping(address => uint256) private nonces;

    /*
     * Meta transaction structure.
     * No point of including value field here as if user is doing value transfer then he has the funds to pay for gas
     * He should call the desired function directly in that case.
     */
    struct MetaTransaction {
        uint256 nonce;
        address from;
        bytes functionSignature;
    }

    constructor(string memory name, string memory version) EIP712Base(name, version) {}

    function convertBytesToBytes4(bytes memory inBytes) internal pure returns (bytes4 outBytes4) {
        if (inBytes.length == 0) {
            return 0x0;
        }

        assembly {
            outBytes4 := mload(add(inBytes, 32))
        }
    }

    function executeMetaTransaction(address userAddress,
        bytes memory functionSignature, bytes32 sigR, bytes32 sigS, uint8 sigV) public payable returns(bytes memory) {
        bytes4 destinationFunctionSig = convertBytesToBytes4(functionSignature);
        require(destinationFunctionSig != msg.sig, "functionSignature can not be of executeMetaTransaction method");
        MetaTransaction memory metaTx = MetaTransaction({
            nonce: nonces[userAddress],
            from: userAddress,
            functionSignature: functionSignature
        });
        require(verify(userAddress, metaTx, sigR, sigS, sigV), "Signer and signature do not match");
        nonces[userAddress] += 1;
        // Append userAddress at the end to extract it from calling context
        (bool success, bytes memory returnData) = address(this).call(abi.encodePacked(functionSignature, userAddress));

        require(success, "Function call not successful");
        emit MetaTransactionExecuted(userAddress, payable(msg.sender), functionSignature);
        return returnData;
    }

    function hashMetaTransaction(MetaTransaction memory metaTx) internal pure returns (bytes32) {
        return keccak256(abi.encode(
            META_TRANSACTION_TYPEHASH,
            metaTx.nonce,
            metaTx.from,
            keccak256(metaTx.functionSignature)
        ));
    }

    function getNonce(address user) external view returns(uint256 nonce) {
        nonce = nonces[user];
    }

    function verify(address user, MetaTransaction memory metaTx, bytes32 sigR, bytes32 sigS, uint8 sigV) internal view returns (bool) {
        address signer = ecrecover(toTypedMessageHash(hashMetaTransaction(metaTx)), sigV, sigR, sigS);
        require(signer != address(0), "Invalid signature");
        return signer == user;
    }

    function msgSender() internal view returns(address sender) {
        if(msg.sender == address(this)) {
            bytes memory array = msg.data;
            uint256 index = msg.data.length;
            assembly {
                // Load the 32 bytes word from memory with the address on the lower 20 bytes, and mask those.
                sender := and(mload(add(array, index)), 0xffffffffffffffffffffffffffffffffffffffff)
            }
        } else {
            sender = msg.sender;
        }
        return sender;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"address payable","name":"relayerAddress","type":"address"},{"indexed":false,"internalType":"bytes","name":"functionSignature","type":"bytes"}],"name":"MetaTransactionExecuted","type":"event"},{"inputs":[],"name":"authorizedTarget","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTarget","type":"address"}],"name":"changeTarget","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"bytes","name":"functionSignature","type":"bytes"},{"internalType":"bytes32","name":"sigR","type":"bytes32"},{"internalType":"bytes32","name":"sigS","type":"bytes32"},{"internalType":"uint8","name":"sigV","type":"uint8"}],"name":"executeMetaTransaction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"bytes","name":"swapCallData","type":"bytes"}],"name":"fillQuote","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getNonce","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405234801561001057600080fd5b50604051806040016040528060078152602001660476173537761760cc1b815250604051806040016040528060018152602001601960f91b81525081816040518060800160405280604f81526020016116db604f913980519060200120828051906020012082805190602001203061008c61011560201b60201c565b60408051602081019690965285019390935260608401919091526001600160a01b0316608083015260a082015260c00160408051601f1981840301815291905280516020909101206000555050600280546001600160a01b031990811633179091556003805490911673def1c0ded9bec7f1a1670819833240f027b25eff179055506101199050565b4690565b6115b3806101286000396000f3fe60806040526004361061009a5760003560e01c80638da5cb5b11610069578063a6f9dae11161004e578063a6f9dae114610209578063dcf7bb5c14610229578063f14210a61461024957600080fd5b80638da5cb5b146101c95780639e281a98146101e957600080fd5b806303e7c56b146101085780630c53c51c146101455780632d0335ab1461016557806370ca1d14146101a957600080fd5b36610103576100b06100aa610269565b3b151590565b6101015760405162461bcd60e51b815260206004820152601260248201527f5245564552545f454f415f4445504f534954000000000000000000000000000060448201526064015b60405180910390fd5b005b600080fd5b34801561011457600080fd5b50600354610128906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b610158610153366004611198565b6102c6565b60405161013c91906113f7565b34801561017157600080fd5b5061019b610180366004610f6f565b6001600160a01b031660009081526001602052604090205490565b60405190815260200161013c565b3480156101b557600080fd5b5061019b6101c4366004611113565b610562565b3480156101d557600080fd5b50600254610128906001600160a01b031681565b3480156101f557600080fd5b50610101610204366004611238565b610a28565b34801561021557600080fd5b50610101610224366004610f6f565b610b15565b34801561023557600080fd5b50610101610244366004610f6f565b610b8b565b34801561025557600080fd5b506101016102643660046112db565b610c4f565b6000333014156102c057600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b031691506102c39050565b50335b90565b606060006102d386610cc3565b90506000357fffffffff0000000000000000000000000000000000000000000000000000000090811690821614156103735760405162461bcd60e51b815260206004820152603d60248201527f66756e6374696f6e5369676e61747572652063616e206e6f74206265206f662060448201527f657865637574654d6574615472616e73616374696f6e206d6574686f6400000060648201526084016100f8565b604080516060810182526001600160a01b038916600081815260016020908152908490205483528201529081018790526103b08882888888610cdf565b6104225760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d61746360448201527f680000000000000000000000000000000000000000000000000000000000000060648201526084016100f8565b6001600160a01b0388166000908152600160208190526040822080549192909161044d9084906114b6565b90915550506040516000908190309061046c908b908d90602001611365565b60408051601f198184030181529082905261048691611349565b6000604051808303816000865af19150503d80600081146104c3576040519150601f19603f3d011682016040523d82523d6000602084013e6104c8565b606091505b50915091508161051a5760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c0000000060448201526064016100f8565b7f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b8a338b60405161054d939291906113cb565b60405180910390a19998505050505050505050565b600080808080610575866004818a61148c565b8101906105829190610f93565b509350935093509350826001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b0316146106005760405162461bcd60e51b815260206004820152601460248201527f494e56414c49445f4f55545055545f544f4b454e00000000000000000000000060448201526064016100f8565b836001600160a01b0381166323b872dd610618610269565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b03909116600482015230602482015260448101869052606401602060405180830381600087803b15801561067e57600080fd5b505af1158015610692573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b69190611216565b6107025760405162461bcd60e51b815260206004820152600f60248201527f5452414e534645525f4641494c4544000000000000000000000000000000000060448201526064016100f8565b60405163095ea7b360e01b81526001600160a01b038a811660048301526000602483015282169063095ea7b390604401602060405180830381600087803b15801561074c57600080fd5b505af1158015610760573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107849190611216565b6107d05760405162461bcd60e51b815260206004820152601460248201527f415050524f56414c5f574950455f4641494c454400000000000000000000000060448201526064016100f8565b60405163095ea7b360e01b81526001600160a01b038a811660048301526024820185905282169063095ea7b390604401602060405180830381600087803b15801561081a57600080fd5b505af115801561082e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108529190611216565b61089e5760405162461bcd60e51b815260206004820152601160248201527f5245415050524f56414c5f4641494c454400000000000000000000000000000060448201526064016100f8565b60035460405160009182916001600160a01b03909116906108c2908c908c90611339565b6000604051808303816000865af19150503d80600081146108ff576040519150601f19603f3d011682016040523d82523d6000602084013e610904565b606091505b5091509150816109516040518060400160405280600d81526020017f535741505f4641494c45443a200000000000000000000000000000000000000081525061094c84610dc7565b610e2c565b9061096f5760405162461bcd60e51b81526004016100f891906113f7565b5060008180602001905181019061098691906112f4565b9050848110156109d85760405162461bcd60e51b815260206004820152601360248201527f535741505f56414c55455f4d49534d415443480000000000000000000000000060448201526064016100f8565b6109e0610269565b6001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610a18573d6000803e3d6000fd5b509b9a5050505050505050505050565b6002546001600160a01b03163314610a6f5760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b60448201526064016100f8565b6040517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018290526001600160a01b0383169063a9059cbb90604401602060405180830381600087803b158015610ad057600080fd5b505af1158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b089190611216565b610b1157600080fd5b5050565b6002546001600160a01b03163314610b5c5760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b60448201526064016100f8565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6002546001600160a01b03163314610bd25760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b60448201526064016100f8565b803b610c205760405162461bcd60e51b815260206004820152601660248201527f4e4f5f434f4e54524143545f41545f414444524553530000000000000000000060448201526064016100f8565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6002546001600160a01b03163314610c965760405162461bcd60e51b815260206004820152600a60248201526927a7262cafa7aba722a960b11b60448201526064016100f8565b604051339082156108fc029083906000818181858888f19350505050158015610b11573d6000803e3d6000fd5b6000815160001415610cd757506000919050565b506020015190565b6000806001610cf5610cf088610e58565b610ed5565b6040805160008152602081018083529290925260ff861690820152606081018790526080810186905260a0016020604051602081039080840390855afa158015610d43573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610da65760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e617475726500000000000000000000000000000060448201526064016100f8565b866001600160a01b0316816001600160a01b03161491505095945050505050565b6060604482511015610e0c57505060408051808201909152601d81527f5472616e73616374696f6e2072657665727465642073696c656e746c79000000602082015290565b60048201915081806020019051810190610e269190611264565b92915050565b60608282604051602001610e4192919061139c565b604051602081830303815290604052905092915050565b600060405180608001604052806043815260200161153b6043913980516020918201208351848301516040808701518051908601209051610eb8950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b600080546040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281019190915260428101839052606201610eb8565b600082601f830112610f2a57600080fd5b8135610f3d610f3882611464565b611433565b818152846020838601011115610f5257600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215610f8157600080fd5b8135610f8c81611522565b9392505050565b600080600080600060a08688031215610fab57600080fd5b610fb58635611522565b85359450610fc66020870135611522565b60208601359350604086013592506060860135915067ffffffffffffffff60808701351115610ff457600080fd5b6080860135860187601f82011261100a57600080fd5b67ffffffffffffffff813511156110235761102361150c565b6110336020823560051b01611433565b8082358252602082019150602083018a6020853560051b860101111561105857600080fd5b60005b84358110156111015767ffffffffffffffff8235111561107a57600080fd5b813585016040818e03601f1901121561109257600080fd5b61109a61140a565b602082013563ffffffff8116146110b057600080fd5b6020820135815267ffffffffffffffff604083013511156110d057600080fd5b6110e38e60206040850135850101610f19565b6020828101919091529086529485019492909201915060010161105b565b50508093505050509295509295909350565b60008060006040848603121561112857600080fd5b833561113381611522565b9250602084013567ffffffffffffffff8082111561115057600080fd5b818601915086601f83011261116457600080fd5b81358181111561117357600080fd5b87602082850101111561118557600080fd5b6020830194508093505050509250925092565b600080600080600060a086880312156111b057600080fd5b85356111bb81611522565b9450602086013567ffffffffffffffff8111156111d757600080fd5b6111e388828901610f19565b9450506040860135925060608601359150608086013560ff8116811461120857600080fd5b809150509295509295909350565b60006020828403121561122857600080fd5b81518015158114610f8c57600080fd5b6000806040838503121561124b57600080fd5b823561125681611522565b946020939093013593505050565b60006020828403121561127657600080fd5b815167ffffffffffffffff81111561128d57600080fd5b8201601f8101841361129e57600080fd5b80516112ac610f3882611464565b8181528560208385010111156112c157600080fd5b6112d28260208301602086016114dc565b95945050505050565b6000602082840312156112ed57600080fd5b5035919050565b60006020828403121561130657600080fd5b5051919050565b600081518084526113258160208601602086016114dc565b601f01601f19169290920160200192915050565b8183823760009101908152919050565b6000825161135b8184602087016114dc565b9190910192915050565b600083516113778184602088016114dc565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b600083516113ae8184602088016114dc565b8351908301906113c28183602088016114dc565b01949350505050565b60006001600160a01b038086168352808516602084015250606060408301526112d2606083018461130d565b602081526000610f8c602083018461130d565b6040805190810167ffffffffffffffff8111828210171561142d5761142d61150c565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561145c5761145c61150c565b604052919050565b600067ffffffffffffffff82111561147e5761147e61150c565b50601f01601f191660200190565b6000808585111561149c57600080fd5b838611156114a957600080fd5b5050820193919092039150565b600082198211156114d757634e487b7160e01b600052601160045260246000fd5b500190565b60005b838110156114f75781810151838201526020016114df565b83811115611506576000848401525b50505050565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461153757600080fd5b5056fe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529a264697066735822122071ed022bfcffe48993c4c21687711f39a825625503c465072af9768cc9db437464736f6c63430008060033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c7429

Deployed ByteCode Sourcemap

430:2950:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;826:23;837:11;:9;:11::i;:::-;2861:20;2907:8;;;2732:190;826:23;818:54;;;;-1:-1:-1;;;818:54:2;;14170:2:3;818:54:2;;;14152:21:3;14209:2;14189:18;;;14182:30;14248:20;14228:18;;;14221:48;14286:18;;818:54:2;;;;;;;;;430:2950;;;;;520:31;;;;;;;;;;-1:-1:-1;520:31:2;;;;-1:-1:-1;;;;;520:31:2;;;;;;-1:-1:-1;;;;;8167:55:3;;;8149:74;;8137:2;8122:18;520:31:2;;;;;;;;1135:1073:1;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2506:106::-;;;;;;;;;;-1:-1:-1;2506:106:1;;;;;:::i;:::-;-1:-1:-1;;;;;2593:12:1;2560:13;2593:12;;;:6;:12;;;;;;;2506:106;;;;15146:25:3;;;15134:2;15119:18;2506:106:1;15101:76:3;1632:1094:2;;;;;;;;;;-1:-1:-1;1632:1094:2;;;;;:::i;:::-;;:::i;494:20::-;;;;;;;;;;-1:-1:-1;494:20:2;;;;-1:-1:-1;;;;;494:20:2;;;1199:152;;;;;;;;;;-1:-1:-1;1199:152:2;;;;;:::i;:::-;;:::i;885:111::-;;;;;;;;;;-1:-1:-1;885:111:2;;;;;:::i;:::-;;:::i;1002:191::-;;;;;;;;;;-1:-1:-1;1002:191:2;;;;;:::i;:::-;;:::i;1420:129::-;;;;;;;;;;-1:-1:-1;1420:129:2;;;;;:::i;:::-;;:::i;2955:526:1:-;2998:14;3027:10;3049:4;3027:27;3024:428;;;3070:18;3091:8;;3070:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;3129:8:1;3315:17;3309:24;-1:-1:-1;;;;;3305:73:1;;-1:-1:-1;3024:428:1;;-1:-1:-1;3024:428:1;;-1:-1:-1;3431:10:1;3024:428;2955:526;:::o;1135:1073::-;1291:12;1315:29;1347:39;1368:17;1347:20;:39::i;:::-;1315:71;-1:-1:-1;1430:7:1;;;;;;1404:33;;;;;1396:107;;;;-1:-1:-1;;;1396:107:1;;11251:2:3;1396:107:1;;;11233:21:3;11290:2;11270:18;;;11263:30;11329:34;11309:18;;;11302:62;11400:31;11380:18;;;11373:59;11449:19;;1396:107:1;11223:251:3;1396:107:1;1545:148;;;;;;;;-1:-1:-1;;;;;1582:19:1;;1513:29;1582:19;;;:6;:19;;;;;;;;;1545:148;;;;;;;;;;;1711:45;1589:11;1545:148;1739:4;1745;1751;1711:6;:45::i;:::-;1703:91;;;;-1:-1:-1;;;1703:91:1;;13768:2:3;1703:91:1;;;13750:21:3;13807:2;13787:18;;;13780:30;13846:34;13826:18;;;13819:62;13917:3;13897:18;;;13890:31;13938:19;;1703:91:1;13740:223:3;1703:91:1;-1:-1:-1;;;;;1804:19:1;;;;;;1827:1;1804:19;;;;;;;:24;;1827:1;;1804:19;;:24;;1827:1;;1804:24;:::i;:::-;;;;-1:-1:-1;;1975:48:1;;1915:12;;;;1964:4;;1975:48;;1992:17;;2011:11;;1975:48;;;:::i;:::-;;;;-1:-1:-1;;1975:48:1;;;;;;;;;;1956:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1914:110;;;;2043:7;2035:48;;;;-1:-1:-1;;;2035:48:1;;10894:2:3;2035:48:1;;;10876:21:3;10933:2;10913:18;;;10906:30;10972;10952:18;;;10945:58;11020:18;;2035:48:1;10866:178:3;2035:48:1;2098:76;2122:11;2143:10;2156:17;2098:76;;;;;;;;:::i;:::-;;;;;;;;2191:10;1135:1073;-1:-1:-1;;;;;;;;;1135:1073:1:o;1632:1094:2:-;1715:7;;;;;1837:16;:12;1850:1;1837:12;;:16;:::i;:::-;1826:80;;;;;;;:::i;:::-;1738:168;;;;;;;;;1924:11;-1:-1:-1;;;;;1924:57:2;1939:42;-1:-1:-1;;;;;1924:57:2;;1916:90;;;;-1:-1:-1;;;1916:90:2;;11681:2:3;1916:90:2;;;11663:21:3;11720:2;11700:18;;;11693:30;11759:22;11739:18;;;11732:50;11799:18;;1916:90:2;11653:170:3;1916:90:2;2042:10;-1:-1:-1;;;;;2071:22:2;;;2094:11;:9;:11::i;:::-;2071:63;;;;;;;;;;-1:-1:-1;;;;;8974:15:3;;;2071:63:2;;;8956:34:3;2115:4:2;9006:18:3;;;8999:43;9058:18;;;9051:34;;;8868:18;;2071:63:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2063:91;;;;-1:-1:-1;;;2063:91:2;;13424:2:3;2063:91:2;;;13406:21:3;13463:2;13443:18;;;13436:30;13502:17;13482:18;;;13475:45;13537:18;;2063:91:2;13396:165:3;2063:91:2;2172:38;;-1:-1:-1;;;2172:38:2;;-1:-1:-1;;;;;9288:55:3;;;2172:38:2;;;9270:74:3;2207:1:2;9360:18:3;;;9353:34;2172:17:2;;;;;9243:18:3;;2172:38:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2164:71;;;;-1:-1:-1;;;2164:71:2;;13075:2:3;2164:71:2;;;13057:21:3;13114:2;13094:18;;;13087:30;13153:22;13133:18;;;13126:50;13193:18;;2164:71:2;13047:170:3;2164:71:2;2253:39;;-1:-1:-1;;;2253:39:2;;-1:-1:-1;;;;;9288:55:3;;;2253:39:2;;;9270:74:3;9360:18;;;9353:34;;;2253:17:2;;;;;9243:18:3;;2253:39:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2245:69;;;;-1:-1:-1;;;2245:69:2;;14517:2:3;2245:69:2;;;14499:21:3;14556:2;14536:18;;;14529:30;14595:19;14575:18;;;14568:47;14632:18;;2245:69:2;14489:167:3;2245:69:2;2359:16;;:35;;2325:12;;;;-1:-1:-1;;;;;2359:16:2;;;;:35;;2381:12;;;;2359:35;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2324:70;;;;2412:7;2428:55;2435:22;;;;;;;;;;;;;;;;;2464:17;2477:3;2464:12;:17::i;:::-;2428:6;:55::i;:::-;2404:81;;;;;-1:-1:-1;;;2404:81:2;;;;;;;;:::i;:::-;;2495:25;2534:3;2523:26;;;;;;;;;;;;:::i;:::-;2495:54;;2588:15;2567:17;:36;;2559:68;;;;-1:-1:-1;;;2559:68:2;;12376:2:3;2559:68:2;;;12358:21:3;12415:2;12395:18;;;12388:30;12454:21;12434:18;;;12427:49;12493:18;;2559:68:2;12348:169:3;2559:68:2;2645:11;:9;:11::i;:::-;-1:-1:-1;;;;;2637:29:2;:48;2667:17;2637:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2702:17:2;1632:1094;-1:-1:-1;;;;;;;;;;;1632:1094:2:o;1199:152::-;737:5;;-1:-1:-1;;;;;737:5:2;723:10;:19;715:42;;;;-1:-1:-1;;;715:42:2;;14863:2:3;715:42:2;;;14845:21:3;14902:2;14882:18;;;14875:30;-1:-1:-1;;;14921:18:3;;;14914:40;14971:18;;715:42:2;14835:160:3;715:42:2;1309:34:::1;::::0;;;;1324:10:::1;1309:34;::::0;::::1;9270:74:3::0;9360:18;;;9353:34;;;-1:-1:-1;;;;;1309:14:2;::::1;::::0;::::1;::::0;9243:18:3;;1309:34:2::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1301:43;;;::::0;::::1;;1199:152:::0;;:::o;885:111::-;737:5;;-1:-1:-1;;;;;737:5:2;723:10;:19;715:42;;;;-1:-1:-1;;;715:42:2;;14863:2:3;715:42:2;;;14845:21:3;14902:2;14882:18;;;14875:30;-1:-1:-1;;;14921:18:3;;;14914:40;14971:18;;715:42:2;14835:160:3;715:42:2;973:5:::1;:16:::0;;-1:-1:-1;;973:16:2::1;-1:-1:-1::0;;;;;973:16:2;;;::::1;::::0;;;::::1;::::0;;885:111::o;1002:191::-;737:5;;-1:-1:-1;;;;;737:5:2;723:10;:19;715:42;;;;-1:-1:-1;;;715:42:2;;14863:2:3;715:42:2;;;14845:21:3;14902:2;14882:18;;;14875:30;-1:-1:-1;;;14921:18:3;;;14914:40;14971:18;;715:42:2;14835:160:3;715:42:2;2861:20;;1092:56:::1;;;::::0;-1:-1:-1;;;1092:56:2;;12724:2:3;1092:56:2::1;::::0;::::1;12706:21:3::0;12763:2;12743:18;;;12736:30;12802:24;12782:18;;;12775:52;12844:18;;1092:56:2::1;12696:172:3::0;1092:56:2::1;1158:16;:28:::0;;-1:-1:-1;;1158:28:2::1;-1:-1:-1::0;;;;;1158:28:2;;;::::1;::::0;;;::::1;::::0;;1002:191::o;1420:129::-;737:5;;-1:-1:-1;;;;;737:5:2;723:10;:19;715:42;;;;-1:-1:-1;;;715:42:2;;14863:2:3;715:42:2;;;14845:21:3;14902:2;14882:18;;;14875:30;-1:-1:-1;;;14921:18:3;;;14914:40;14971:18;;715:42:2;14835:160:3;715:42:2;1506:36:::1;::::0;1514:10:::1;::::0;1506:36;::::1;;;::::0;1535:6;;1506:36:::1;::::0;;;1535:6;1514:10;1506:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;881:248:1::0;956:16;988:7;:14;1006:1;988:19;984:60;;;-1:-1:-1;1030:3:1;;881:248;-1:-1:-1;881:248:1:o;984:60::-;-1:-1:-1;1109:2:1;1096:16;1090:23;;881:248::o;2618:331::-;2742:4;2758:14;2775:76;2785:47;2804:27;2824:6;2804:19;:27::i;:::-;2785:18;:47::i;:::-;2775:76;;;;;;;;;;;;10070:25:3;;;;10143:4;10131:17;;10111:18;;;10104:45;10165:18;;;10158:34;;;10208:18;;;10201:34;;;10042:19;;2775:76:1;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2775:76:1;;-1:-1:-1;;2775:76:1;;;-1:-1:-1;;;;;;;2869:20:1;;2861:50;;;;-1:-1:-1;;;2861:50:1;;12030:2:3;2861:50:1;;;12012:21:3;12069:2;12049:18;;;12042:30;12108:19;12088:18;;;12081:47;12145:18;;2861:50:1;12002:167:3;2861:50:1;2938:4;-1:-1:-1;;;;;2928:14:1;:6;-1:-1:-1;;;;;2928:14:1;;2921:21;;;2618:331;;;;;;;:::o;3065:313:2:-;3136:13;3186:2;3165:11;:18;:23;3161:79;;;-1:-1:-1;;3202:38:2;;;;;;;;;;;;;;;;;;3065:313::o;3161:79::-;3306:4;3293:11;3289:22;3274:37;;3349:11;3338:33;;;;;;;;;;;;:::i;:::-;3331:40;3065:313;-1:-1:-1;;3065:313:2:o;2928:131::-;2999:12;3047:1;3050;3030:22;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3023:29;;2928:131;;;;:::o;2214:286:1:-;2297:7;198:76;;;;;;;;;;;;;;;;;188:87;;;;;;;2396:12;;2422:11;;;;2457:24;;;;;2447:35;;;;;;2333:159;;;;;9629:25:3;;;9685:2;9670:18;;9663:34;;;;-1:-1:-1;;;;;9733:55:3;9728:2;9713:18;;9706:83;9820:2;9805:18;;9798:34;9616:3;9601:19;;9583:255;2333:159:1;;;;;;;;;;;;;2323:170;;;;;;2316:177;;2214:286;;;:::o;1294:178:0:-;1365:7;918:15;;1401:63;;7824:66:3;1401:63:0;;;7812:79:3;7907:11;;;7900:27;;;;7943:12;;;7936:28;;;7980:12;;1401:63:0;7802:196:3;14:462;56:5;109:3;102:4;94:6;90:17;86:27;76:2;;127:1;124;117:12;76:2;163:6;150:20;194:48;210:31;238:2;210:31;:::i;:::-;194:48;:::i;:::-;267:2;258:7;251:19;313:3;306:4;301:2;293:6;289:15;285:26;282:35;279:2;;;330:1;327;320:12;279:2;395;388:4;380:6;376:17;369:4;360:7;356:18;343:55;443:1;418:16;;;436:4;414:27;407:38;;;;422:7;66:410;-1:-1:-1;;;66:410:3:o;481:247::-;540:6;593:2;581:9;572:7;568:23;564:32;561:2;;;609:1;606;599:12;561:2;648:9;635:23;667:31;692:5;667:31;:::i;:::-;717:5;551:177;-1:-1:-1;;;551:177:3:o;733:1984::-;900:6;908;916;924;932;985:3;973:9;964:7;960:23;956:33;953:2;;;1002:1;999;992:12;953:2;1015:49;1053:9;1040:23;1015:49;:::i;:::-;1096:9;1083:23;1073:33;;1115:58;1168:2;1157:9;1153:18;1140:32;1115:58;:::i;:::-;1220:2;1209:9;1205:18;1192:32;1182:42;;1271:2;1260:9;1256:18;1243:32;1233:42;;1322:2;1311:9;1307:18;1294:32;1284:42;;1376:18;1369:3;1358:9;1354:19;1341:33;1338:57;1335:2;;;1408:1;1405;1398:12;1335:2;1474:3;1463:9;1459:19;1446:33;1435:9;1431:49;1518:7;1511:4;1507:2;1503:13;1499:27;1489:2;;1540:1;1537;1530:12;1489:2;1577:18;1572:2;1559:16;1556:40;1553:2;;;1599:18;;:::i;:::-;1639:50;1685:2;1679;1666:16;1663:1;1659:24;1655:33;1639:50;:::i;:::-;1711:3;1748:2;1735:16;1730:3;1723:29;1777:2;1772:3;1768:12;1761:19;;1808:2;1804;1800:11;1870:7;1865:2;1858;1845:16;1842:1;1838:24;1834:2;1830:33;1826:42;1823:55;1820:2;;;1891:1;1888;1881:12;1820:2;1913:1;1923:764;1950:2;1937:16;1934:1;1931:23;1923:764;;;2021:18;2015:3;2002:17;1999:41;1996:2;;;2053:1;2050;2043:12;1996:2;2088:17;;2080:26;;2158:2;2130:16;;;-1:-1:-1;;2126:30:3;2122:39;2119:2;;;2174:1;2171;2164:12;2119:2;2204:22;;:::i;:::-;2304:2;2296:11;;2283:25;2310:10;2279:42;;2249:73;2239:2;;2336:1;2333;2326:12;2239:2;2388;2384;2380:11;2367:25;2360:5;2353:40;2439:18;2433:2;2429;2425:11;2412:25;2409:49;2406:2;;;2471:1;2468;2461:12;2406:2;2511:70;2573:7;2568:2;2561;2557;2553:11;2540:25;2536:2;2532:34;2528:43;2511:70;:::i;:::-;2506:2;2495:14;;;2488:94;;;;2595:18;;;2633:12;;;;2665;;;;;-1:-1:-1;1969:1:3;1962:9;1923:764;;;1927:3;;2706:5;2696:15;;;;;943:1774;;;;;;;;:::o;2722:726::-;2801:6;2809;2817;2870:2;2858:9;2849:7;2845:23;2841:32;2838:2;;;2886:1;2883;2876:12;2838:2;2925:9;2912:23;2944:31;2969:5;2944:31;:::i;:::-;2994:5;-1:-1:-1;3050:2:3;3035:18;;3022:32;3073:18;3103:14;;;3100:2;;;3130:1;3127;3120:12;3100:2;3168:6;3157:9;3153:22;3143:32;;3213:7;3206:4;3202:2;3198:13;3194:27;3184:2;;3235:1;3232;3225:12;3184:2;3275;3262:16;3301:2;3293:6;3290:14;3287:2;;;3317:1;3314;3307:12;3287:2;3362:7;3357:2;3348:6;3344:2;3340:15;3336:24;3333:37;3330:2;;;3383:1;3380;3373:12;3330:2;3414;3410;3406:11;3396:21;;3436:6;3426:16;;;;;2828:620;;;;;:::o;3453:758::-;3555:6;3563;3571;3579;3587;3640:3;3628:9;3619:7;3615:23;3611:33;3608:2;;;3657:1;3654;3647:12;3608:2;3696:9;3683:23;3715:31;3740:5;3715:31;:::i;:::-;3765:5;-1:-1:-1;3821:2:3;3806:18;;3793:32;3848:18;3837:30;;3834:2;;;3880:1;3877;3870:12;3834:2;3903:49;3944:7;3935:6;3924:9;3920:22;3903:49;:::i;:::-;3893:59;;;3999:2;3988:9;3984:18;3971:32;3961:42;;4050:2;4039:9;4035:18;4022:32;4012:42;;4106:3;4095:9;4091:19;4078:33;4155:4;4146:7;4142:18;4133:7;4130:31;4120:2;;4175:1;4172;4165:12;4120:2;4198:7;4188:17;;;3598:613;;;;;;;;:::o;4216:277::-;4283:6;4336:2;4324:9;4315:7;4311:23;4307:32;4304:2;;;4352:1;4349;4342:12;4304:2;4384:9;4378:16;4437:5;4430:13;4423:21;4416:5;4413:32;4403:2;;4459:1;4456;4449:12;4498:329;4580:6;4588;4641:2;4629:9;4620:7;4616:23;4612:32;4609:2;;;4657:1;4654;4647:12;4609:2;4696:9;4683:23;4715:31;4740:5;4715:31;:::i;:::-;4765:5;4817:2;4802:18;;;;4789:32;;-1:-1:-1;;;4599:228:3:o;4832:635::-;4912:6;4965:2;4953:9;4944:7;4940:23;4936:32;4933:2;;;4981:1;4978;4971:12;4933:2;5014:9;5008:16;5047:18;5039:6;5036:30;5033:2;;;5079:1;5076;5069:12;5033:2;5102:22;;5155:4;5147:13;;5143:27;-1:-1:-1;5133:2:3;;5184:1;5181;5174:12;5133:2;5213;5207:9;5238:48;5254:31;5282:2;5254:31;:::i;5238:48::-;5309:2;5302:5;5295:17;5349:7;5344:2;5339;5335;5331:11;5327:20;5324:33;5321:2;;;5370:1;5367;5360:12;5321:2;5383:54;5434:2;5429;5422:5;5418:14;5413:2;5409;5405:11;5383:54;:::i;:::-;5456:5;4923:544;-1:-1:-1;;;;;4923:544:3:o;5472:180::-;5531:6;5584:2;5572:9;5563:7;5559:23;5555:32;5552:2;;;5600:1;5597;5590:12;5552:2;-1:-1:-1;5623:23:3;;5542:110;-1:-1:-1;5542:110:3:o;5657:184::-;5727:6;5780:2;5768:9;5759:7;5755:23;5751:32;5748:2;;;5796:1;5793;5786:12;5748:2;-1:-1:-1;5819:16:3;;5738:103;-1:-1:-1;5738:103:3:o;5846:257::-;5887:3;5925:5;5919:12;5952:6;5947:3;5940:19;5968:63;6024:6;6017:4;6012:3;6008:14;6001:4;5994:5;5990:16;5968:63;:::i;:::-;6085:2;6064:15;-1:-1:-1;;6060:29:3;6051:39;;;;6092:4;6047:50;;5895:208;-1:-1:-1;;5895:208:3:o;6108:271::-;6291:6;6283;6278:3;6265:33;6247:3;6317:16;;6342:13;;;6317:16;6255:124;-1:-1:-1;6255:124:3:o;6384:274::-;6513:3;6551:6;6545:13;6567:53;6613:6;6608:3;6601:4;6593:6;6589:17;6567:53;:::i;:::-;6636:16;;;;;6521:137;-1:-1:-1;;6521:137:3:o;6663:415::-;6820:3;6858:6;6852:13;6874:53;6920:6;6915:3;6908:4;6900:6;6896:17;6874:53;:::i;:::-;6996:2;6992:15;;;;-1:-1:-1;;6988:53:3;6949:16;;;;6974:68;;;7069:2;7058:14;;6828:250;-1:-1:-1;;6828:250:3:o;7083:466::-;7258:3;7296:6;7290:13;7312:53;7358:6;7353:3;7346:4;7338:6;7334:17;7312:53;:::i;:::-;7428:13;;7387:16;;;;7450:57;7428:13;7387:16;7484:4;7472:17;;7450:57;:::i;:::-;7523:20;;7266:283;-1:-1:-1;;;;7266:283:3:o;8234:454::-;8416:4;-1:-1:-1;;;;;8526:2:3;8518:6;8514:15;8503:9;8496:34;8578:2;8570:6;8566:15;8561:2;8550:9;8546:18;8539:43;;8618:2;8613;8602:9;8598:18;8591:30;8638:44;8678:2;8667:9;8663:18;8655:6;8638:44;:::i;10246:217::-;10393:2;10382:9;10375:21;10356:4;10413:44;10453:2;10442:9;10438:18;10430:6;10413:44;:::i;15182:251::-;15254:2;15248:9;;;15284:15;;15329:18;15314:34;;15350:22;;;15311:62;15308:2;;;15376:18;;:::i;:::-;15412:2;15405:22;15228:205;:::o;15438:275::-;15509:2;15503:9;15574:2;15555:13;;-1:-1:-1;;15551:27:3;15539:40;;15609:18;15594:34;;15630:22;;;15591:62;15588:2;;;15656:18;;:::i;:::-;15692:2;15685:22;15483:230;;-1:-1:-1;15483:230:3:o;15718:186::-;15766:4;15799:18;15791:6;15788:30;15785:2;;;15821:18;;:::i;:::-;-1:-1:-1;15887:2:3;15866:15;-1:-1:-1;;15862:29:3;15893:4;15858:40;;15775:129::o;15909:331::-;16014:9;16025;16067:8;16055:10;16052:24;16049:2;;;16089:1;16086;16079:12;16049:2;16118:6;16108:8;16105:20;16102:2;;;16138:1;16135;16128:12;16102:2;-1:-1:-1;;16164:23:3;;;16209:25;;;;;-1:-1:-1;16039:201:3:o;16245:282::-;16285:3;16316:1;16312:6;16309:1;16306:13;16303:2;;;-1:-1:-1;;;16349:1:3;16342:88;16453:4;16450:1;16443:15;16481:4;16478:1;16471:15;16303:2;-1:-1:-1;16512:9:3;;16293:234::o;16532:258::-;16604:1;16614:113;16628:6;16625:1;16622:13;16614:113;;;16704:11;;;16698:18;16685:11;;;16678:39;16650:2;16643:10;16614:113;;;16745:6;16742:1;16739:13;16736:2;;;16780:1;16771:6;16766:3;16762:16;16755:27;16736:2;;16585:205;;;:::o;16795:184::-;-1:-1:-1;;;16844:1:3;16837:88;16944:4;16941:1;16934:15;16968:4;16965:1;16958:15;16984:154;-1:-1:-1;;;;;17063:5:3;17059:54;17052:5;17049:65;17039:2;;17128:1;17125;17118:12;17039:2;17029:109;:::o

Swarm Source

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