ETH Price: $3,561.76 (+4.74%)

Contract

0x21c3a69EaD9b81863B83757ff2645803fF7c7690
 

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Token Holdings

Sponsored

Transaction Hash
Method
Block
From
To
Value
Deploy1176521852024-03-20 2:52:2787 days ago1710903147IN
0x21c3a69E...3fF7c7690
0 ETH0.000002460.00657084
Deploy1176520912024-03-20 2:49:1987 days ago1710902959IN
0x21c3a69E...3fF7c7690
0 ETH0.000000540.00679735
Deploy1146198012024-01-09 22:12:59157 days ago1704838379IN
0x21c3a69E...3fF7c7690
0 ETH0.000318280.15151295
Deploy1146195292024-01-09 22:03:55157 days ago1704837835IN
0x21c3a69E...3fF7c7690
0 ETH0.000246350.27190642
Deploy1130380412023-12-04 7:27:39194 days ago1701674859IN
0x21c3a69E...3fF7c7690
0 ETH0.001298460.11585994
Deploy1130380172023-12-04 7:26:51194 days ago1701674811IN
0x21c3a69E...3fF7c7690
0 ETH0.002213590.12319003
Deploy1130379132023-12-04 7:23:23194 days ago1701674603IN
0x21c3a69E...3fF7c7690
0 ETH0.001883040.10479443
Deploy1130379102023-12-04 7:23:17194 days ago1701674597IN
0x21c3a69E...3fF7c7690
0 ETH0.001792860.09977606
Deploy1130375022023-12-04 7:09:41194 days ago1701673781IN
0x21c3a69E...3fF7c7690
0 ETH0.001470550.12800736
Deploy1130346242023-12-04 5:33:45194 days ago1701668025IN
0x21c3a69E...3fF7c7690
0 ETH0.000067860.01512064
Deploy1130345952023-12-04 5:32:47194 days ago1701667967IN
0x21c3a69E...3fF7c7690
0 ETH0.000000850.01426502
Deploy1130345932023-12-04 5:32:43194 days ago1701667963IN
0x21c3a69E...3fF7c7690
0 ETH0.000000880.01469539
Deploy1129583532023-12-02 11:11:23196 days ago1701515483IN
0x21c3a69E...3fF7c7690
0 ETH0.000006290.01225869
Deploy1129581282023-12-02 11:03:53196 days ago1701515033IN
0x21c3a69E...3fF7c7690
0 ETH0.000005820.01133281
Deploy1129571292023-12-02 10:30:35196 days ago1701513035IN
0x21c3a69E...3fF7c7690
0 ETH0.000006090.01185687
Deploy1127170072023-11-26 21:06:31201 days ago1701032791IN
0x21c3a69E...3fF7c7690
0 ETH0.000051310.01143213
Deploy1127170062023-11-26 21:06:29201 days ago1701032789IN
0x21c3a69E...3fF7c7690
0 ETH0.000051280.01142693
Deploy1127161772023-11-26 20:38:51201 days ago1701031131IN
0x21c3a69E...3fF7c7690
0 ETH0.000187860.01045499
Deploy1127161672023-11-26 20:38:31201 days ago1701031111IN
0x21c3a69E...3fF7c7690
0 ETH0.000189410.01054121
Deploy1096220682023-09-16 5:41:53273 days ago1694842913IN
0x21c3a69E...3fF7c7690
0 ETH0.005694330.31690158
Deploy1096216932023-09-16 5:29:23273 days ago1694842163IN
0x21c3a69E...3fF7c7690
0 ETH0.005785270.32196253
0x608060401095995122023-09-15 17:10:01273 days ago1694797801IN
 Create: FileDeployer
0 ETH0.000025410.08768626

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
1176521852024-03-20 2:52:2787 days ago1710903147
0x21c3a69E...3fF7c7690
 Contract Creation0 ETH
1176520912024-03-20 2:49:1987 days ago1710902959
0x21c3a69E...3fF7c7690
 Contract Creation0 ETH
1146198012024-01-09 22:12:59157 days ago1704838379
0x21c3a69E...3fF7c7690
 Contract Creation0 ETH
1146195292024-01-09 22:03:55157 days ago1704837835
0x21c3a69E...3fF7c7690
 Contract Creation0 ETH
1130380412023-12-04 7:27:39194 days ago1701674859
0x21c3a69E...3fF7c7690
 Contract Creation0 ETH
1130380412023-12-04 7:27:39194 days ago1701674859
0x21c3a69E...3fF7c7690
 Contract Creation0 ETH
1130380412023-12-04 7:27:39194 days ago1701674859
0x21c3a69E...3fF7c7690
 Contract Creation0 ETH
1130380172023-12-04 7:26:51194 days ago1701674811
0x21c3a69E...3fF7c7690
 Contract Creation0 ETH
1130380172023-12-04 7:26:51194 days ago1701674811
0x21c3a69E...3fF7c7690
 Contract Creation0 ETH
1130380172023-12-04 7:26:51194 days ago1701674811
0x21c3a69E...3fF7c7690
 Contract Creation0 ETH
