Contract 0x1fdc5e69729eecf8e933c904e86faf7a8886f661 2

 

Contract Overview

Balance:
0 MATIC

MATIC Value:
$0.00

Token:
 
Txn Hash
Method
Block
From
To
Value [Txn Fee]
0xadfe574b0d95493d031a18caea23dfaa27f9151bbaaa12df58b69ed33313476cExecute Meta Tra...407895772023-03-26 12:13:244 mins ago0x026a2b839b96b1d97c09efce6e0d982976d4c4de IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.17940124307 344.004117035
0x1390d6d0eaf4a0d6a65eabcdec86cb0cc1e39f054f6ea68950f6d2dc3f227ba7Execute Meta Tra...407895752023-03-26 12:13:124 mins ago0x199d772caeddbf99fd079aacdd6c5fda394184f8 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.161807955956 310.275909462
0xc7c7ed653c56077d49eeee9efa1bea9695317442ed02100d57124f4847a89beaExecute Meta Tra...407876322023-03-26 10:50:321 hr 27 mins ago0xe6f7e0add15c665f5ac2b0eedfd2e8578ef2bf8a IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.037021061631 113.910958867
0x49adf07b56e47d887b6debefb833added4e8e0123d748194c2425767c06438b0Execute Meta Tra...407871932023-03-26 10:34:581 hr 43 mins ago0x0d9bd062bfb518303b5b0b6c748960e6bbdbf074 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.059263252711 114.265322997
0xbe897b3c8d9936524faef036b88b9bd8764a3afd37f5a00041dd82c4598e1c76Execute Meta Tra...407871652023-03-26 10:33:581 hr 44 mins ago0x8644c5bb07b49467062d76634e389a794716c78c IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.061396604045 117.728752611
0x7b691aa03b18aa5b9388b550e67cd9a4192a79fc524eb606500b47dde82a5df5Execute Meta Tra...407871362023-03-26 10:32:581 hr 45 mins ago0x1d038b43e4634a1246b50518b6bdc0ac5b7b62b2 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.056155543332 113.100756145
0x7178278a7d5ea476984914484858967fd4544ca4824f82fd4828b6fc5b856ff5Execute Meta Tra...407868462023-03-26 10:22:401 hr 55 mins ago0x6ebb85227f06bf1561da6578ed75acfa35872183 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.031609953036 98.49362497
0xe949232fa6f40fb81d264181aadac1d8681652f0e40d59cba62b9a0915752639Execute Meta Tra...407843452023-03-26 8:53:523 hrs 24 mins ago0xe24250cfc8a8cc7cc0ae8d1e0205f70eb7c07fe4 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.039071929665 103.352589414
0x7319ee1ddadf9509cc3fa3a378f3cddcedddea2ba750c2ee21043f5928ab20c3Execute Meta Tra...407840642023-03-26 8:43:563 hrs 34 mins ago0x84d6ab55a17d64ba38c4ec7c08211a972ce2c750 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.087643032565 249.262059001
0x70aef1633e8ce524a400aa6904beeebd36ead92036479f09b5b34df1dce2f4bbExecute Meta Tra...407832242023-03-26 8:14:104 hrs 4 mins ago0xdb8f33b3a1a310250b800203e140e600e6844740 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.031986809029 99.669735984
0x2daca4cbe3ec92c9ab96dff0b55cddaf771d60c1b9980ca705c41a7b9a474308Execute Meta Tra...407827062023-03-26 7:55:274 hrs 22 mins ago0xe8bf85fa63f6e5fa702b136280c5919536c940fa IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.034218383249 97.767926633
0x34944d2b21ed6f36077250006ff0f0eea7265382b98300a60433da523cd2435bExecute Meta Tra...407825412023-03-26 7:49:354 hrs 28 mins ago0xbbc32e584ac253f39bfea90e1617aacd36ca8a54 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.044841462093 89.071360228
0xe14ee7475e026da9104a95e17be1a667180fb9dcced9cc163d1f9574abf61a3aExecute Meta Tra...407818732023-03-26 7:25:394 hrs 52 mins ago0xd22cbfb094604684aadeaea2655e57c09f601962 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.052489044329 96.555548191
0xddd59352e1510fbe42d6877015ffb33b596a2bd7420196e1e854007d1d2bb6bbExecute Meta Tra...407818372023-03-26 7:24:214 hrs 53 mins ago0x2255dff0d9e9179376db87d28f2a631089f14754 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.026748294778 75.780002375
0xf375b2f3c1d1e301676fc90f20db72e610db5deae8dcf855c9ce243899be82bcExecute Meta Tra...407816842023-03-26 7:18:574 hrs 59 mins ago0xa5656f99ce331cdac81d5164fe3e2be401f8aecc IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.029202685525 82.732076202
0x0fe5748fa849559705d66b82fdabff172132127baaacb3ba8ccfe19091823fccExecute Meta Tra...407814532023-03-26 7:10:455 hrs 7 mins ago0x2d7813a2e158b1615599e98ece851b29ad30d9db IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.048700480059 93.383776809
0x526c5c8a15bf2897e22e86c7f5df8b7d28d1ffd07985c9d3852293d10ecf3a32Execute Meta Tra...407812272023-03-26 7:02:435 hrs 15 mins ago0x3f0d3c2997370ac79ccab3bcadcbc58093cbb614 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.032274478093 99.29814259
0x684ecc024649abd389d640e150c97831969c76e76a8bbb74b66d173830167b9bExecute Meta Tra...407807562023-03-26 6:44:595 hrs 33 mins ago0xabd5f3f4122056165f24009ef15b756c5c62d5ce IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.073005163251 147.036938406
0x34263a2c83681adf6b51ee7f16f4e929c8c64ef7078a8dc26d005090f40df811Execute Meta Tra...407804642023-03-26 6:33:035 hrs 45 mins ago0xac7cefbbe5309999d0ed4ca5e16999a9680a5e79 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.056274610056 107.907265372
0xa4ae6a11e36987f0b2d65c36a29c45b082af94ac8c975bfe4cdd5109dc53db9fExecute Meta Tra...407799952023-03-26 6:15:216 hrs 2 mins ago0xcedf7afbb702e43384f64557acc9b67cd06325a0 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.03814988638 109.32327226
0x0ad7b1b12e726ce51f8e13472e22d5aedd936508764ec26c272265e54fc8c4efExecute Meta Tra...407799312023-03-26 6:12:336 hrs 5 mins ago0xc7350566c89eab1fb14c19eb0d15d4f428af9676 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.040006155537 113.779913932
0x25db4eeecd46b634a42f1d50de12d956779ad842b3fa70719688af3d999e5319Execute Meta Tra...407794562023-03-26 5:54:416 hrs 23 mins ago0x86c3d20c8c1e3f9e102baa13fd8a786cd63d096d IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.028440627837 87.789469934
0xe028e9deabdc5618e58ef8cddab9a23d20d249204f0b9bfcdcfd042d44e7eb45Execute Meta Tra...407791362023-03-26 5:41:476 hrs 36 mins ago0xa8390f3f52aa1d5b48b808a3a255b53bc27c3b87 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.03350570512 95.725116051
0xb626cfe548d9e174de851fc662497f7c8f379aa23a179cc4d17c3417829c8d63Execute Meta Tra...407790922023-03-26 5:39:396 hrs 38 mins ago0xe5f921b631cc9f4b9686f20552e3b9916fc2ab0b IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.049194940451 94.331910766
0xf8a5387e28ff041d24e7171c4704728760e9086b248cfdc7809de01458d911afExecute Meta Tra...407787412023-03-26 5:26:416 hrs 51 mins ago0x4404065b7aaf6d77f6b34657d096089ab531f455 IN  0x1fdc5e69729eecf8e933c904e86faf7a8886f6610 MATIC0.031167911038 89.041507033
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xadfe574b0d95493d031a18caea23dfaa27f9151bbaaa12df58b69ed33313476c407895772023-03-26 12:13:244 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610x1f4091db4204d69ec2489a3ded8c0641e8d954b41.009986838785886753 MATIC
0xadfe574b0d95493d031a18caea23dfaa27f9151bbaaa12df58b69ed33313476c407895772023-03-26 12:13:244 mins ago 0x: Exchange Proxy Flash Wallet 0x1fdc5e69729eecf8e933c904e86faf7a8886f6611.009986838785886753 MATIC
0x1390d6d0eaf4a0d6a65eabcdec86cb0cc1e39f054f6ea68950f6d2dc3f227ba7407895752023-03-26 12:13:124 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610x4b5f869dc1a67febd613bd0b0e91d0509ced36c61.009999935166012294 MATIC
0x1390d6d0eaf4a0d6a65eabcdec86cb0cc1e39f054f6ea68950f6d2dc3f227ba7407895752023-03-26 12:13:124 mins ago 0x: Exchange Proxy Flash Wallet 0x1fdc5e69729eecf8e933c904e86faf7a8886f6611.009999935166012294 MATIC
0xc7c7ed653c56077d49eeee9efa1bea9695317442ed02100d57124f4847a89bea407876322023-03-26 10:50:321 hr 27 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610x3aa4d7cce8c76d3cffc886e57f01740e382a14f610.099999950351701477 MATIC
0xc7c7ed653c56077d49eeee9efa1bea9695317442ed02100d57124f4847a89bea407876322023-03-26 10:50:321 hr 27 mins ago 0x: Exchange Proxy Flash Wallet 0x1fdc5e69729eecf8e933c904e86faf7a8886f66110.099999950351701477 MATIC
0x49adf07b56e47d887b6debefb833added4e8e0123d748194c2425767c06438b0407871932023-03-26 10:34:581 hr 43 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610xa17053aa6dd1d93d95262a8b780446a6443d30201.01000056562480539 MATIC
0x49adf07b56e47d887b6debefb833added4e8e0123d748194c2425767c06438b0407871932023-03-26 10:34:581 hr 43 mins ago 0x: Exchange Proxy Flash Wallet 0x1fdc5e69729eecf8e933c904e86faf7a8886f6611.01000056562480539 MATIC
0xbe897b3c8d9936524faef036b88b9bd8764a3afd37f5a00041dd82c4598e1c76407871652023-03-26 10:33:581 hr 44 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610xe6fdc9b525818dd75d90cb93ede1efe7bf2249592.019999741048098128 MATIC
0xbe897b3c8d9936524faef036b88b9bd8764a3afd37f5a00041dd82c4598e1c76407871652023-03-26 10:33:581 hr 44 mins ago 0x: Exchange Proxy Flash Wallet 0x1fdc5e69729eecf8e933c904e86faf7a8886f6612.019999741048098128 MATIC
0x7b691aa03b18aa5b9388b550e67cd9a4192a79fc524eb606500b47dde82a5df5407871362023-03-26 10:32:581 hr 45 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610xfbd3bc1856da2b2eb7bbf702e4b8e21f171587b21.009999935262440025 MATIC
0x7b691aa03b18aa5b9388b550e67cd9a4192a79fc524eb606500b47dde82a5df5407871362023-03-26 10:32:581 hr 45 mins ago 0x: Exchange Proxy Flash Wallet 0x1fdc5e69729eecf8e933c904e86faf7a8886f6611.009999935262440025 MATIC
0x7178278a7d5ea476984914484858967fd4544ca4824f82fd4828b6fc5b856ff5407868462023-03-26 10:22:401 hr 55 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610x1a81a282c08ba8d73140689b61d5b66437727c6d1.010025789530604085 MATIC
0x7178278a7d5ea476984914484858967fd4544ca4824f82fd4828b6fc5b856ff5407868462023-03-26 10:22:401 hr 55 mins ago 0x: Exchange Proxy Flash Wallet 0x1fdc5e69729eecf8e933c904e86faf7a8886f6611.010025789530604085 MATIC
0xe949232fa6f40fb81d264181aadac1d8681652f0e40d59cba62b9a0915752639407843452023-03-26 8:53:523 hrs 24 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610x5f904d765ea50d25a76311e85c94fd083f6080515.050912233669830096 MATIC
0xe949232fa6f40fb81d264181aadac1d8681652f0e40d59cba62b9a0915752639407843452023-03-26 8:53:523 hrs 24 mins ago 0x: Exchange Proxy Flash Wallet 0x1fdc5e69729eecf8e933c904e86faf7a8886f6615.050912233669830096 MATIC
0x7319ee1ddadf9509cc3fa3a378f3cddcedddea2ba750c2ee21043f5928ab20c3407840642023-03-26 8:43:563 hrs 34 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610x064b33ad6b66ab2528470402755d7cd7a7bf8ea11.009997839661872434 MATIC
0x7319ee1ddadf9509cc3fa3a378f3cddcedddea2ba750c2ee21043f5928ab20c3407840642023-03-26 8:43:563 hrs 34 mins ago 0x: Exchange Proxy Flash Wallet 0x1fdc5e69729eecf8e933c904e86faf7a8886f6611.009997839661872434 MATIC
0x70aef1633e8ce524a400aa6904beeebd36ead92036479f09b5b34df1dce2f4bb407832242023-03-26 8:14:104 hrs 4 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610x8fe1c575ab88b7549cca4597d59373f4a113cc9d2.020047611580050556 MATIC
0x70aef1633e8ce524a400aa6904beeebd36ead92036479f09b5b34df1dce2f4bb407832242023-03-26 8:14:104 hrs 4 mins ago 0x: Exchange Proxy Flash Wallet 0x1fdc5e69729eecf8e933c904e86faf7a8886f6612.020047611580050556 MATIC
0x2daca4cbe3ec92c9ab96dff0b55cddaf771d60c1b9980ca705c41a7b9a474308407827062023-03-26 7:55:274 hrs 22 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610xd93109cffccfd22929a852a5f826b33ed550449e1.009999112135017028 MATIC
0x2daca4cbe3ec92c9ab96dff0b55cddaf771d60c1b9980ca705c41a7b9a474308407827062023-03-26 7:55:274 hrs 22 mins ago 0x: Exchange Proxy Flash Wallet 0x1fdc5e69729eecf8e933c904e86faf7a8886f6611.009999112135017028 MATIC
0x34944d2b21ed6f36077250006ff0f0eea7265382b98300a60433da523cd2435b407825412023-03-26 7:49:354 hrs 28 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610xcf7df3cdf6365999250217588f79882d94f85d761.010000876813357966 MATIC
0x34944d2b21ed6f36077250006ff0f0eea7265382b98300a60433da523cd2435b407825412023-03-26 7:49:354 hrs 28 mins ago 0x: Exchange Proxy Flash Wallet 0x1fdc5e69729eecf8e933c904e86faf7a8886f6611.010000876813357966 MATIC
0xe14ee7475e026da9104a95e17be1a667180fb9dcced9cc163d1f9574abf61a3a407818732023-03-26 7:25:394 hrs 52 mins ago 0x1fdc5e69729eecf8e933c904e86faf7a8886f6610x7331e29dee7a75204b8f1a32c225264bb978e7461.010000753950240625 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.