ETH Price: $2,063.30 (+3.19%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Create Token236134082025-10-19 18:16:23129 days ago1760897783IN
0xD053FDaA...29A287B2C
0.001 ETH0.004443931.13808867
Approve Creator236134012025-10-19 18:14:59129 days ago1760897699IN
0xD053FDaA...29A287B2C
0 ETH0.000075691.63059088
Create Token236132722025-10-19 17:48:59129 days ago1760896139IN
0xD053FDaA...29A287B2C
0.01 ETH0.004443021.13779139
Approve Creator236132622025-10-19 17:46:59129 days ago1760896019IN
0xD053FDaA...29A287B2C
0 ETH0.00007621.64152173
Set Implementati...236132462025-10-19 17:43:35129 days ago1760895815IN
0xD053FDaA...29A287B2C
0 ETH0.00005921.64202401
Create Token236130832025-10-19 17:10:59129 days ago1760893859IN
0xD053FDaA...29A287B2C
0.01 ETH0.004969331.26515778
Approve Creator236130822025-10-19 17:10:47129 days ago1760893847IN
0xD053FDaA...29A287B2C
0 ETH0.000081721.76050698
Transfer Ownersh...236112382025-10-19 10:58:35130 days ago1760871515IN
0xD053FDaA...29A287B2C
0 ETH0.000047231.64874039
Transfer Ownersh...235706112025-10-13 18:35:59135 days ago1760380559IN
0xD053FDaA...29A287B2C
0 ETH0.000063152.20515752
Create Token235696892025-10-13 15:29:35135 days ago1760369375IN
0xD053FDaA...29A287B2C
0.01 ETH0.006923041.76256875
Approve Creator235696622025-10-13 15:24:11135 days ago1760369051IN
0xD053FDaA...29A287B2C
0 ETH0.000101742.19159598
Transfer Ownersh...235696502025-10-13 15:21:47135 days ago1760368907IN
0xD053FDaA...29A287B2C
0 ETH0.00006652.32096921
Transfer Ownersh...235684762025-10-13 11:24:47136 days ago1760354687IN
0xD053FDaA...29A287B2C
0 ETH0.000052731.84037892
Approve Creator235667342025-10-13 5:33:11136 days ago1760333591IN
0xD053FDaA...29A287B2C
0 ETH0.000075031.61632078
Approve Creator235667322025-10-13 5:32:47136 days ago1760333567IN
0xD053FDaA...29A287B2C
0 ETH0.000074781.61100118
Approve Creator235667282025-10-13 5:31:59136 days ago1760333519IN
0xD053FDaA...29A287B2C
0 ETH0.000074851.61244101
Approve Creator235667262025-10-13 5:31:35136 days ago1760333495IN
0xD053FDaA...29A287B2C
0 ETH0.000074461.60410921
Approve Creator235667192025-10-13 5:30:11136 days ago1760333411IN
0xD053FDaA...29A287B2C
0 ETH0.000042711.61049178
Set Implementati...235667152025-10-13 5:29:23136 days ago1760333363IN
0xD053FDaA...29A287B2C
0 ETH0.000058221.61478964
Create Token232602872025-08-31 9:39:23179 days ago1756633163IN
0xD053FDaA...29A287B2C
0.01 ETH0.004685071.14004179
Approve Creator232602832025-08-31 9:38:35179 days ago1756633115IN
0xD053FDaA...29A287B2C
0 ETH0.000053061.14310606
Create Token232600072025-08-31 8:43:11179 days ago1756629791IN
0xD053FDaA...29A287B2C
0.01 ETH0.004608791.12147945
Approve Creator232597842025-08-31 7:58:35179 days ago1756627115IN
0xD053FDaA...29A287B2C
0 ETH0.000053311.14853339
Set Implementati...232597012025-08-31 7:41:59179 days ago1756626119IN
0xD053FDaA...29A287B2C
0 ETH0.000041131.14096945
Set Implementati...232454082025-08-29 7:52:11181 days ago1756453931IN
0xD053FDaA...29A287B2C
0 ETH0.000045671.26665773
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Initialize236134082025-10-19 18:16:23129 days ago1760897783
0xD053FDaA...29A287B2C
0.001 ETH
0x3d602d80236134082025-10-19 18:16:23129 days ago1760897783
0xD053FDaA...29A287B2C
 Contract Creation0 ETH
Initialize236132722025-10-19 17:48:59129 days ago1760896139
0xD053FDaA...29A287B2C
0.01 ETH
0x3d602d80236132722025-10-19 17:48:59129 days ago1760896139
0xD053FDaA...29A287B2C
 Contract Creation0 ETH
Initialize236130832025-10-19 17:10:59129 days ago1760893859
0xD053FDaA...29A287B2C
0.01 ETH
0x3d602d80236130832025-10-19 17:10:59129 days ago1760893859
0xD053FDaA...29A287B2C
 Contract Creation0 ETH
Initialize235696892025-10-13 15:29:35135 days ago1760369375
0xD053FDaA...29A287B2C
0.01 ETH
0x3d602d80235696892025-10-13 15:29:35135 days ago1760369375
0xD053FDaA...29A287B2C
 Contract Creation0 ETH
Initialize232602872025-08-31 9:39:23179 days ago1756633163
0xD053FDaA...29A287B2C
0.01 ETH
0x3d602d80232602872025-08-31 9:39:23179 days ago1756633163
0xD053FDaA...29A287B2C
 Contract Creation0 ETH
Initialize232600072025-08-31 8:43:11179 days ago1756629791
0xD053FDaA...29A287B2C
0.01 ETH
0x3d602d80232600072025-08-31 8:43:11179 days ago1756629791
0xD053FDaA...29A287B2C
 Contract Creation0 ETH
Initialize229742882025-07-22 11:01:59219 days ago1753182119
0xD053FDaA...29A287B2C
0.003 ETH
0x3d602d80229742882025-07-22 11:01:59219 days ago1753182119
0xD053FDaA...29A287B2C
 Contract Creation0 ETH
Initialize229634362025-07-20 22:37:35220 days ago1753051055
0xD053FDaA...29A287B2C
0.003 ETH
0x3d602d80229634362025-07-20 22:37:35220 days ago1753051055
0xD053FDaA...29A287B2C
 Contract Creation0 ETH
Initialize229408672025-07-17 18:58:11223 days ago1752778691
0xD053FDaA...29A287B2C
0.003 ETH
0x3d602d80229408672025-07-17 18:58:11223 days ago1752778691
0xD053FDaA...29A287B2C
 Contract Creation0 ETH
Initialize229352912025-07-17 0:19:59224 days ago1752711599
0xD053FDaA...29A287B2C
0.003 ETH
0x3d602d80229352912025-07-17 0:19:59224 days ago1752711599
0xD053FDaA...29A287B2C
 Contract Creation0 ETH
Initialize229345012025-07-16 21:40:35224 days ago1752702035
0xD053FDaA...29A287B2C
0.003 ETH
0x3d602d80229345012025-07-16 21:40:35224 days ago1752702035
0xD053FDaA...29A287B2C
 Contract Creation0 ETH
Initialize229339152025-07-16 19:42:59224 days ago1752694979
0xD053FDaA...29A287B2C
0.003 ETH
0x3d602d80229339152025-07-16 19:42:59224 days ago1752694979
0xD053FDaA...29A287B2C
 Contract Creation0 ETH
Initialize228716582025-07-08 3:02:23233 days ago1751943743
0xD053FDaA...29A287B2C
0.003 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Factory

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
// SPDX-License-Identifier: None
pragma solidity ^0.8.24;

import "@openzeppelin/contracts/proxy/Clones.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

interface IToken {
    function initialize(bytes calldata params) external payable;
}

interface IValidationLogic {
    function validate(uint256 ethAmt, bytes calldata params) external;
}

contract Factory is Ownable {

    struct ImplementationData {
        address addr;
        uint256 version;
    }

    struct UserToken {
        uint256 tokenType;
        uint256 version;
    }


    IValidationLogic public validationLogic;
    mapping(uint256 => ImplementationData) public tokenImplementations;
    mapping(address => UserToken) public tokenData;
    address[] public createdTokens;
    mapping(address => bool) public canCreate;

    event TokenCreated(address _address);

    error NotApproved();

    constructor(address _validationLogic, address[] memory implementations) Ownable(msg.sender) {
        validationLogic = IValidationLogic(_validationLogic);
        uint256 len = implementations.length;
        for (uint256 i; i < len; i++) {
            tokenImplementations[i] = ImplementationData({addr: implementations[i], version: 1});
        }
    }

    function createToken(uint256 tokenID, bytes calldata params) external payable returns (address newToken) {
        if (!canCreate[msg.sender]) {
            revert NotApproved();
        }
        canCreate[msg.sender] = false;
        ImplementationData storage tokenInfo = tokenImplementations[tokenID];
        validationLogic.validate(msg.value, params);
        newToken = Clones.clone(tokenInfo.addr);
        createdTokens.push(newToken);
        tokenData[newToken] = UserToken({tokenType: tokenID, version: tokenInfo.version});
        IToken(newToken).initialize{value: msg.value}(params);
        emit TokenCreated(newToken);
    }

    function approveCreator(address creator, bool approved) external onlyOwner {
        canCreate[creator] = approved;
    }

    function setImplementations(uint256[] memory ids, address[] memory implementations) external onlyOwner {
        if (ids.length != implementations.length) {
            revert();
        }
        uint256 len = implementations.length;
        for (uint256 i; i < len; i++) {
            ImplementationData storage currImplementation = tokenImplementations[ids[i]];
            if (currImplementation.addr != implementations[i]) {
                currImplementation.addr = implementations[i];
                currImplementation.version += 1;
            }
        }
    }

    function setValidationLogic(address vLogic) external onlyOwner {
        validationLogic = IValidationLogic(vLogic);
    }

}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)

