ETH Price: $3,344.24 (-1.06%)

Contract

0xD1D9be34afe769B8302e0BcbcBDA2a54884E363c
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Create Forwarder...214976872024-12-28 1:30:354 hrs ago1735349435IN
0xD1D9be34...4884E363c
0 ETH0.017241333.92865948
Create Forwarder...214872612024-12-26 14:33:3539 hrs ago1735223615IN
0xD1D9be34...4884E363c
0 ETH0.034198217.79250174
Create Forwarder...214688652024-12-24 0:50:354 days ago1735001435IN
0xD1D9be34...4884E363c
0 ETH0.032503157.40626052
Create Forwarder...214586452024-12-22 14:30:475 days ago1734877847IN
0xD1D9be34...4884E363c
0 ETH0.043492499.91032009
Create Forwarder...214492372024-12-21 6:57:236 days ago1734764243IN
0xD1D9be34...4884E363c
0 ETH0.035450098.07775843
Create Forwarder...214414362024-12-20 4:46:358 days ago1734669995IN
0xD1D9be34...4884E363c
0 ETH0.03824938.71559421
Create Forwarder...214332682024-12-19 1:23:359 days ago1734571415IN
0xD1D9be34...4884E363c
0 ETH0.0474875910.82065648
Create Forwarder...214253182024-12-17 22:43:3510 days ago1734475415IN
0xD1D9be34...4884E363c
0 ETH0.0692013615.76841595
Create Forwarder...214199992024-12-17 4:55:3511 days ago1734411335IN
0xD1D9be34...4884E363c
0 ETH0.040792949.29519381
Create Forwarder...214154742024-12-16 13:47:3511 days ago1734356855IN
0xD1D9be34...4884E363c
0 ETH0.0642386414.63759598
Create Forwarder...214090722024-12-15 16:20:3512 days ago1734279635IN
0xD1D9be34...4884E363c
0 ETH0.041756819.51482533
Create Forwarder...213985002024-12-14 4:55:2314 days ago1734152123IN
0xD1D9be34...4884E363c
0 ETH0.043171919.83727249
Create Forwarder...213910402024-12-13 3:55:4715 days ago1734062147IN
0xD1D9be34...4884E363c
0 ETH0.052294611.91599393
Create Forwarder...213868632024-12-12 13:56:3515 days ago1734011795IN
0xD1D9be34...4884E363c
0 ETH0.0986427322.47700767
Create Forwarder...213816512024-12-11 20:28:3516 days ago1733948915IN
0xD1D9be34...4884E363c
0 ETH0.1056565424.07519515
Create Forwarder...213757432024-12-11 0:39:3517 days ago1733877575IN
0xD1D9be34...4884E363c
0 ETH0.0706870616.10695177
Create Forwarder...213687042024-12-10 1:03:3518 days ago1733792615IN
0xD1D9be34...4884E363c
0 ETH0.0912348920.78903746
Create Forwarder...213630172024-12-09 6:01:3518 days ago1733724095IN
0xD1D9be34...4884E363c
0 ETH0.043398859.88898388
Create Forwarder...213554622024-12-08 4:43:3520 days ago1733633015IN
0xD1D9be34...4884E363c
0 ETH0.033689567.67659844
Create Forwarder...213503492024-12-07 11:34:3520 days ago1733571275IN
0xD1D9be34...4884E363c
0 ETH0.0448176810.21228294
Create Forwarder...213435062024-12-06 12:38:3521 days ago1733488715IN
0xD1D9be34...4884E363c
0 ETH0.0584956513.3289826
Create Forwarder...213379552024-12-05 18:02:3522 days ago1733421755IN
0xD1D9be34...4884E363c
0 ETH0.1264734728.81859813
Create Forwarder...213325762024-12-04 23:59:3523 days ago1733356775IN
0xD1D9be34...4884E363c
0 ETH0.083029218.91926536
Create Forwarder...213295072024-12-04 13:43:3523 days ago1733319815IN
0xD1D9be34...4884E363c
0 ETH0.0929127621.17136083
Create Forwarder...213258712024-12-04 1:31:3524 days ago1733275895IN
0xD1D9be34...4884E363c
0 ETH0.0934626921.29667106
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
214976872024-12-28 1:30:354 hrs ago1735349435
0xD1D9be34...4884E363c
 Contract Creation0 ETH
