Goerli Testnet

Contract

0x0000000000a35231D7706BD1eE827d43245655aB
Transaction Hash
Method
Block
From
To
Value
Execute90270912023-05-19 12:20:12315 days ago1684498812IN
0x00000000...3245655aB
0 ETH0.0100195864.64042967
Execute90270802023-05-19 12:17:00315 days ago1684498620IN
0x00000000...3245655aB
0 ETH0.01637984105.67299831
Execute90259152023-05-19 7:15:12315 days ago1684480512IN
0x00000000...3245655aB
0 ETH0.000103552.57507441
Execute90259102023-05-19 7:14:00315 days ago1684480440IN
0x00000000...3245655aB
0 ETH0.000099692.47894572
Execute90258932023-05-19 7:10:12315 days ago1684480212IN
0x00000000...3245655aB
0 ETH0.000083832.08474285
Execute90258912023-05-19 7:09:12315 days ago1684480152IN
0x00000000...3245655aB
0 ETH0.000079231.97038899
Execute89432252023-05-04 23:50:24329 days ago1683244224IN
0x00000000...3245655aB
0 ETH0.0108405573.09486002
Execute89432182023-05-04 23:49:00329 days ago1683244140IN
0x00000000...3245655aB
0 ETH0.0111379575.10012985
Execute89432002023-05-04 23:44:24329 days ago1683243864IN
0x00000000...3245655aB
0 ETH0.0117277163.14901249
Execute89255912023-05-01 22:26:00332 days ago1682979960IN
0x00000000...3245655aB
0 ETH0.000255441.19324382
Execute89255152023-05-01 22:06:12332 days ago1682978772IN
0x00000000...3245655aB
0 ETH0.000056491.38326156
Execute89255112023-05-01 22:05:00332 days ago1682978700IN
0x00000000...3245655aB
0 ETH0.000054631.33757259
Execute89255082023-05-01 22:04:24332 days ago1682978664IN
0x00000000...3245655aB
0 ETH0.000052121.27634947
Execute89254752023-05-01 21:55:36332 days ago1682978136IN
0x00000000...3245655aB
0 ETH0.00004761.16557661
Execute89254722023-05-01 21:54:48332 days ago1682978088IN
0x00000000...3245655aB
0 ETH0.000047991.17516413
Execute87764382023-04-05 5:45:48359 days ago1680673548IN
0x00000000...3245655aB
0 ETH0.0108581169.47905016
Execute87758962023-04-05 3:31:00359 days ago1680665460IN
0x00000000...3245655aB
0 ETH0.0061091840.67583481
Execute87758682023-04-05 3:23:12359 days ago1680664992IN
0x00000000...3245655aB
0 ETH0.0058855639.88049101
Execute87758302023-04-05 3:13:12359 days ago1680664392IN
0x00000000...3245655aB
0 ETH0.005158236.40611278
Execute87757922023-04-05 3:03:24359 days ago1680663804IN
0x00000000...3245655aB
0 ETH0.0034848122.92864908
Execute87757362023-04-05 2:49:00359 days ago1680662940IN
0x00000000...3245655aB
0 ETH0.0048122229.28622653
Execute87447772023-03-30 15:51:36364 days ago1680191496IN
0x00000000...3245655aB
0 ETH0.0584252163.54197575
Execute87447542023-03-30 15:45:36364 days ago1680191136IN
0x00000000...3245655aB
0 ETH0.0320416159.81486875
Execute87447072023-03-30 15:33:36364 days ago1680190416IN
0x00000000...3245655aB
0 ETH0.05336772226.72527274

Latest 25 internal transactions (View All)