pragma solidity ^0.8.20;

import {Context} from "../utils/Context.sol";

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

    /**
     * @dev The caller account is not authorized to perform an operation.
     */
    error OwnableUnauthorizedAccount(address account);

    /**
     * @dev The owner is not a valid owner account. (eg. `address(0)`)
     */
    error OwnableInvalidOwner(address owner);

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

    /**
     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.
     */
    constructor(address initialOwner) {
        if (initialOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(initialOwner);
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }

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

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        if (newOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (proxy/Clones.sol)

pragma solidity ^0.8.20;

/**
 * @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.
 */
library Clones {
    /**
     * @dev A clone instance deployment failed.
     */
    error ERC1167FailedCreateClone();

    /**
     * @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)
        }
        if (instance == address(0)) {
            revert ERC1167FailedCreateClone();
        }
    }

    /**
     * @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)
        }
        if (instance == address(0)) {
            revert ERC1167FailedCreateClone();
        }
    }

    /**
     * @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));
    }
}

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)

pragma solidity ^0.8.20;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }

    function _contextSuffixLength() internal view virtual returns (uint256) {
        return 0;
    }
}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_validationLogic","type":"address"},{"internalType":"address[]","name":"implementations","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ERC1167FailedCreateClone","type":"error"},{"inputs":[],"name":"NotApproved","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"}],"name":"TokenCreated","type":"event"},{"inputs":[{"internalType":"address","name":"creator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"approveCreator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"canCreate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenID","type":"uint256"},{"internalType":"bytes","name":"params","type":"bytes"}],"name":"createToken","outputs":[{"internalType":"address","name":"newToken","type":"address"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"createdTokens","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"address[]","name":"implementations","type":"address[]"}],"name":"setImplementations","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"vLogic","type":"address"}],"name":"setValidationLogic","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenData","outputs":[{"internalType":"uint256","name":"tokenType","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenImplementations","outputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"version","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"validationLogic","outputs":[{"internalType":"contract IValidationLogic","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

604060808152346101b757610b1f8038038061001a816101d2565b928339810182828203126101b757610031826101f7565b6020838101516001600160401b0394929391928582116101b757019181601f840112156101b7578251918583116101bc576005938360051b9083806100778185016101d2565b8097815201928201019283116101b75783809101915b83831061019f5750505050331561018757600080546001600160a01b0319808216339081178455929490926001600160a01b039283167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08780a38160019716836001541617600155805195855b87811061010f578a51610913908161020c8239f35b825181101561017357838682841b85010151168b51908c82018281108d82111761015f578d5281528681018a8152828952600288528c892091518254881690871617825551908a015588016100fa565b634e487b7160e01b8a52604160045260248afd5b634e487b7160e01b87526032600452602487fd5b8551631e4fbdf760e01b815260006004820152602490fd5b81906101aa846101f7565b815201910190839061008d565b600080fd5b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f191682016001600160401b038111838210176101bc57604052565b51906001600160a01b03821682036101b75756fe6040608081526004908136101561001557600080fd5b600091823560e01c80631672b0a61461077557806327e45c2c14610733578063512ea840146104a85780635b76c04f14610470578063715018a61461041657806371e6977e146103ed5780637804a5dc146103af57806382bc73dc146101f85780638da5cb5b146101d0578063d782d6471461018d578063d897ba96146101335763f2fde38b146100a557600080fd5b3461012f57602036600319011261012f576100be6107b5565b906100c76108b1565b6001600160a01b03918216928315610119575050600054826001600160601b0360a01b821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b50503461018957806003193601126101895761014d6107b5565b9060243591821515809303610185576101646108b1565b60018060a01b03168352600560205282209060ff8019835416911617905580f35b8380fd5b5080fd5b5091346101cd5760203660031901126101cd57823592548310156101cd57506101b760209261082f565b905491519160018060a01b039160031b1c168152f35b80fd5b505034610189578160031936011261018957905490516001600160a01b039091168152602090f35b503461012f578160031936011261012f5780359067ffffffffffffffff908183116103ab57366023840112156103ab576024938184013561023881610817565b94610245835196876107f5565b818652602091878388019160051b830101913683116103935788849101915b83831061039b57505050508535938411610397573660238501121561039757838301359361029185610817565b9461029e845196876107f5565b808652878387019160051b83010191368311610393578801905b82821061036f575050506102ca6108b1565b845194845180960361036b57875b8681106102e3578880f35b6102ed818361089d565b5189526002835283892080546001600160a01b038061030c858b61089d565b511681831603610322575b5050506001016102d8565b61032c848a61089d565b5116906001600160601b0360a01b1617815560018091018054918201809211610359575560013880610317565b634e487b7160e01b8b5260118752898bfd5b8780fd5b81356001600160a01b038116810361038e5781529083019083016102b8565b600080fd5b8980fd5b8680fd5b8235815291810191849101610264565b8480fd5b5050346101895760203660031901126101895760209160ff9082906001600160a01b036103da6107b5565b1681526005855220541690519015158152f35b50503461018957816003193601126101895760015490516001600160a01b039091168152602090f35b83346101cd57806003193601126101cd5761042f6108b1565b600080546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461012f57602036600319011261012f579181923581526002602052206001808060a01b0382541691015482519182526020820152f35b5091908060031936011261018957823591602480359467ffffffffffffffff95868111610185573660238201121561018557808201358781116103ab5783820191848236920101116103ab573385526020976005895260ff8787205416156107235733865260058952868620805460ff19169055878652600289528686206001546001600160a01b039991908a16803b1561071f57888a518092631df7cc5d60e31b8252348a8301528c8b8301528183816105688c8c604484019161087c565b03925af1801561071557610702575b508054608881901c62ffffff16763d602d80600a3d3981f3363d3d373d3d3d363d7300000017895260781b6effffffffffffffffffffffffffffff19166e5af43d82803e903d91602b57fd5bf3178b5289603760098af016998a156106f2578654680100000000000000008110156106e057908b6105fc836001809695018b5561082f565b909283549160031b92831b921b191617905501549088519289840190848210908211176106cc578952825289820190815288875260038a528787209151825551600190910155863b156103ab579161066d889286948851968795869563439fab9160e01b875286015284019161087c565b038134885af180156106c2576106ae575b50507f2e2b3f61b70d2d131b2a807371103cc98d51adcaa5e9a8f9c32658ad8426e74e838251848152a151908152f35b6106b882916107cb565b6101cd578061067e565b83513d84823e3d90fd5b87604188634e487b7160e01b600052526000fd5b634e487b7160e01b8a5260418852888afd5b89516330be1a3d60e21b81528790fd5b61070e909891986107cb565b9638610577565b8a513d8b823e3d90fd5b8880fd5b865163c19f17a960e01b81528490fd5b505034610189576020366003190112610189579081906001600160a01b036107596107b5565b1681526003602052206001815491015482519182526020820152f35b83346101cd5760203660031901126101cd5761078f6107b5565b6107976108b1565b60018060a01b03166001600160601b0360a01b600154161760015580f35b600435906001600160a01b038216820361038e57565b67ffffffffffffffff81116107df57604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176107df57604052565b67ffffffffffffffff81116107df5760051b60200190565b6004548110156108665760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b908060209392818452848401376000828201840152601f01601f1916010190565b80518210156108665760209160051b010190565b6000546001600160a01b031633036108c557565b60405163118cdaa760e01b8152336004820152602490fdfea26469706673582212207e79e4b376f817c0b52d1b71c24b5838c8901538f05ac0f2a98789a80e501f2d64736f6c63430008180033000000000000000000000000771b8e1d68a0ec5fea25da1f12c19e87e816d508000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000002c076b3407c06ded41a6f483de294eefcda0f24c

Deployed Bytecode

0x6040608081526004908136101561001557600080fd5b600091823560e01c80631672b0a61461077557806327e45c2c14610733578063512ea840146104a85780635b76c04f14610470578063715018a61461041657806371e6977e146103ed5780637804a5dc146103af57806382bc73dc146101f85780638da5cb5b146101d0578063d782d6471461018d578063d897ba96146101335763f2fde38b146100a557600080fd5b3461012f57602036600319011261012f576100be6107b5565b906100c76108b1565b6001600160a01b03918216928315610119575050600054826001600160601b0360a01b821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b50503461018957806003193601126101895761014d6107b5565b9060243591821515809303610185576101646108b1565b60018060a01b03168352600560205282209060ff8019835416911617905580f35b8380fd5b5080fd5b5091346101cd5760203660031901126101cd57823592548310156101cd57506101b760209261082f565b905491519160018060a01b039160031b1c168152f35b80fd5b505034610189578160031936011261018957905490516001600160a01b039091168152602090f35b503461012f578160031936011261012f5780359067ffffffffffffffff908183116103ab57366023840112156103ab576024938184013561023881610817565b94610245835196876107f5565b818652602091878388019160051b830101913683116103935788849101915b83831061039b57505050508535938411610397573660238501121561039757838301359361029185610817565b9461029e845196876107f5565b808652878387019160051b83010191368311610393578801905b82821061036f575050506102ca6108b1565b845194845180960361036b57875b8681106102e3578880f35b6102ed818361089d565b5189526002835283892080546001600160a01b038061030c858b61089d565b511681831603610322575b5050506001016102d8565b61032c848a61089d565b5116906001600160601b0360a01b1617815560018091018054918201809211610359575560013880610317565b634e487b7160e01b8b5260118752898bfd5b8780fd5b81356001600160a01b038116810361038e5781529083019083016102b8565b600080fd5b8980fd5b8680fd5b8235815291810191849101610264565b8480fd5b5050346101895760203660031901126101895760209160ff9082906001600160a01b036103da6107b5565b1681526005855220541690519015158152f35b50503461018957816003193601126101895760015490516001600160a01b039091168152602090f35b83346101cd57806003193601126101cd5761042f6108b1565b600080546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461012f57602036600319011261012f579181923581526002602052206001808060a01b0382541691015482519182526020820152f35b5091908060031936011261018957823591602480359467ffffffffffffffff95868111610185573660238201121561018557808201358781116103ab5783820191848236920101116103ab573385526020976005895260ff8787205416156107235733865260058952868620805460ff19169055878652600289528686206001546001600160a01b039991908a16803b1561071f57888a518092631df7cc5d60e31b8252348a8301528c8b8301528183816105688c8c604484019161087c565b03925af1801561071557610702575b508054608881901c62ffffff16763d602d80600a3d3981f3363d3d373d3d3d363d7300000017895260781b6effffffffffffffffffffffffffffff19166e5af43d82803e903d91602b57fd5bf3178b5289603760098af016998a156106f2578654680100000000000000008110156106e057908b6105fc836001809695018b5561082f565b909283549160031b92831b921b191617905501549088519289840190848210908211176106cc578952825289820190815288875260038a528787209151825551600190910155863b156103ab579161066d889286948851968795869563439fab9160e01b875286015284019161087c565b038134885af180156106c2576106ae575b50507f2e2b3f61b70d2d131b2a807371103cc98d51adcaa5e9a8f9c32658ad8426e74e838251848152a151908152f35b6106b882916107cb565b6101cd578061067e565b83513d84823e3d90fd5b87604188634e487b7160e01b600052526000fd5b634e487b7160e01b8a5260418852888afd5b89516330be1a3d60e21b81528790fd5b61070e909891986107cb565b9638610577565b8a513d8b823e3d90fd5b8880fd5b865163c19f17a960e01b81528490fd5b505034610189576020366003190112610189579081906001600160a01b036107596107b5565b1681526003602052206001815491015482519182526020820152f35b83346101cd5760203660031901126101cd5761078f6107b5565b6107976108b1565b60018060a01b03166001600160601b0360a01b600154161760015580f35b600435906001600160a01b038216820361038e57565b67ffffffffffffffff81116107df57604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff8211176107df57604052565b67ffffffffffffffff81116107df5760051b60200190565b6004548110156108665760046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0190600090565b634e487b7160e01b600052603260045260246000fd5b908060209392818452848401376000828201840152601f01601f1916010190565b80518210156108665760209160051b010190565b6000546001600160a01b031633036108c557565b60405163118cdaa760e01b8152336004820152602490fdfea26469706673582212207e79e4b376f817c0b52d1b71c24b5838c8901538f05ac0f2a98789a80e501f2d64736f6c63430008180033

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

000000000000000000000000771b8e1d68a0ec5fea25da1f12c19e87e816d508000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000002c076b3407c06ded41a6f483de294eefcda0f24c

-----Decoded View---------------
Arg [0] : _validationLogic (address): 0x771b8E1D68a0eC5FEa25dA1f12C19E87E816d508
Arg [1] : implementations (address[]): 0x2c076b3407C06dEd41A6f483De294EefcdA0f24c

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000771b8e1d68a0ec5fea25da1f12c19e87e816d508
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [3] : 0000000000000000000000002c076b3407c06ded41a6f483de294eefcda0f24c


Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.