214976872024-12-28 1:30:354 hrs ago1735349435
0xD1D9be34...4884E363c
 Contract Creation0 ETH
214976872024-12-28 1:30:354 hrs ago1735349435
0xD1D9be34...4884E363c
 Contract Creation0 ETH
214976872024-12-28 1:30:354 hrs ago1735349435
0xD1D9be34...4884E363c
 Contract Creation0 ETH
214976872024-12-28 1:30:354 hrs ago1735349435
0xD1D9be34...4884E363c
 Contract Creation0 ETH
214976872024-12-28 1:30:354 hrs ago1735349435
0xD1D9be34...4884E363c
 Contract Creation0 ETH
214976872024-12-28 1:30:354 hrs ago1735349435
0xD1D9be34...4884E363c
 Contract Creation0 ETH
214976872024-12-28 1:30:354 hrs ago1735349435
0xD1D9be34...4884E363c
 Contract Creation0 ETH
214976872024-12-28 1:30:354 hrs ago1735349435
0xD1D9be34...4884E363c
 Contract Creation0 ETH
214976872024-12-28 1:30:354 hrs ago1735349435
0xD1D9be34...4884E363c
 Contract Creation0 ETH
214976872024-12-28 1:30:354 hrs ago1735349435
0xD1D9be34...4884E363c
 Contract Creation0 ETH
214976872024-12-28 1:30:354 hrs ago1735349435
0xD1D9be34...4884E363c
 Contract Creation0 ETH
214976872024-12-28 1:30:354 hrs ago1735349435
0xD1D9be34...4884E363c
 Contract Creation0 ETH
214976872024-12-28 1:30:354 hrs ago1735349435
0xD1D9be34...4884E363c
 Contract Creation0 ETH
214976872024-12-28 1:30:354 hrs ago1735349435
0xD1D9be34...4884E363c
 Contract Creation0 ETH
214976872024-12-28 1:30:354 hrs ago1735349435
0xD1D9be34...4884E363c
 Contract Creation0 ETH
214976872024-12-28 1:30:354 hrs ago1735349435
0xD1D9be34...4884E363c
 Contract Creation0 ETH
214976872024-12-28 1:30:354 hrs ago1735349435
0xD1D9be34...4884E363c
 Contract Creation0 ETH
214976872024-12-28 1:30:354 hrs ago1735349435
0xD1D9be34...4884E363c
 Contract Creation0 ETH
214976872024-12-28 1:30:354 hrs ago1735349435
0xD1D9be34...4884E363c
 Contract Creation0 ETH
214976872024-12-28 1:30:354 hrs ago1735349435
0xD1D9be34...4884E363c
 Contract Creation0 ETH
214976872024-12-28 1:30:354 hrs ago1735349435
0xD1D9be34...4884E363c
 Contract Creation0 ETH
214976872024-12-28 1:30:354 hrs ago1735349435
0xD1D9be34...4884E363c
 Contract Creation0 ETH
214976872024-12-28 1:30:354 hrs ago1735349435
0xD1D9be34...4884E363c
 Contract Creation0 ETH
214976872024-12-28 1:30:354 hrs ago1735349435
0xD1D9be34...4884E363c
 Contract Creation0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ForwarderCloneFactory

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2023-10-12
*/

// File: @uniswap/lib/contracts/libraries/TransferHelper.sol



pragma solidity >=0.6.0;

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

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

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

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

// File: ManualForwarder/ERC20Interface.sol


pragma solidity ^0.8.0;

/**
 * Contract that exposes the needed erc20 token functions
 */

abstract contract ERC20Interface {
  // Send _value amount of tokens to address _to
  function transfer(address _to, uint256 _value)
    public
    virtual
    returns (bool success);

  // Get the account balance of another account with address _owner
  function balanceOf(address _owner)
    public
    virtual
    view
    returns (uint256 balance);
}