Advanced mode:
Parent Txn Hash Block From To Value
90270912023-05-19 12:20:12315 days ago1684498812
0x00000000...3245655aB
0 ETH
90270912023-05-19 12:20:12315 days ago1684498812
0x00000000...3245655aB
0 ETH
90270802023-05-19 12:17:00315 days ago1684498620
0x00000000...3245655aB
0 ETH
90270802023-05-19 12:17:00315 days ago1684498620
0x00000000...3245655aB
0 ETH
90259152023-05-19 7:15:12315 days ago1684480512
0x00000000...3245655aB
0 ETH
90259102023-05-19 7:14:00315 days ago1684480440
0x00000000...3245655aB
0 ETH
90258932023-05-19 7:10:12315 days ago1684480212
0x00000000...3245655aB
0 ETH
90258912023-05-19 7:09:12315 days ago1684480152
0x00000000...3245655aB
0 ETH
89432252023-05-04 23:50:24329 days ago1683244224
0x00000000...3245655aB
0 ETH
89432252023-05-04 23:50:24329 days ago1683244224
0x00000000...3245655aB
0 ETH
89432182023-05-04 23:49:00329 days ago1683244140
0x00000000...3245655aB
0 ETH
89432182023-05-04 23:49:00329 days ago1683244140
0x00000000...3245655aB
0 ETH
89432002023-05-04 23:44:24329 days ago1683243864
0x00000000...3245655aB
0 ETH
89432002023-05-04 23:44:24329 days ago1683243864
0x00000000...3245655aB
0 ETH
89255912023-05-01 22:26:00332 days ago1682979960
0x00000000...3245655aB
0 ETH
89255912023-05-01 22:26:00332 days ago1682979960
0x00000000...3245655aB
0 ETH
89255152023-05-01 22:06:12332 days ago1682978772
0x00000000...3245655aB
0 ETH
89255112023-05-01 22:05:00332 days ago1682978700
0x00000000...3245655aB
0 ETH
89255082023-05-01 22:04:24332 days ago1682978664
0x00000000...3245655aB
0 ETH
89254752023-05-01 21:55:36332 days ago1682978136
0x00000000...3245655aB
0 ETH
89254722023-05-01 21:54:48332 days ago1682978088
0x00000000...3245655aB
0 ETH
87764382023-04-05 5:45:48359 days ago1680673548
0x00000000...3245655aB
0 ETH
87764382023-04-05 5:45:48359 days ago1680673548
0x00000000...3245655aB
0 ETH
87758962023-04-05 3:31:00359 days ago1680665460
0x00000000...3245655aB
0 ETH
87758962023-04-05 3:31:00359 days ago1680665460
0x00000000...3245655aB
0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ERC20EnabledLooksRareAggregator

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 888888 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 9 : ERC20EnabledLooksRareAggregator.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

import {LowLevelERC20Transfer} from "@looksrare/contracts-libs/contracts/lowLevelCallers/LowLevelERC20Transfer.sol";
import {IERC20EnabledLooksRareAggregator} from "./interfaces/IERC20EnabledLooksRareAggregator.sol";
import {ILooksRareAggregator} from "./interfaces/ILooksRareAggregator.sol";
import {TokenTransfer} from "./libraries/OrderStructs.sol";

/**
 * @title ERC20EnabledLooksRareAggregator
 * @notice This contract allows NFT sweepers to buy NFTs from
 *         different marketplaces using ERC20 tokens by passing
 *         high-level structs + low-level bytes as calldata.
 * @author LooksRare protocol team (👀,💎)
 */