1130380172023-12-04 7:26:51194 days ago1701674811
0x21c3a69E...3fF7c7690
 Contract Creation0 ETH
1130379132023-12-04 7:23:23194 days ago1701674603
0x21c3a69E...3fF7c7690
 Contract Creation0 ETH
1130379132023-12-04 7:23:23194 days ago1701674603
0x21c3a69E...3fF7c7690
 Contract Creation0 ETH
1130379132023-12-04 7:23:23194 days ago1701674603
0x21c3a69E...3fF7c7690
 Contract Creation0 ETH
1130379132023-12-04 7:23:23194 days ago1701674603
0x21c3a69E...3fF7c7690
 Contract Creation0 ETH
1130379102023-12-04 7:23:17194 days ago1701674597
0x21c3a69E...3fF7c7690
 Contract Creation0 ETH
1130379102023-12-04 7:23:17194 days ago1701674597
0x21c3a69E...3fF7c7690
 Contract Creation0 ETH
1130379102023-12-04 7:23:17194 days ago1701674597
0x21c3a69E...3fF7c7690
 Contract Creation0 ETH
1130379102023-12-04 7:23:17194 days ago1701674597
0x21c3a69E...3fF7c7690
 Contract Creation0 ETH
1130375022023-12-04 7:09:41194 days ago1701673781
0x21c3a69E...3fF7c7690
 Contract Creation0 ETH
1130375022023-12-04 7:09:41194 days ago1701673781
0x21c3a69E...3fF7c7690
 Contract Creation0 ETH
1130375022023-12-04 7:09:41194 days ago1701673781
0x21c3a69E...3fF7c7690
 Contract Creation0 ETH
1130346242023-12-04 5:33:45194 days ago1701668025
0x21c3a69E...3fF7c7690
 Contract Creation0 ETH
1130345952023-12-04 5:32:47194 days ago1701667967
0x21c3a69E...3fF7c7690
 Contract Creation0 ETH
1130345932023-12-04 5:32:43194 days ago1701667963
0x21c3a69E...3fF7c7690
 Contract Creation0 ETH
View All Internal Transactions

Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FileDeployer

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 1 runs

Other Settings:
default evmVersion
File 1 of 1 : FileDeployer.sol
//SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.10;

/**
 * @title File Deployer
 * @author highlight.xyz
 * @notice Simple singleton to deploy bytecode
 */