// File: ManualForwarder/Forwarder.sol



 pragma solidity ^0.8.19;



 contract Forwarder {
    address private parentAddress;
    address private owner;

    event ForwarderDeposited(address from, uint256 value, bytes data);

    function initialize(address _owner, address initAddress) public onlyUninitialized {
        require(initAddress != address(0), "Invalid parent address");
        require(_owner != address(0), "Invalid owner address");
        owner = _owner;
        parentAddress = initAddress;
    }

    modifier onlyUninitialized {
        require(parentAddress == address(0x0), "Already initialized");
        _;
    }

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

    function getParentAddress() public view onlyOwner returns (address) {
        return parentAddress;
    }

    function getOwner() public view onlyOwner returns (address) {
        return owner;
    }

    fallback() external payable {
        flush();
    }

    receive() external payable {
        flush();
    }

    function setParentAddress(address newAddress) public onlyOwner {
        require(newAddress != address(0), "Invalid parent address");
        parentAddress = newAddress;
    }

    function flush() private {
        uint256 value = payable(address(this)).balance;

        if (value == 0) {
            return;
        }

        (bool success, ) = parentAddress.call{ value: value }("");
        require(success, "Flush failed");
        emit ForwarderDeposited(msg.sender, value, msg.data);
    }

    function getERC20Balance(
        address tokenContractAddress
    ) public view returns (uint256) {
        ERC20Interface instance = ERC20Interface(tokenContractAddress);
        address forwarderAddress = address(this);
        uint256 forwarderBalance = instance.balanceOf(forwarderAddress);
        if (forwarderBalance == 0) {
            return 0;
        }
        return forwarderBalance;
    }

    function flushTokens(address tokenContractAddress) external onlyOwner {
        ERC20Interface instance = ERC20Interface(tokenContractAddress);
        address forwarderAddress = address(this);
        uint256 forwarderBalance = instance.balanceOf(forwarderAddress);
        if (forwarderBalance == 0) {
            return;
        }

        TransferHelper.safeTransfer(
            tokenContractAddress,
            parentAddress,
            forwarderBalance
        );
    }
}
// File: @openzeppelin/contracts/proxy/Clones.sol


// OpenZeppelin Contracts (last updated v4.8.0) (proxy/Clones.sol)

pragma solidity ^0.8.0;

/**
 * @dev https://eips.ethereum.org/EIPS/eip-1167[EIP 1167] is a standard for
 * deploying minimal proxy contracts, also known as "clones".
 *
 * > To simply and cheaply clone contract functionality in an immutable way, this standard specifies
 * > a minimal bytecode implementation that delegates all calls to a known, fixed address.
 *
 * The library includes functions to deploy a proxy using either `create` (traditional deployment) or `create2`
 * (salted deterministic deployment). It also includes functions to predict the addresses of clones deployed using the
 * deterministic method.
 *
 * _Available since v3.4._
 */
library Clones {
    /**
     * @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`.
     *
     * This function uses the create opcode, which should never revert.
     */
    function clone(address implementation) internal returns (address instance) {
        /// @solidity memory-safe-assembly
        assembly {
            // Cleans the upper 96 bits of the `implementation` word, then packs the first 3 bytes
            // of the `implementation` address with the bytecode before the address.
            mstore(0x00, or(shr(0xe8, shl(0x60, implementation)), 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000))
            // Packs the remaining 17 bytes of `implementation` with the bytecode after the address.
            mstore(0x20, or(shl(0x78, implementation), 0x5af43d82803e903d91602b57fd5bf3))
            instance := create(0, 0x09, 0x37)
        }
        require(instance != address(0), "ERC1167: create failed");
    }

    /**
     * @dev Deploys and returns the address of a clone that mimics the behaviour of `implementation`.
     *
     * This function uses the create2 opcode and a `salt` to deterministically deploy
     * the clone. Using the same `implementation` and `salt` multiple time will revert, since
     * the clones cannot be deployed twice at the same address.
     */
    function cloneDeterministic(address implementation, bytes32 salt) internal returns (address instance) {
        /// @solidity memory-safe-assembly
        assembly {
            // Cleans the upper 96 bits of the `implementation` word, then packs the first 3 bytes
            // of the `implementation` address with the bytecode before the address.
            mstore(0x00, or(shr(0xe8, shl(0x60, implementation)), 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000))
            // Packs the remaining 17 bytes of `implementation` with the bytecode after the address.
            mstore(0x20, or(shl(0x78, implementation), 0x5af43d82803e903d91602b57fd5bf3))
            instance := create2(0, 0x09, 0x37, salt)
        }
        require(instance != address(0), "ERC1167: create2 failed");
    }

    /**
     * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}.
     */
    function predictDeterministicAddress(
        address implementation,
        bytes32 salt,
        address deployer
    ) internal pure returns (address predicted) {
        /// @solidity memory-safe-assembly
        assembly {
            let ptr := mload(0x40)
            mstore(add(ptr, 0x38), deployer)
            mstore(add(ptr, 0x24), 0x5af43d82803e903d91602b57fd5bf3ff)
            mstore(add(ptr, 0x14), implementation)
            mstore(ptr, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73)
            mstore(add(ptr, 0x58), salt)
            mstore(add(ptr, 0x78), keccak256(add(ptr, 0x0c), 0x37))
            predicted := keccak256(add(ptr, 0x43), 0x55)
        }
    }

    /**
     * @dev Computes the address of a clone deployed using {Clones-cloneDeterministic}.
     */
    function predictDeterministicAddress(address implementation, bytes32 salt)
        internal
        view
        returns (address predicted)
    {
        return predictDeterministicAddress(implementation, salt, address(this));
    }
}