contract ERC20EnabledLooksRareAggregator is IERC20EnabledLooksRareAggregator, LowLevelERC20Transfer {
    ILooksRareAggregator public immutable aggregator;

    /**
     * @param _aggregator LooksRareAggregator's address
     */
    constructor(address _aggregator) {
        aggregator = ILooksRareAggregator(_aggregator);
    }

    /**
     * @inheritdoc IERC20EnabledLooksRareAggregator
     */
    function execute(
        TokenTransfer[] calldata tokenTransfers,
        ILooksRareAggregator.TradeData[] calldata tradeData,
        address recipient,
        bool isAtomic
    ) external payable {
        if (tokenTransfers.length == 0) {
            revert UseLooksRareAggregatorDirectly();
        }
        _pullERC20Tokens(tokenTransfers, msg.sender);
        aggregator.execute{value: msg.value}(tokenTransfers, tradeData, msg.sender, recipient, isAtomic);
    }

    function _pullERC20Tokens(TokenTransfer[] calldata tokenTransfers, address source) private {
        uint256 tokenTransfersLength = tokenTransfers.length;
        for (uint256 i; i < tokenTransfersLength; ) {
            _executeERC20TransferFrom(
                tokenTransfers[i].currency,
                source,
                address(aggregator),
                tokenTransfers[i].amount
            );
            unchecked {
                ++i;
            }
        }
    }
}

File 3 of 9 : LowLevelERC20Transfer.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

// Interfaces
import {IERC20} from "../interfaces/generic/IERC20.sol";

// Errors
import {ERC20TransferFail, ERC20TransferFromFail} from "../errors/LowLevelErrors.sol";
import {NotAContract} from "../errors/GenericErrors.sol";

/**
 * @title LowLevelERC20Transfer
 * @notice This contract contains low-level calls to transfer ERC20 tokens.
 * @author LooksRare protocol team (👀,💎)
 */
contract LowLevelERC20Transfer {
    /**
     * @notice Execute ERC20 transferFrom
     * @param currency Currency address
     * @param from Sender address
     * @param to Recipient address
     * @param amount Amount to transfer
     */
    function _executeERC20TransferFrom(address currency, address from, address to, uint256 amount) internal {
        if (currency.code.length == 0) {
            revert NotAContract();
        }

        (bool status, bytes memory data) = currency.call(abi.encodeCall(IERC20.transferFrom, (from, to, amount)));

        if (!status) {
            revert ERC20TransferFromFail();
        }

        if (data.length > 0) {
            if (!abi.decode(data, (bool))) {
                revert ERC20TransferFromFail();
            }
        }
    }

    /**
     * @notice Execute ERC20 (direct) transfer
     * @param currency Currency address
     * @param to Recipient address
     * @param amount Amount to transfer
     */
    function _executeERC20DirectTransfer(address currency, address to, uint256 amount) internal {
        if (currency.code.length == 0) {
            revert NotAContract();
        }

        (bool status, bytes memory data) = currency.call(abi.encodeCall(IERC20.transfer, (to, amount)));

        if (!status) {
            revert ERC20TransferFail();
        }

        if (data.length > 0) {
            if (!abi.decode(data, (bool))) {
                revert ERC20TransferFail();
            }
        }
    }
}

File 4 of 9 : IERC20EnabledLooksRareAggregator.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

import {TokenTransfer} from "../libraries/OrderStructs.sol";
import {ILooksRareAggregator} from "./ILooksRareAggregator.sol";

interface IERC20EnabledLooksRareAggregator {
    /**
     * @notice Execute NFT sweeps in different marketplaces
     *         in a single transaction
     * @param tokenTransfers Aggregated ERC20 token transfers for all markets
     * @param tradeData Data object to be passed downstream to
     *                  each marketplace's proxy for execution
     * @param recipient The address to receive the purchased NFTs
     * @param isAtomic Flag to enable atomic trades (all or nothing)
     *                 or partial trades
     */
    function execute(
        TokenTransfer[] calldata tokenTransfers,
        ILooksRareAggregator.TradeData[] calldata tradeData,
        address recipient,
        bool isAtomic
    ) external payable;

    error UseLooksRareAggregatorDirectly();
}

File 5 of 9 : ILooksRareAggregator.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

import {BasicOrder, TokenTransfer} from "../libraries/OrderStructs.sol";