contract FileDeployer {
    /**
     * @notice Emitted with deployed content address
     * @param name Content name
     * @param contentAddress Content address
     */
    event DeployedContent(bytes32 indexed name, address indexed contentAddress);

    /**
     * @notice Used to deploy bytes as a contract's bytecode
     * @param contents Contents to be deployed as bytecode
     */
    function deploy(bytes32[] calldata names, string[] memory contents) external {
        uint256 contentsLength = contents.length;
        require(names.length == contentsLength, "Mismatched lengths");
        for (uint256 i = 0; i < contentsLength; i++) {
            address contentAddress = _write(bytes(contents[i]));

            emit DeployedContent(names[i], contentAddress);
        }
    }

    /* solhint-disable max-line-length */
    /**
     * @notice Write bytecode to an address
     * @ author SOLMATE
     */
    function _write(bytes memory data) private returns (address pointer) {
        // Prefix the bytecode with a STOP opcode to ensure it cannot be called.
        bytes memory runtimeCode = abi.encodePacked(hex"00", data);

        bytes memory creationCode = abi.encodePacked(
            //---------------------------------------------------------------------------------------------------------------//
            // Opcode  | Opcode + Arguments  | Description  | Stack View                                                     //
            //---------------------------------------------------------------------------------------------------------------//
            // 0x60    |  0x600B             | PUSH1 11     | codeOffset                                                     //
            // 0x59    |  0x59               | MSIZE        | 0 codeOffset                                                   //
            // 0x81    |  0x81               | DUP2         | codeOffset 0 codeOffset                                        //
            // 0x38    |  0x38               | CODESIZE     | codeSize codeOffset 0 codeOffset                               //
            // 0x03    |  0x03               | SUB          | (codeSize - codeOffset) 0 codeOffset                           //
            // 0x80    |  0x80               | DUP          | (codeSize - codeOffset) (codeSize - codeOffset) 0 codeOffset   //
            // 0x92    |  0x92               | SWAP3        | codeOffset (codeSize - codeOffset) 0 (codeSize - codeOffset)   //
            // 0x59    |  0x59               | MSIZE        | 0 codeOffset (codeSize - codeOffset) 0 (codeSize - codeOffset) //
            // 0x39    |  0x39               | CODECOPY     | 0 (codeSize - codeOffset)                                      //
            // 0xf3    |  0xf3               | RETURN       |                                                                //
            //---------------------------------------------------------------------------------------------------------------//
            hex"60_0B_59_81_38_03_80_92_59_39_F3", // Returns all code in the contract except for the first 11 (0B in hex) bytes.
            runtimeCode // The bytecode we want the contract to have after deployment. Capped at 1 byte less than the code size limit.
        );

        /// @solidity memory-safe-assembly
        assembly {
            // Deploy a new contract with the generated creation code.
            // We start 32 bytes into the code to avoid copying the byte length.
            pointer := create(0, add(creationCode, 32), mload(creationCode))
        }

        require(pointer != address(0), "DEPLOYMENT_FAILED");
    }
    /* solhint-enable max-line-length */
}

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

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"name","type":"bytes32"},{"indexed":true,"internalType":"address","name":"contentAddress","type":"address"}],"name":"DeployedContent","type":"event"},{"inputs":[{"internalType":"bytes32[]","name":"names","type":"bytes32[]"},{"internalType":"string[]","name":"contents","type":"string[]"}],"name":"deploy","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b50610448806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f7f26b0314610030575b600080fd5b61004361003e366004610215565b610045565b005b80518281146100905760405162461bcd60e51b81526020600482015260126024820152714d69736d617463686564206c656e6774687360701b60448201526064015b60405180910390fd5b60005b818110156101235760006100bf8483815181106100b2576100b2610387565b602002602001015161012a565b9050806001600160a01b03168686848181106100dd576100dd610387565b905060200201357ffe14388f9ca2db1dd3f79a373c4b7b404fbf781f324bbadc7a3f1ec4d62e7a1560405160405180910390a3508061011b8161039d565b915050610093565b5050505050565b6000808260405160200161013e9190610401565b6040516020818303038152906040529050600081604051602001610162919061041b565b60405160208183030381529060405290508051602082016000f092506001600160a01b0383166101c85760405162461bcd60e51b81526020600482015260116024820152701111541313d65351539517d19052531151607a1b6044820152606401610087565b5050919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561020d5761020d6101cf565b604052919050565b6000806000604080858703121561022b57600080fd5b84356001600160401b038082111561024257600080fd5b818701915087601f83011261025657600080fd5b81358181111561026557600080fd5b602089818360051b860101111561027b57600080fd5b80840197508196508089013593508284111561029657600080fd5b838901935089601f8501126102aa57600080fd5b83359150828211156102be576102be6101cf565b8160051b6102cd8282016101e5565b928352848101820192828101908c8511156102e757600080fd5b83870192505b84831015610375578235868111156103055760008081fd5b8701603f81018e136103175760008081fd5b848101358781111561032b5761032b6101cf565b61033d601f8201601f191687016101e5565b8181528f8b8385010111156103525760008081fd5b818b840188830137600091810187019190915283525091830191908301906102ed565b80985050505050505050509250925092565b634e487b7160e01b600052603260045260246000fd5b60006000198214156103bf57634e487b7160e01b600052601160045260246000fd5b5060010190565b6000815160005b818110156103e757602081850181015186830152016103cd565b818111156103f6576000828601525b509290920192915050565b60008152600061041460018301846103c6565b9392505050565b6a600b5981380380925939f360a81b81526000610414600b8301846103c656fea164736f6c634300080a000a

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f7f26b0314610030575b600080fd5b61004361003e366004610215565b610045565b005b80518281146100905760405162461bcd60e51b81526020600482015260126024820152714d69736d617463686564206c656e6774687360701b60448201526064015b60405180910390fd5b60005b818110156101235760006100bf8483815181106100b2576100b2610387565b602002602001015161012a565b9050806001600160a01b03168686848181106100dd576100dd610387565b905060200201357ffe14388f9ca2db1dd3f79a373c4b7b404fbf781f324bbadc7a3f1ec4d62e7a1560405160405180910390a3508061011b8161039d565b915050610093565b5050505050565b6000808260405160200161013e9190610401565b6040516020818303038152906040529050600081604051602001610162919061041b565b60405160208183030381529060405290508051602082016000f092506001600160a01b0383166101c85760405162461bcd60e51b81526020600482015260116024820152701111541313d65351539517d19052531151607a1b6044820152606401610087565b5050919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561020d5761020d6101cf565b604052919050565b6000806000604080858703121561022b57600080fd5b84356001600160401b038082111561024257600080fd5b818701915087601f83011261025657600080fd5b81358181111561026557600080fd5b602089818360051b860101111561027b57600080fd5b80840197508196508089013593508284111561029657600080fd5b838901935089601f8501126102aa57600080fd5b83359150828211156102be576102be6101cf565b8160051b6102cd8282016101e5565b928352848101820192828101908c8511156102e757600080fd5b83870192505b84831015610375578235868111156103055760008081fd5b8701603f81018e136103175760008081fd5b848101358781111561032b5761032b6101cf565b61033d601f8201601f191687016101e5565b8181528f8b8385010111156103525760008081fd5b818b840188830137600091810187019190915283525091830191908301906102ed565b80985050505050505050509250925092565b634e487b7160e01b600052603260045260246000fd5b60006000198214156103bf57634e487b7160e01b600052601160045260246000fd5b5060010190565b6000815160005b818110156103e757602081850181015186830152016103cd565b818111156103f6576000828601525b509290920192915050565b60008152600061041460018301846103c6565b9392505050565b6a600b5981380380925939f360a81b81526000610414600b8301846103c656fea164736f6c634300080a000a

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
[ 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.