// File: ManualForwarder/ForwarderCloneFactory.sol



 pragma solidity ^0.8.19;



 contract ForwarderCloneFactory {
    address immutable public forwarderImplementation;
    event ForwardersDeployed(address[] addresses);

    constructor() {
        forwarderImplementation = address(new Forwarder());
    }

    function createForwarders(address parent, uint8 numForwarders) external {
        address[] memory forwarders = new address[](numForwarders);
        for (uint8 i = 0; i < numForwarders; i++) {
            address clone = Clones.clone(forwarderImplementation);
            Forwarder(payable(clone)).initialize(msg.sender, parent);
            forwarders[i] = clone;
        }
        emit ForwardersDeployed(forwarders);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"ForwardersDeployed","type":"event"},{"inputs":[{"internalType":"address","name":"parent","type":"address"},{"internalType":"uint8","name":"numForwarders","type":"uint8"}],"name":"createForwarders","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"forwarderImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60a060405234801561001057600080fd5b5060405161001d9061004b565b604051809103906000f080158015610039573d6000803e3d6000fd5b506001600160a01b0316608052610058565b61087f8061043983390190565b6080516103c1610078600039600081816055015260f501526103c16000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063963740d01461003b578063e38d60a114610050575b600080fd5b61004e61004936600461029a565b610093565b005b6100777f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b60008160ff1667ffffffffffffffff8111156100b1576100b16102e5565b6040519080825280602002602001820160405280156100da578160200160208202803683370190505b50905060005b8260ff168160ff1610156101bf5760006101197f00000000000000000000000000000000000000000000000000000000000000006101fc565b60405163485cc95560e01b81523360048201526001600160a01b0387811660248301529192509082169063485cc95590604401600060405180830381600087803b15801561016657600080fd5b505af115801561017a573d6000803e3d6000fd5b5050505080838360ff1681518110610194576101946102fb565b6001600160a01b039092166020928302919091019091015250806101b781610311565b9150506100e0565b507fc990a1b7da1e9479510ae69bc20745b21fecef727aab39780e183544b8a53ba5816040516101ef919061033e565b60405180910390a1505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f090506001600160a01b0381166102955760405162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b604482015260640160405180910390fd5b919050565b600080604083850312156102ad57600080fd5b82356001600160a01b03811681146102c457600080fd5b9150602083013560ff811681146102da57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff810361033557634e487b7160e01b600052601160045260246000fd5b60010192915050565b6020808252825182820181905260009190848201906040850190845b8181101561037f5783516001600160a01b03168352928401929184019160010161035a565b5090969550505050505056fea264697066735822122093f49d17f4fc6b50901f13b02dbed0259fff5db2680cd45c705a04af3888f5f664736f6c63430008130033608060405234801561001057600080fd5b5061085f806100206000396000f3fe6080604052600436106100595760003560e01c80633ef1336714610070578063485cc95514610090578063893d20e8146100b057806391fa0555146100e2578063b588d225146100f7578063fa5afe401461012557610068565b3661006857610066610145565b005b610066610145565b34801561007c57600080fd5b5061006661008b3660046106fe565b61022c565b34801561009c57600080fd5b506100666100ab366004610720565b6102f3565b3480156100bc57600080fd5b506100c561040d565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100ee57600080fd5b506100c561044a565b34801561010357600080fd5b506101176101123660046106fe565b610487565b6040519081526020016100d9565b34801561013157600080fd5b506100666101403660046106fe565b610516565b303160008190036101535750565b600080546040516001600160a01b039091169083908381818185875af1925050503d80600081146101a0576040519150601f19603f3d011682016040523d82523d6000602084013e6101a5565b606091505b50509050806101ea5760405162461bcd60e51b815260206004820152600c60248201526b119b1d5cda0819985a5b195960a21b60448201526064015b60405180910390fd5b7f69b31548dea9b3b707b4dff357d326e3e9348b24e7a6080a218a6edeeec48f9b33836000366040516102209493929190610753565b60405180910390a15050565b6001546001600160a01b031633146102565760405162461bcd60e51b81526004016101e19061079b565b6040516370a0823160e01b8152306004820181905282916000906001600160a01b038416906370a0823190602401602060405180830381865afa1580156102a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102c591906107bf565b9050806000036102d55750505050565b6000546102ed9085906001600160a01b0316836105b1565b50505050565b6000546001600160a01b0316156103425760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b60448201526064016101e1565b6001600160a01b0381166103915760405162461bcd60e51b8152602060048201526016602482015275496e76616c696420706172656e74206164647265737360501b60448201526064016101e1565b6001600160a01b0382166103df5760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964206f776e6572206164647265737360581b60448201526064016101e1565b600180546001600160a01b039384166001600160a01b03199182161790915560008054929093169116179055565b6001546000906001600160a01b0316331461043a5760405162461bcd60e51b81526004016101e19061079b565b506001546001600160a01b031690565b6001546000906001600160a01b031633146104775760405162461bcd60e51b81526004016101e19061079b565b506000546001600160a01b031690565b6040516370a0823160e01b8152306004820181905260009183919083906001600160a01b038416906370a0823190602401602060405180830381865afa1580156104d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f991906107bf565b90508060000361050e57506000949350505050565b949350505050565b6001546001600160a01b031633146105405760405162461bcd60e51b81526004016101e19061079b565b6001600160a01b03811661058f5760405162461bcd60e51b8152602060048201526016602482015275496e76616c696420706172656e74206164647265737360501b60448201526064016101e1565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161060d91906107d8565b6000604051808303816000865af19150503d806000811461064a576040519150601f19603f3d011682016040523d82523d6000602084013e61064f565b606091505b50915091508180156106795750805115806106795750808060200190518101906106799190610807565b6106db5760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201526c185b9cd9995c8819985a5b1959609a1b60648201526084016101e1565b5050505050565b80356001600160a01b03811681146106f957600080fd5b919050565b60006020828403121561071057600080fd5b610719826106e2565b9392505050565b6000806040838503121561073357600080fd5b61073c836106e2565b915061074a602084016106e2565b90509250929050565b6001600160a01b0385168152602081018490526060604082018190528101829052818360808301376000818301608090810191909152601f909201601f191601019392505050565b6020808252600a908201526927b7363c9027bbb732b960b11b604082015260600190565b6000602082840312156107d157600080fd5b5051919050565b6000825160005b818110156107f957602081860181015185830152016107df565b506000920191825250919050565b60006020828403121561081957600080fd5b8151801515811461071957600080fdfea2646970667358221220a4c6ce68727c95d3f4e5b601f91f0b1b4bf56162eb218cb6ed2a8ed28ba7478264736f6c63430008130033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063963740d01461003b578063e38d60a114610050575b600080fd5b61004e61004936600461029a565b610093565b005b6100777f0000000000000000000000003a5fb753285ac3a67c6b0d03e121921b2a1428be81565b6040516001600160a01b03909116815260200160405180910390f35b60008160ff1667ffffffffffffffff8111156100b1576100b16102e5565b6040519080825280602002602001820160405280156100da578160200160208202803683370190505b50905060005b8260ff168160ff1610156101bf5760006101197f0000000000000000000000003a5fb753285ac3a67c6b0d03e121921b2a1428be6101fc565b60405163485cc95560e01b81523360048201526001600160a01b0387811660248301529192509082169063485cc95590604401600060405180830381600087803b15801561016657600080fd5b505af115801561017a573d6000803e3d6000fd5b5050505080838360ff1681518110610194576101946102fb565b6001600160a01b039092166020928302919091019091015250806101b781610311565b9150506100e0565b507fc990a1b7da1e9479510ae69bc20745b21fecef727aab39780e183544b8a53ba5816040516101ef919061033e565b60405180910390a1505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008260601b60e81c176000526e5af43d82803e903d91602b57fd5bf38260781b17602052603760096000f090506001600160a01b0381166102955760405162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b604482015260640160405180910390fd5b919050565b600080604083850312156102ad57600080fd5b82356001600160a01b03811681146102c457600080fd5b9150602083013560ff811681146102da57600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff810361033557634e487b7160e01b600052601160045260246000fd5b60010192915050565b6020808252825182820181905260009190848201906040850190845b8181101561037f5783516001600160a01b03168352928401929184019160010161035a565b5090969550505050505056fea264697066735822122093f49d17f4fc6b50901f13b02dbed0259fff5db2680cd45c705a04af3888f5f664736f6c63430008130033

Deployed Bytecode Sourcemap

9183:675:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9421:434;;;;;;:::i;:::-;;:::i;:::-;;9221:48;;;;;;;;-1:-1:-1;;;;;634:32:1;;;616:51;;604:2;589:18;9221:48:0;;;;;;;9421:434;9504:27;9548:13;9534:28;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9534:28:0;;9504:58;;9578:7;9573:229;9595:13;9591:17;;:1;:17;;;9573:229;;;9630:13;9646:37;9659:23;9646:12;:37::i;:::-;9698:56;;-1:-1:-1;;;9698:56:0;;9735:10;9698:56;;;1022:34:1;-1:-1:-1;;;;;1092:15:1;;;1072:18;;;1065:43;9630:53:0;;-1:-1:-1;9698:36:0;;;;;;957:18:1;;9698:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9785:5;9769:10;9780:1;9769:13;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9769:21:0;;;:13;;;;;;;;;;;:21;-1:-1:-1;9610:3:0;;;;:::i;:::-;;;;9573:229;;;;9817:30;9836:10;9817:30;;;;;;:::i;:::-;;;;;;;;9493:362;9421:434;;:::o;5960:770::-;6017:16;6354:48;6336:14;6330:4;6326:25;6320:4;6316:36;6313:90;6307:4;6300:104;6563:32;6546:14;6540:4;6536:25;6533:63;6527:4;6520:77;6639:4;6633;6630:1;6623:21;6611:33;-1:-1:-1;;;;;;6673:22:0;;6665:57;;;;-1:-1:-1;;;6665:57:0;;2393:2:1;6665:57:0;;;2375:21:1;2432:2;2412:18;;;2405:30;-1:-1:-1;;;2451:18:1;;;2444:52;2513:18;;6665:57:0;;;;;;;;5960:770;;;:::o;14:451:1:-;80:6;88;141:2;129:9;120:7;116:23;112:32;109:52;;;157:1;154;147:12;109:52;183:23;;-1:-1:-1;;;;;235:31:1;;225:42;;215:70;;281:1;278;271:12;215:70;304:5;-1:-1:-1;361:2:1;346:18;;333:32;409:4;396:18;;384:31;;374:59;;429:1;426;419:12;374:59;452:7;442:17;;;14:451;;;;;:::o;678:127::-;739:10;734:3;730:20;727:1;720:31;770:4;767:1;760:15;794:4;791:1;784:15;1119:127;1180:10;1175:3;1171:20;1168:1;1161:31;1211:4;1208:1;1201:15;1235:4;1232:1;1225:15;1251:272;1288:3;1332:4;1325:5;1321:16;1361:4;1352:7;1349:17;1346:140;;1408:10;1403:3;1399:20;1396:1;1389:31;1443:4;1440:1;1433:15;1471:4;1468:1;1461:15;1346:140;1515:1;1502:15;;1251:272;-1:-1:-1;;1251:272:1:o;1528:658::-;1699:2;1751:21;;;1821:13;;1724:18;;;1843:22;;;1670:4;;1699:2;1922:15;;;;1896:2;1881:18;;;1670:4;1965:195;1979:6;1976:1;1973:13;1965:195;;;2044:13;;-1:-1:-1;;;;;2040:39:1;2028:52;;2135:15;;;;2100:12;;;;2076:1;1994:9;1965:195;;;-1:-1:-1;2177:3:1;;1528:658;-1:-1:-1;;;;;;1528:658:1:o

Swarm Source

ipfs://a4c6ce68727c95d3f4e5b601f91f0b1b4bf56162eb218cb6ed2a8ed28ba74782

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ 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.