interface ILooksRareAggregator {
    /**
     * @param proxy The marketplace proxy's address
     * @param selector The marketplace proxy's function selector
     * @param orders Orders to be executed by the marketplace
     * @param ordersExtraData Extra data for each order, specific for each marketplace
     * @param extraData Extra data specific for each marketplace
     */
    struct TradeData {
        address proxy;
        bytes4 selector;
        BasicOrder[] orders;
        bytes[] ordersExtraData;
        bytes extraData;
    }

    /**
     * @notice Execute NFT sweeps in different marketplaces in a
     *         single transaction
     * @param tokenTransfers Aggregated ERC20 token transfers for all markets
     * @param tradeData Data object to be passed downstream to each
     *                  marketplace's proxy for execution
     * @param originator The address that originated the transaction,
     *                   hard coded as msg.sender if it is called directly
     * @param recipient The address to receive the purchased NFTs
     * @param isAtomic Flag to enable atomic trades (all or nothing)
     *                 or partial trades
     */
    function execute(
        TokenTransfer[] calldata tokenTransfers,
        TradeData[] calldata tradeData,
        address originator,
        address recipient,
        bool isAtomic
    ) external payable;

    /**
     * @notice Emitted when a marketplace proxy's function is enabled.
     * @param proxy The marketplace proxy's address
     * @param selector The marketplace proxy's function selector
     */
    event FunctionAdded(address proxy, bytes4 selector);

    /**
     * @notice Emitted when a marketplace proxy's function is disabled.
     * @param proxy The marketplace proxy's address
     * @param selector The marketplace proxy's function selector
     */
    event FunctionRemoved(address proxy, bytes4 selector);

    /**
     * @notice Emitted when execute is complete
     * @param sweeper The address that submitted the transaction
     */
    event Sweep(address sweeper);

    error AlreadySet();
    error ETHTransferFail();
    error InvalidFunction();
    error UseERC20EnabledLooksRareAggregator();
}

File 6 of 9 : OrderStructs.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

import {CollectionType} from "./OrderEnums.sol";

/**
 * @param signer The order's maker
 * @param collection The address of the ERC721/ERC1155 token to be purchased
 * @param collectionType 0 for ERC721, 1 for ERC1155
 * @param tokenIds The IDs of the tokens to be purchased
 * @param amounts Always 1 when ERC721, can be > 1 if ERC1155
 * @param price The *taker bid* price to pay for the order
 * @param currency The order's currency, address(0) for ETH
 * @param startTime The timestamp when the order starts becoming valid
 * @param endTime The timestamp when the order stops becoming valid
 * @param signature split to v,r,s for LooksRare
 */
struct BasicOrder {
    address signer;
    address collection;
    CollectionType collectionType;
    uint256[] tokenIds;
    uint256[] amounts;
    uint256 price;
    address currency;
    uint256 startTime;
    uint256 endTime;
    bytes signature;
}

/**
 * @param amount ERC20 transfer amount
 * @param currency ERC20 transfer currency
 */
struct TokenTransfer {
    uint256 amount;
    address currency;
}

File 7 of 9 : IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

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

    event Approval(address indexed owner, address indexed spender, uint256 value);

    function totalSupply() external view returns (uint256);

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

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

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

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

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

File 8 of 9 : LowLevelErrors.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

/**
 * @notice It is emitted if the ETH transfer fails.
 */
error ETHTransferFail();

/**
 * @notice It is emitted if the ERC20 approval fails.
 */
error ERC20ApprovalFail();

/**
 * @notice It is emitted if the ERC20 transfer fails.
 */
error ERC20TransferFail();

/**
 * @notice It is emitted if the ERC20 transferFrom fails.
 */
error ERC20TransferFromFail();

/**
 * @notice It is emitted if the ERC721 transferFrom fails.
 */
error ERC721TransferFromFail();

/**
 * @notice It is emitted if the ERC1155 safeTransferFrom fails.
 */
error ERC1155SafeTransferFromFail();

/**
 * @notice It is emitted if the ERC1155 safeBatchTransferFrom fails.
 */
error ERC1155SafeBatchTransferFromFail();

File 9 of 9 : GenericErrors.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

/**
 * @notice It is emitted if the call recipient is not a contract.
 */
error NotAContract();

File 10 of 9 : OrderEnums.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

enum CollectionType {
    ERC721,
    ERC1155
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 888888
  },
  "viaIR": true,
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract ABI

[{"inputs":[{"internalType":"address","name":"_aggregator","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ERC20TransferFromFail","type":"error"},{"inputs":[],"name":"NotAContract","type":"error"},{"inputs":[],"name":"UseLooksRareAggregatorDirectly","type":"error"},{"inputs":[],"name":"aggregator","outputs":[{"internalType":"contract ILooksRareAggregator","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"internalType":"struct TokenTransfer[]","name":"tokenTransfers","type":"tuple[]"},{"components":[{"internalType":"address","name":"proxy","type":"address"},{"internalType":"bytes4","name":"selector","type":"bytes4"},{"components":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"address","name":"collection","type":"address"},{"internalType":"enum CollectionType","name":"collectionType","type":"uint8"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"}],"internalType":"struct BasicOrder[]","name":"orders","type":"tuple[]"},{"internalType":"bytes[]","name":"ordersExtraData","type":"bytes[]"},{"internalType":"bytes","name":"extraData","type":"bytes"}],"internalType":"struct ILooksRareAggregator.TradeData[]","name":"tradeData","type":"tuple[]"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bool","name":"isAtomic","type":"bool"}],"name":"execute","outputs":[],"stateMutability":"payable","type":"function"}]

60a03461008157601f610c4838819003918201601f19168301916001600160401b038311848410176100865780849260209460405283398101031261008157516001600160a01b0381169081900361008157608052604051610bab908161009d8239608051818181610153015281816102780152818161078901526109cd0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608080604052600436101561001357600080fd5b600090813560e01c908163245a7bfc1461098357506349e708dd1461003757600080fd5b60807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126109805767ffffffffffffffff60043511610980573660236004350112156109805767ffffffffffffffff6004356004013511610980573660246004356004013560061b6004350101116109805767ffffffffffffffff60243511610980573660236024350112156109805767ffffffffffffffff60243560040135116109805736602480356004013560051b81350101116109805760443573ffffffffffffffffffffffffffffffffffffffff8116810361097c576064359081151582036106e857600435600401351561095257825b6004356004013581106106ec575073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163b156106e8579190604051907f12abee1200000000000000000000000000000000000000000000000000000000825260a060048301526004356004013560a483015260c4820193602460043501845b6004356004013581106106a75750507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8386030160248401526024356004013585526020850160206024356004013560051b8701019560248035019186905b6024356004013582106102f55787878181808d8b73ffffffffffffffffffffffffffffffffffffffff8c3360448601521660648401521515608483015203813473ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af180156102ea576102a8575080f35b67ffffffffffffffff81116102bd5760405280f35b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6040513d84823e3d90fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0838a97969597030181527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3d602435360301863512156106a35773ffffffffffffffffffffffffffffffffffffffff61037460248035893501016109f1565b168952604460243587350101357fffffffff000000000000000000000000000000000000000000000000000000008116810361069f577fffffffff000000000000000000000000000000000000000000000000000000001660208a01526103ea6064602435883501016024803589350101610a17565b60a060408c939c01528060a083015260c082019a60c08260051b8401019b81928c5b8181106104fc575050505050610431608460243589350101602480358a350101610a17565b9a82810360608401528b81526020810160208d60051b8301019c838d5b8281106104a6575050505050506020806104918b9c6001946104838c9d9e9d602460a481358335010191813590350101610aa7565b916080818503910152610af7565b98019201920191909394959850969596610221565b90919293949e8f8682037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00186526104de9084610aa7565b6104e89291610af7565b9e602090810195940192919060010161044e565b909192939d8e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff408783030185527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec1863603019035121561069b5760028f868173ffffffffffffffffffffffffffffffffffffffff61057e8360409535016109f1565b16855273ffffffffffffffffffffffffffffffffffffffff6105a5602084843501016109f1565b16602086015235010135101561069b578e9085823501604001356040820152606080878435010187843501906105da91610a17565b6101409284018390526105ef92840191610a6a565b610600833588016080810190610a17565b83830360808501526106129291610a6a565b908683350160a0013560a08201528683350160c001610630906109f1565b73ffffffffffffffffffffffffffffffffffffffff1660c08201529135860160e08181013590840152610100808201359084015261012092906106769084810190610aa7565b91909381840391015261068892610af7565b9d6020908101949301919060010161040c565b8d80fd5b8880fd5b8780fd5b9093949560408060019287358152602073ffffffffffffffffffffffffffffffffffffffff6106d7828b016109f1565b1690820152019796950191016101c2565b8280fd5b60206107048260043560040135602460043501610b36565b013573ffffffffffffffffffffffffffffffffffffffff811681036108c2576107398260043560040135602460043501610b36565b3590803b1561092857604051917f23b872dd00000000000000000000000000000000000000000000000000000000602084015233602484015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660448401526064830152606482528160a081011067ffffffffffffffff60a0840111176108f3578186929160a084930160405282602083519301915af13d15610920573d9067ffffffffffffffff82116108f357604051917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe067ffffffffffffffff601f83018216603f0182168501908111908511176108c657601f82018116603f0116830160405282523d86602084013e5b1561089857805180610873575b505060010161012e565b81602091810103126108c257602001518015908115036108c257610898573880610869565b60046040517fe5605213000000000000000000000000000000000000000000000000000000008152fd5b8480fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60609061085c565b60046040517f09ee12d5000000000000000000000000000000000000000000000000000000008152fd5b60046040517fdbb6f8d9000000000000000000000000000000000000000000000000000000008152fd5b5080fd5b80fd5b90503461097c57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261097c5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b359073ffffffffffffffffffffffffffffffffffffffff82168203610a1257565b600080fd5b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe182360301811215610a1257016020813591019167ffffffffffffffff8211610a12578160051b36038313610a1257565b90918281527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311610a125760209260051b809284830137010190565b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe182360301811215610a1257016020813591019167ffffffffffffffff8211610a12578136038313610a1257565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b9190811015610b465760061b0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea264697066735822122083f44e99e8658c5e7feb5277e594e2cfeba41fbae39e55fad9930f55d13fdecb64736f6c6343000811003300000000000000000000000000000000005228b791a99a61f36a130d50600106

Deployed Bytecode

0x608080604052600436101561001357600080fd5b600090813560e01c908163245a7bfc1461098357506349e708dd1461003757600080fd5b60807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126109805767ffffffffffffffff60043511610980573660236004350112156109805767ffffffffffffffff6004356004013511610980573660246004356004013560061b6004350101116109805767ffffffffffffffff60243511610980573660236024350112156109805767ffffffffffffffff60243560040135116109805736602480356004013560051b81350101116109805760443573ffffffffffffffffffffffffffffffffffffffff8116810361097c576064359081151582036106e857600435600401351561095257825b6004356004013581106106ec575073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000005228b791a99a61f36a130d50600106163b156106e8579190604051907f12abee1200000000000000000000000000000000000000000000000000000000825260a060048301526004356004013560a483015260c4820193602460043501845b6004356004013581106106a75750507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8386030160248401526024356004013585526020850160206024356004013560051b8701019560248035019186905b6024356004013582106102f55787878181808d8b73ffffffffffffffffffffffffffffffffffffffff8c3360448601521660648401521515608483015203813473ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000005228b791a99a61f36a130d50600106165af180156102ea576102a8575080f35b67ffffffffffffffff81116102bd5760405280f35b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6040513d84823e3d90fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0838a97969597030181527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3d602435360301863512156106a35773ffffffffffffffffffffffffffffffffffffffff61037460248035893501016109f1565b168952604460243587350101357fffffffff000000000000000000000000000000000000000000000000000000008116810361069f577fffffffff000000000000000000000000000000000000000000000000000000001660208a01526103ea6064602435883501016024803589350101610a17565b60a060408c939c01528060a083015260c082019a60c08260051b8401019b81928c5b8181106104fc575050505050610431608460243589350101602480358a350101610a17565b9a82810360608401528b81526020810160208d60051b8301019c838d5b8281106104a6575050505050506020806104918b9c6001946104838c9d9e9d602460a481358335010191813590350101610aa7565b916080818503910152610af7565b98019201920191909394959850969596610221565b90919293949e8f8682037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00186526104de9084610aa7565b6104e89291610af7565b9e602090810195940192919060010161044e565b909192939d8e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff408783030185527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec1863603019035121561069b5760028f868173ffffffffffffffffffffffffffffffffffffffff61057e8360409535016109f1565b16855273ffffffffffffffffffffffffffffffffffffffff6105a5602084843501016109f1565b16602086015235010135101561069b578e9085823501604001356040820152606080878435010187843501906105da91610a17565b6101409284018390526105ef92840191610a6a565b610600833588016080810190610a17565b83830360808501526106129291610a6a565b908683350160a0013560a08201528683350160c001610630906109f1565b73ffffffffffffffffffffffffffffffffffffffff1660c08201529135860160e08181013590840152610100808201359084015261012092906106769084810190610aa7565b91909381840391015261068892610af7565b9d6020908101949301919060010161040c565b8d80fd5b8880fd5b8780fd5b9093949560408060019287358152602073ffffffffffffffffffffffffffffffffffffffff6106d7828b016109f1565b1690820152019796950191016101c2565b8280fd5b60206107048260043560040135602460043501610b36565b013573ffffffffffffffffffffffffffffffffffffffff811681036108c2576107398260043560040135602460043501610b36565b3590803b1561092857604051917f23b872dd00000000000000000000000000000000000000000000000000000000602084015233602484015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000005228b791a99a61f36a130d506001061660448401526064830152606482528160a081011067ffffffffffffffff60a0840111176108f3578186929160a084930160405282602083519301915af13d15610920573d9067ffffffffffffffff82116108f357604051917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe067ffffffffffffffff601f83018216603f0182168501908111908511176108c657601f82018116603f0116830160405282523d86602084013e5b1561089857805180610873575b505060010161012e565b81602091810103126108c257602001518015908115036108c257610898573880610869565b60046040517fe5605213000000000000000000000000000000000000000000000000000000008152fd5b8480fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60609061085c565b60046040517f09ee12d5000000000000000000000000000000000000000000000000000000008152fd5b60046040517fdbb6f8d9000000000000000000000000000000000000000000000000000000008152fd5b5080fd5b80fd5b90503461097c57817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261097c5760209073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000005228b791a99a61f36a130d50600106168152f35b359073ffffffffffffffffffffffffffffffffffffffff82168203610a1257565b600080fd5b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe182360301811215610a1257016020813591019167ffffffffffffffff8211610a12578160051b36038313610a1257565b90918281527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311610a125760209260051b809284830137010190565b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe182360301811215610a1257016020813591019167ffffffffffffffff8211610a12578136038313610a1257565b601f82602094937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0938186528686013760008582860101520116010190565b9190811015610b465760061b0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea264697066735822122083f44e99e8658c5e7feb5277e594e2cfeba41fbae39e55fad9930f55d13fdecb64736f6c63430008110033

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

00000000000000000000000000000000005228b791a99a61f36a130d50600106

-----Decoded View---------------
Arg [0] : _aggregator (address): 0x00000000005228B791a99a61f36A130d50600106

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000005228b791a99a61f36a130d50600106


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.