Contract 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e 12

 
Txn Hash Method
Block
From
To
Value
0x188f42cd47a55778a002502a64053591bbf1a2b1b1678056256e66ddba41c00fDeploy142503942024-05-09 21:28:5514 days 10 hrs ago0xbb566182f35b9e5ae04db02a5450cc156d2f89c1 IN  0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e0 ETH0.0003636406710.25
0x8fe6806c4eb6e042714b2ceaa5b4654c4a390b7e152fc36032908b3dfb0f3bbbDeploy142490842024-05-09 20:45:1514 days 11 hrs ago0xbb566182f35b9e5ae04db02a5450cc156d2f89c1 IN  0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e0 ETH0.0011292465770.25
0x1a233695cd12f9fafe5d847ec7118fb0050165d7c6bc98e12d6f11a2ccd6fb0bDeploy135512922024-04-23 17:05:3130 days 14 hrs ago0xbb566182f35b9e5ae04db02a5450cc156d2f89c1 IN  0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e0 ETH0.0007621439081
0xcacdc9d6cc217c61221689d2891a79aa2807afe0138c77cb114384931542762cDeploy135512882024-04-23 17:05:2330 days 14 hrs ago0xbb566182f35b9e5ae04db02a5450cc156d2f89c1 IN  0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e0 ETH0.0006883848941
0xedaf222c58384ff75a649bf824b0ed34f06fdf9dc461edc8846ced71e064f2b2Deploy111000772024-02-26 23:18:2187 days 8 hrs ago0xbb566182f35b9e5ae04db02a5450cc156d2f89c1 IN  0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e0 ETH0.0061895516730.01
0x443a759ab29e4d65ad43c7b60e289142659644513738b6cf5f14727080b3d037Deploy111000262024-02-26 23:16:3987 days 8 hrs ago0xbb566182f35b9e5ae04db02a5450cc156d2f89c1 IN  0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e0 ETH0.0018968002350.01
0x50b4476bdba2b25b7d1b11ca68de08f6070827d0f9ab77b39d22bae0dde98f93Deploy99303752024-01-30 21:28:17114 days 10 hrs ago0xbb566182f35b9e5ae04db02a5450cc156d2f89c1 IN  0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e0 ETH0.0099293321831
0x4b34be95f38c2ac7dff3d271e5deb1de8d42e72c992a5b5052a27b030b860e1eDeploy95007492024-01-20 22:47:25124 days 9 hrs ago0xffca0d6986099fbdb3b6ad9b6aa5df5ed1d44f0c IN  0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e0 ETH0.0007961917910.1
0xc6af3dfee9947bd7bf5b8e1b475aed81b29371de1cf0fda4381c1b16f8d72b2bDeploy95006602024-01-20 22:44:27124 days 9 hrs ago0xffca0d6986099fbdb3b6ad9b6aa5df5ed1d44f0c IN  0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e0 ETH0.0007376231860.1
0x4ce35b1c1c6871f2f26043769d80cb605c1518ebec1d92409cb091878effba43Deploy95006552024-01-20 22:44:17124 days 9 hrs ago0xffca0d6986099fbdb3b6ad9b6aa5df5ed1d44f0c IN  0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e0 ETH0.001743511220.1
0x91bfe31d166e35fbe3b19797f1bafe587783bce9377079bb73766d4f4520d4a3Deploy95006502024-01-20 22:44:07124 days 9 hrs ago0xffca0d6986099fbdb3b6ad9b6aa5df5ed1d44f0c IN  0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e0 ETH0.0006124453730.1
0x5149a2d6c0605c3e58505f9b3628468a77ba10302889b4fd7f28e18ed4f28b78Deploy95006452024-01-20 22:43:57124 days 9 hrs ago0xffca0d6986099fbdb3b6ad9b6aa5df5ed1d44f0c IN  0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e0 ETH0.0030028118730.1
0xef998f7c7b0927e4fc7e3fe14ecb896042c1fbcc40850fc9f90732530b13c826Deploy95006392024-01-20 22:43:45124 days 9 hrs ago0xffca0d6986099fbdb3b6ad9b6aa5df5ed1d44f0c IN  0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e0 ETH0.0004347944250.1
0xd08ce8dd2206033eef33577891509778cde923048e009d8bba452bad455faa29Deploy95006332024-01-20 22:43:33124 days 9 hrs ago0xffca0d6986099fbdb3b6ad9b6aa5df5ed1d44f0c IN  0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e0 ETH0.0012346241970.1
0x76a51b038f9e95ff2abf02142549a55b372651199d8ab56ef39a033c79e3df5eDeploy95006262024-01-20 22:43:19124 days 9 hrs ago0xffca0d6986099fbdb3b6ad9b6aa5df5ed1d44f0c IN  0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e0 ETH0.0004266633750.1
0x859d45d9df8b8f3caa1c5d7b60b98aff96f0ab300840f2c844666f8e4599ca82Deploy95006212024-01-20 22:43:09124 days 9 hrs ago0xffca0d6986099fbdb3b6ad9b6aa5df5ed1d44f0c IN  0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e0 ETH0.0007062955150.1
0xb1c1e867d453df269028b0501499db91bcf82894b761a56e969c509081759b4fDeploy95006162024-01-20 22:42:59124 days 9 hrs ago0xffca0d6986099fbdb3b6ad9b6aa5df5ed1d44f0c IN  0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e0 ETH0.0004437528410.1
0x7f1acf3528cb287cb64919496a7b1b98cafc3d437fe29253a05e4de5fd06ad33Deploy95006112024-01-20 22:42:49124 days 9 hrs ago0xffca0d6986099fbdb3b6ad9b6aa5df5ed1d44f0c IN  0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e0 ETH0.0003745160830.1
0x792301f0839c05b4dfdc37c1ae2e047a5edb8de75f6bf4560a8614546d9b9f59Deploy95006052024-01-20 22:42:37124 days 9 hrs ago0xffca0d6986099fbdb3b6ad9b6aa5df5ed1d44f0c IN  0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e0 ETH0.0011766888110.1
0xf74938196c316dc765009d9bcfed553dd4fb12da36b2d1f22c4ad7acfc3998edDeploy95006002024-01-20 22:42:27124 days 9 hrs ago0xffca0d6986099fbdb3b6ad9b6aa5df5ed1d44f0c IN  0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e0 ETH0.0035266261250.1
0xcc83ccde9cba96a2463e456064c4ea170c0093b997f4b997523d113f39cf1655Deploy95005932024-01-20 22:42:13124 days 9 hrs ago0xffca0d6986099fbdb3b6ad9b6aa5df5ed1d44f0c IN  0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e0 ETH0.0013020159010.1
0x45556fdc7921a642bfdf1f995f4e9c23dd35ce99d7726697895cbd9c7a4a749eDeploy95005882024-01-20 22:42:03124 days 9 hrs ago0xffca0d6986099fbdb3b6ad9b6aa5df5ed1d44f0c IN  0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e0 ETH0.0028166605110.1
0x8a54aff1d85dd551fba601d224982065866937d8034123f30d04e9770aabeb22Deploy95005152024-01-20 22:39:37124 days 9 hrs ago0xffca0d6986099fbdb3b6ad9b6aa5df5ed1d44f0c IN  0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e0 ETH0.0021503573980.1
0xb810618b48dcf2c93b4235af08f0094560534bf443fd9a01369c9d773dbfb10aDeploy95005102024-01-20 22:39:27124 days 9 hrs ago0xffca0d6986099fbdb3b6ad9b6aa5df5ed1d44f0c IN  0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e0 ETH0.0016741047650.1
0xe53003f37788020a0062fbdc87d1e2f637b93250dabf0bab4dde5e51e171c371Deploy95005042024-01-20 22:39:15124 days 9 hrs ago0xffca0d6986099fbdb3b6ad9b6aa5df5ed1d44f0c IN  0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e0 ETH0.0005672092960.1
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x188f42cd47a55778a002502a64053591bbf1a2b1b1678056256e66ddba41c00f142503942024-05-09 21:28:5514 days 10 hrs ago 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e  Contract Creation0 ETH
0x8fe6806c4eb6e042714b2ceaa5b4654c4a390b7e152fc36032908b3dfb0f3bbb142490842024-05-09 20:45:1514 days 11 hrs ago 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e  Contract Creation0 ETH
0x1a233695cd12f9fafe5d847ec7118fb0050165d7c6bc98e12d6f11a2ccd6fb0b135512922024-04-23 17:05:3130 days 14 hrs ago 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e  Contract Creation0 ETH
0xcacdc9d6cc217c61221689d2891a79aa2807afe0138c77cb114384931542762c135512882024-04-23 17:05:2330 days 14 hrs ago 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e  Contract Creation0 ETH
0xedaf222c58384ff75a649bf824b0ed34f06fdf9dc461edc8846ced71e064f2b2111000772024-02-26 23:18:2187 days 8 hrs ago 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e  Contract Creation0 ETH
0x443a759ab29e4d65ad43c7b60e289142659644513738b6cf5f14727080b3d037111000262024-02-26 23:16:3987 days 8 hrs ago 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e  Contract Creation0 ETH
0x50b4476bdba2b25b7d1b11ca68de08f6070827d0f9ab77b39d22bae0dde98f9399303752024-01-30 21:28:17114 days 10 hrs ago 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e  Contract Creation0 ETH
0x4b34be95f38c2ac7dff3d271e5deb1de8d42e72c992a5b5052a27b030b860e1e95007492024-01-20 22:47:25124 days 9 hrs ago 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e  Contract Creation0 ETH
0xc6af3dfee9947bd7bf5b8e1b475aed81b29371de1cf0fda4381c1b16f8d72b2b95006602024-01-20 22:44:27124 days 9 hrs ago 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e  Contract Creation0 ETH
0x4ce35b1c1c6871f2f26043769d80cb605c1518ebec1d92409cb091878effba4395006552024-01-20 22:44:17124 days 9 hrs ago 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e  Contract Creation0 ETH
0x91bfe31d166e35fbe3b19797f1bafe587783bce9377079bb73766d4f4520d4a395006502024-01-20 22:44:07124 days 9 hrs ago 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e  Contract Creation0 ETH
0x5149a2d6c0605c3e58505f9b3628468a77ba10302889b4fd7f28e18ed4f28b7895006452024-01-20 22:43:57124 days 9 hrs ago 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e  Contract Creation0 ETH
0xef998f7c7b0927e4fc7e3fe14ecb896042c1fbcc40850fc9f90732530b13c82695006392024-01-20 22:43:45124 days 9 hrs ago 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e  Contract Creation0 ETH
0xd08ce8dd2206033eef33577891509778cde923048e009d8bba452bad455faa2995006332024-01-20 22:43:33124 days 9 hrs ago 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e  Contract Creation0 ETH
0x76a51b038f9e95ff2abf02142549a55b372651199d8ab56ef39a033c79e3df5e95006262024-01-20 22:43:19124 days 9 hrs ago 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e  Contract Creation0 ETH
0x859d45d9df8b8f3caa1c5d7b60b98aff96f0ab300840f2c844666f8e4599ca8295006212024-01-20 22:43:09124 days 9 hrs ago 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e  Contract Creation0 ETH
0xb1c1e867d453df269028b0501499db91bcf82894b761a56e969c509081759b4f95006162024-01-20 22:42:59124 days 9 hrs ago 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e  Contract Creation0 ETH
0x7f1acf3528cb287cb64919496a7b1b98cafc3d437fe29253a05e4de5fd06ad3395006112024-01-20 22:42:49124 days 9 hrs ago 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e  Contract Creation0 ETH
0x792301f0839c05b4dfdc37c1ae2e047a5edb8de75f6bf4560a8614546d9b9f5995006052024-01-20 22:42:37124 days 9 hrs ago 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e  Contract Creation0 ETH
0xf74938196c316dc765009d9bcfed553dd4fb12da36b2d1f22c4ad7acfc3998ed95006002024-01-20 22:42:27124 days 9 hrs ago 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e  Contract Creation0 ETH
0xcc83ccde9cba96a2463e456064c4ea170c0093b997f4b997523d113f39cf165595005932024-01-20 22:42:13124 days 9 hrs ago 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e  Contract Creation0 ETH
0x45556fdc7921a642bfdf1f995f4e9c23dd35ce99d7726697895cbd9c7a4a749e95005882024-01-20 22:42:03124 days 9 hrs ago 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e  Contract Creation0 ETH
0x8a54aff1d85dd551fba601d224982065866937d8034123f30d04e9770aabeb2295005152024-01-20 22:39:37124 days 9 hrs ago 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e  Contract Creation0 ETH
0xb810618b48dcf2c93b4235af08f0094560534bf443fd9a01369c9d773dbfb10a95005102024-01-20 22:39:27124 days 9 hrs ago 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e  Contract Creation0 ETH
0xe53003f37788020a0062fbdc87d1e2f637b93250dabf0bab4dde5e51e171c37195005042024-01-20 22:39:15124 days 9 hrs ago 0x2694a14ea8d91f4cc314a3dbe8819eaadb7e025e  Contract Creation0 ETH
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
HolographGenesis

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion
File 1 of 2 : HolographGenesis.sol
// SPDX-License-Identifier: UNLICENSED
/*

                         ┌───────────┐
                         │ HOLOGRAPH │
                         └───────────┘
╔═════════════════════════════════════════════════════════════╗
║                                                             ║
║                            / ^ \                            ║
║                            ~~*~~            ¸               ║
║                         [ '<>:<>' ]         │░░░            ║
║               ╔╗           _/"\_           ╔╣               ║
║             ┌─╬╬─┐          """          ┌─╬╬─┐             ║
║          ┌─┬┘ ╠╣ └┬─┐       \_/       ┌─┬┘ ╠╣ └┬─┐          ║
║       ┌─┬┘ │  ╠╣  │ └┬─┐           ┌─┬┘ │  ╠╣  │ └┬─┐       ║
║    ┌─┬┘ │  │  ╠╣  │  │ └┬─┐     ┌─┬┘ │  │  ╠╣  │  │ └┬─┐    ║
║ ┌─┬┘ │  │  │  ╠╣  │  │  │ └┬┐ ┌┬┘ │  │  │  ╠╣  │  │  │ └┬─┐ ║
╠┬┘ │  │  │  │  ╠╣  │  │  │  │└¤┘│  │  │  │  ╠╣  │  │  │  │ └┬╣
║│  │  │  │  │  ╠╣  │  │  │  │   │  │  │  │  ╠╣  │  │  │  │  │║
╠╩══╩══╩══╩══╩══╬╬══╩══╩══╩══╩═══╩══╩══╩══╩══╬╬══╩══╩══╩══╩══╩╣
╠┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╣
║               ╠╣                           ╠╣               ║
║               ╠╣                           ╠╣               ║
║    ,          ╠╣     ,        ,'      *    ╠╣               ║
║~~~~~^~~~~~~~~┌╬╬┐~~~^~~~~~~~~^^~~~~~~~~^~~┌╬╬┐~~~~~~~^~~~~~~║
╚══════════════╩╩╩╩═════════════════════════╩╩╩╩══════════════╝
     - one protocol, one bridge = infinite possibilities -


 ***************************************************************

 DISCLAIMER: U.S Patent Pending

 LICENSE: Holograph Limited Public License (H-LPL)

 https://holograph.xyz/licenses/h-lpl/1.0.0

 This license governs use of the accompanying software. If you
 use the software, you accept this license. If you do not accept
 the license, you are not permitted to use the software.

 1. Definitions

 The terms "reproduce," "reproduction," "derivative works," and
 "distribution" have the same meaning here as under U.S.
 copyright law. A "contribution" is the original software, or
 any additions or changes to the software. A "contributor" is
 any person that distributes its contribution under this
 license. "Licensed patents" are a contributor’s patent claims
 that read directly on its contribution.

 2. Grant of Rights

 A) Copyright Grant- Subject to the terms of this license,
 including the license conditions and limitations in sections 3
 and 4, each contributor grants you a non-exclusive, worldwide,
 royalty-free copyright license to reproduce its contribution,
 prepare derivative works of its contribution, and distribute
 its contribution or any derivative works that you create.
 B) Patent Grant- Subject to the terms of this license,
 including the license conditions and limitations in section 3,
 each contributor grants you a non-exclusive, worldwide,
 royalty-free license under its licensed patents to make, have
 made, use, sell, offer for sale, import, and/or otherwise
 dispose of its contribution in the software or derivative works
 of the contribution in the software.

 3. Conditions and Limitations

 A) No Trademark License- This license does not grant you rights
 to use any contributors’ name, logo, or trademarks.
 B) If you bring a patent claim against any contributor over
 patents that you claim are infringed by the software, your
 patent license from such contributor is terminated with
 immediate effect.
 C) If you distribute any portion of the software, you must
 retain all copyright, patent, trademark, and attribution
 notices that are present in the software.
 D) If you distribute any portion of the software in source code
 form, you may do so only under this license by including a
 complete copy of this license with your distribution. If you
 distribute any portion of the software in compiled or object
 code form, you may only do so under a license that complies
 with this license.
 E) The software is licensed “as-is.” You bear all risks of
 using it. The contributors give no express warranties,
 guarantees, or conditions. You may have additional consumer
 rights under your local laws which this license cannot change.
 To the extent permitted under your local laws, the contributors
 exclude all implied warranties, including those of
 merchantability, fitness for a particular purpose and
 non-infringement.

 4. (F) Platform Limitation- The licenses granted in sections
 2.A & 2.B extend only to the software or derivative works that
 you create that run on a Holograph system product.

 ***************************************************************

*/

pragma solidity 0.8.17;

import "./interface/InitializableInterface.sol";

/**
 * @title HOLOGRAPH GENESIS
 * @dev In the beginning there was a smart contract...
 */
contract HolographGenesis {
  uint32 private immutable _version;

  // Nonce to prevent replay attacks on deployer approvals
  uint256 private _approveDeployerNonce;

  // Immutable addresses of the initial deployers
  address private immutable deployer1 = 0xBB566182f35B9E5Ae04dB02a5450CC156d2f89c1;
  address private immutable deployer2 = 0x22ED36947DDd1ae317F7816c410D3c0c58Bb9b90;
  address private immutable deployer3 = 0xFfCA0d6986099FbDb3b6AD9b6aa5DF5ed1d44f0C;
  address private immutable deployer4 = 0xDF9013a9Af763b181EF8acFC0e3229494004e001;
  address private immutable deployer5 = 0x00Ac9Fd50C63f176B49F05FfedA324bD68C7cD69;

  // Mapping of addresses that are approved deployers
  mapping(address => bool) private _approvedDeployers;

  // Events
  event Message(string message);
  event ContractDeployed(address deployedContract);

  // Modifier to restrict function calls to approved deployers
  modifier onlyDeployer() {
    require(_approvedDeployers[msg.sender], "HOLOGRAPH: deployer not approved");
    _;
  }

  /**
   * @dev Sets the initial deployers as approved upon contract creation.
   */
  constructor() {
    _version = 2;

    // Set the immutable deployers as approved
    _approvedDeployers[deployer1] = true;
    _approvedDeployers[deployer2] = true;
    _approvedDeployers[deployer3] = true;
    _approvedDeployers[deployer4] = true;
    _approvedDeployers[deployer5] = true;

    emit Message("The future is Holographic");
  }

  /**
   * @dev Deploy a contract using the EIP-1014 (create2) opcode for deterministic addresses.
   * @param chainId The chain on which to deploy
   * @param saltHash A unique salt for contract creation
   * @param secret A secret part of the salt
   * @param sourceCode The bytecode of the contract to deploy
   * @param initCode The initialization code for the contract
   */
  function deploy(
    uint256 chainId,
    bytes12 saltHash,
    bytes20 secret,
    bytes memory sourceCode,
    bytes memory initCode
  ) external onlyDeployer {
    require(chainId == block.chainid, "HOLOGRAPH: incorrect chain id");
    bytes32 salt = bytes32(abi.encodePacked(secret, saltHash));
    address contractAddress = address(
      uint160(uint256(keccak256(abi.encodePacked(bytes1(0xff), address(this), salt, keccak256(sourceCode)))))
    );
    require(!_isContract(contractAddress), "HOLOGRAPH: already deployed");
    assembly {
      contractAddress := create2(0, add(sourceCode, 0x20), mload(sourceCode), salt)
    }
    require(_isContract(contractAddress), "HOLOGRAPH: deployment failed");
    require(
      InitializableInterface(contractAddress).init(initCode) == InitializableInterface.init.selector,
      "HOLOGRAPH: initialization failed"
    );

    emit ContractDeployed(contractAddress);
  }

  /**
   * @dev Check if an address is an approved deployer.
   * @param deployer Address to check
   * @return bool representing approval status
   */
  function isApprovedDeployer(address deployer) external view returns (bool) {
    return _approvedDeployers[deployer];
  }

  /**
   * @dev Internal function to determine if an address is a deployed contract.
   * @param contractAddress The address to check
   * @return bool representing if the address is a contract
   */
  function _isContract(address contractAddress) internal view returns (bool) {
    bytes32 codehash;
    assembly {
      codehash := extcodehash(contractAddress)
    }
    return (codehash != 0x0 && codehash != 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470);
  }

  /**
   * @dev Approve or disapprove a deployer using multi-signature verification.
   * @param nonce A unique nonce
   * @param newDeployer The address of the deployer to approve or disapprove
   * @param approve Boolean representing the approval status
   * @param sig1 The first signature for multisig
   * @param sig2 The second signature for multisig
   */
  function approveDeployer(
    uint256 nonce,
    address newDeployer,
    bool approve,
    bytes memory sig1,
    bytes memory sig2
  ) external onlyDeployer {
    require(nonce > _approveDeployerNonce, "HOLOGRAPH: invalid nonce");
    _approveDeployerNonce = nonce; // Update the nonce

    // Recover signers
    address signer1 = recoverSigner(nonce, newDeployer, approve, sig1);
    address signer2 = recoverSigner(nonce, newDeployer, approve, sig2);

    // Check that both signers are approved deployers
    require(_approvedDeployers[signer1], "HOLOGRAPH: signer 1 not approved");
    require(_approvedDeployers[signer2], "HOLOGRAPH: signer 2 not approved");

    // Ensure signatures come from two different deployers
    require(signer1 != signer2, "HOLOGRAPH: signatures must be from different deployers");

    // All checks passed, update the deployer approval status
    _approvedDeployers[newDeployer] = approve;

    emit Message(approve ? "HOLOGRAPH: deployer approved" : "HOLOGRAPH: deployer disapproved");
  }

  /**
   * @dev Generates a hash of the message containing nonce, deployer address, and approval status.
   * @param nonce Nonce used in the message
   * @param newDeployer Address of the deployer in the message
   * @param approve Approval status in the message
   * @return bytes32 Ethereum signed message hash
   */
  function getMessageHash(
    uint256 nonce,
    address newDeployer,
    bool approve
  ) public pure returns (bytes32) {
    return keccak256(abi.encodePacked(nonce, newDeployer, approve));
  }

  /**
   * @dev Recreates the Ethereum signed message hash from the plain message hash.
   * @param _messageHash The hash of the original message
   * @return bytes32 Ethereum signed message hash
   */
  function getEthSignedMessageHash(bytes32 _messageHash) public pure returns (bytes32) {
    return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", _messageHash));
  }

  /**
   * @dev Recovers the signer from the signature.
   * @param nonce Nonce used in the message
   * @param newDeployer Address of the deployer in the message
   * @param approve Approval status in the message
   * @param signature The signature to recover
   * @return address of the signer
   */
  function recoverSigner(
    uint256 nonce,
    address newDeployer,
    bool approve,
    bytes memory signature
  ) public pure returns (address) {
    bytes32 messageHash = getMessageHash(nonce, newDeployer, approve);
    bytes32 prefixedHash = getEthSignedMessageHash(messageHash);
    (bytes32 r, bytes32 s, uint8 v) = splitSignature(signature);

    return ecrecover(prefixedHash, v, r, s);
  }

  /**
   * @dev Splits a signature into its r, s, and v components.
   * @param sig The signature to split.
   * @return r The r component of the signature.
   * @return s The s component of the signature.
   * @return v The recovery id component of the signature.
   */
  function splitSignature(bytes memory sig)
    internal
    pure
    returns (
      bytes32 r,
      bytes32 s,
      uint8 v
    )
  {
    require(sig.length == 65, "Invalid signature length");

    assembly {
      // first 32 bytes, after the length prefix
      r := mload(add(sig, 32))
      // second 32 bytes
      s := mload(add(sig, 64))
      // final byte (first byte of the next 32 bytes)
      v := byte(0, mload(add(sig, 96)))
    }
  }

  /**
   * @dev Returns the current nonce for deployer approvals.
   * @return uint256 representing the current nonce
   */
  function getApproveDeployerNonce() external view onlyDeployer returns (uint256) {
    return _approveDeployerNonce;
  }

  /**
   * @dev Returns the version number of the Genesis contract
   * @return uint32 representing the version number
   */
  function getVersion() external view returns (uint32) {
    return _version;
  }
}

File 2 of 2 : InitializableInterface.sol
// SPDX-License-Identifier: UNLICENSED
/*

                         ┌───────────┐
                         │ HOLOGRAPH │
                         └───────────┘
╔═════════════════════════════════════════════════════════════╗
║                                                             ║
║                            / ^ \                            ║
║                            ~~*~~            ¸               ║
║                         [ '<>:<>' ]         │░░░            ║
║               ╔╗           _/"\_           ╔╣               ║
║             ┌─╬╬─┐          """          ┌─╬╬─┐             ║
║          ┌─┬┘ ╠╣ └┬─┐       \_/       ┌─┬┘ ╠╣ └┬─┐          ║
║       ┌─┬┘ │  ╠╣  │ └┬─┐           ┌─┬┘ │  ╠╣  │ └┬─┐       ║
║    ┌─┬┘ │  │  ╠╣  │  │ └┬─┐     ┌─┬┘ │  │  ╠╣  │  │ └┬─┐    ║
║ ┌─┬┘ │  │  │  ╠╣  │  │  │ └┬┐ ┌┬┘ │  │  │  ╠╣  │  │  │ └┬─┐ ║
╠┬┘ │  │  │  │  ╠╣  │  │  │  │└¤┘│  │  │  │  ╠╣  │  │  │  │ └┬╣
║│  │  │  │  │  ╠╣  │  │  │  │   │  │  │  │  ╠╣  │  │  │  │  │║
╠╩══╩══╩══╩══╩══╬╬══╩══╩══╩══╩═══╩══╩══╩══╩══╬╬══╩══╩══╩══╩══╩╣
╠┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╬╬┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴╣
║               ╠╣                           ╠╣               ║
║               ╠╣                           ╠╣               ║
║    ,          ╠╣     ,        ,'      *    ╠╣               ║
║~~~~~^~~~~~~~~┌╬╬┐~~~^~~~~~~~~^^~~~~~~~~^~~┌╬╬┐~~~~~~~^~~~~~~║
╚══════════════╩╩╩╩═════════════════════════╩╩╩╩══════════════╝
     - one protocol, one bridge = infinite possibilities -


 ***************************************************************

 DISCLAIMER: U.S Patent Pending

 LICENSE: Holograph Limited Public License (H-LPL)

 https://holograph.xyz/licenses/h-lpl/1.0.0

 This license governs use of the accompanying software. If you
 use the software, you accept this license. If you do not accept
 the license, you are not permitted to use the software.

 1. Definitions

 The terms "reproduce," "reproduction," "derivative works," and
 "distribution" have the same meaning here as under U.S.
 copyright law. A "contribution" is the original software, or
 any additions or changes to the software. A "contributor" is
 any person that distributes its contribution under this
 license. "Licensed patents" are a contributor’s patent claims
 that read directly on its contribution.

 2. Grant of Rights

 A) Copyright Grant- Subject to the terms of this license,
 including the license conditions and limitations in sections 3
 and 4, each contributor grants you a non-exclusive, worldwide,
 royalty-free copyright license to reproduce its contribution,
 prepare derivative works of its contribution, and distribute
 its contribution or any derivative works that you create.
 B) Patent Grant- Subject to the terms of this license,
 including the license conditions and limitations in section 3,
 each contributor grants you a non-exclusive, worldwide,
 royalty-free license under its licensed patents to make, have
 made, use, sell, offer for sale, import, and/or otherwise
 dispose of its contribution in the software or derivative works
 of the contribution in the software.

 3. Conditions and Limitations

 A) No Trademark License- This license does not grant you rights
 to use any contributors’ name, logo, or trademarks.
 B) If you bring a patent claim against any contributor over
 patents that you claim are infringed by the software, your
 patent license from such contributor is terminated with
 immediate effect.
 C) If you distribute any portion of the software, you must
 retain all copyright, patent, trademark, and attribution
 notices that are present in the software.
 D) If you distribute any portion of the software in source code
 form, you may do so only under this license by including a
 complete copy of this license with your distribution. If you
 distribute any portion of the software in compiled or object
 code form, you may only do so under a license that complies
 with this license.
 E) The software is licensed “as-is.” You bear all risks of
 using it. The contributors give no express warranties,
 guarantees, or conditions. You may have additional consumer
 rights under your local laws which this license cannot change.
 To the extent permitted under your local laws, the contributors
 exclude all implied warranties, including those of
 merchantability, fitness for a particular purpose and
 non-infringement.

 4. (F) Platform Limitation- The licenses granted in sections
 2.A & 2.B extend only to the software or derivative works that
 you create that run on a Holograph system product.

 ***************************************************************

*/

pragma solidity 0.8.17;

/**
 * @title Initializable
 * @author https://github.com/holographxyz
 * @notice Use init instead of constructor
 * @dev This allows for use of init function to make one time initializations without the need of a constructor
 */
interface InitializableInterface {
  /**
   * @notice Used internally to initialize the contract instead of through a constructor
   * @dev This function is called by the deployer/factory when creating a contract
   * @param initPayload abi encoded payload to use for contract initilaization
   */
  function init(bytes memory initPayload) external returns (bytes4);
}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"deployedContract","type":"address"}],"name":"ContractDeployed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"message","type":"string"}],"name":"Message","type":"event"},{"inputs":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"newDeployer","type":"address"},{"internalType":"bool","name":"approve","type":"bool"},{"internalType":"bytes","name":"sig1","type":"bytes"},{"internalType":"bytes","name":"sig2","type":"bytes"}],"name":"approveDeployer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"bytes12","name":"saltHash","type":"bytes12"},{"internalType":"bytes20","name":"secret","type":"bytes20"},{"internalType":"bytes","name":"sourceCode","type":"bytes"},{"internalType":"bytes","name":"initCode","type":"bytes"}],"name":"deploy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getApproveDeployerNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_messageHash","type":"bytes32"}],"name":"getEthSignedMessageHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"newDeployer","type":"address"},{"internalType":"bool","name":"approve","type":"bool"}],"name":"getMessageHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getVersion","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"deployer","type":"address"}],"name":"isApprovedDeployer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"newDeployer","type":"address"},{"internalType":"bool","name":"approve","type":"bool"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"recoverSigner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"}]

61014060405273bb566182f35b9e5ae04db02a5450cc156d2f89c160a0527322ed36947ddd1ae317f7816c410d3c0c58bb9b9060c05273ffca0d6986099fbdb3b6ad9b6aa5df5ed1d44f0c60e05273df9013a9af763b181ef8acfc0e3229494004e0016101005272ac9fd50c63f176b49f05ffeda324bd68c7cd696101205234801561008a57600080fd5b50600260805260a0516001600160a01b039081166000908152600160208190526040808320805460ff19908116841790915560c05185168452818420805482168417905560e0518516845281842080548216841790556101005185168452818420805482168417905561012051909416835291829020805490931617909155517f51a7f65c6325882f237d4aeb43228179cfad48b868511d508e24b4437a819137906101679060208082526019908201527f5468652066757475726520697320486f6c6f6772617068696300000000000000604082015260600190565b60405180910390a160805160a05160c05160e05161010051610120516110f36101ae60003960005050600050506000505060005050600050506000609701526110f36000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063cb33fe541161005b578063cb33fe541461018c578063d288337d1461019f578063dc7faa07146101a7578063fa540801146101f057600080fd5b80630d8e6e2c1461008d57806349aa18fc146100c657806355da4cd0146100db5780636ae675ac14610113575b600080fd5b60405163ffffffff7f00000000000000000000000000000000000000000000000000000000000000001681526020015b60405180910390f35b6100d96100d4366004610dc4565b610251565b005b6100ee6100e9366004610eda565b61068c565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100bd565b61017e610121366004610f42565b6040805160208082019590955260609390931b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000168382015290151560f81b60548301528051603581840301815260559092019052805191012090565b6040519081526020016100bd565b6100d961019a366004610f7e565b6107cd565b61017e610ba2565b6101e06101b5366004610fb4565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205460ff1690565b60405190151581526020016100bd565b61017e6101fe366004610fcf565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b3360009081526001602052604090205460ff166102cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a206465706c6f796572206e6f7420617070726f76656460448201526064015b60405180910390fd5b468514610338576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20696e636f727265637420636861696e20696400000060448201526064016102c6565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000851660208201527fffffffffffffffffffffffff000000000000000000000000000000000000000086166034820152600091016040516020818303038152906040526103a890610fe8565b8351602080860191909120604080517fff00000000000000000000000000000000000000000000000000000000000000818501523060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602182015260358101859052605580820193909352815180820390930183526075019052805191012090915061043781610c22565b1561049e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f484f4c4f47524150483a20616c7265616479206465706c6f796564000000000060448201526064016102c6565b818451602086016000f590506104b381610c22565b610519576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f484f4c4f47524150483a206465706c6f796d656e74206661696c65640000000060448201526064016102c6565b6040517f4ddf47d4000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff831690634ddf47d49061056d908790600401611091565b6020604051808303816000875af115801561058c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b091906110a4565b7fffffffff000000000000000000000000000000000000000000000000000000001614610639576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20696e697469616c697a6174696f6e206661696c656460448201526064016102c6565b60405173ffffffffffffffffffffffffffffffffffffffff821681527f8ffcdc15a283d706d38281f500270d8b5a656918f555de0913d7455e3e6bc1bf906020015b60405180910390a150505050505050565b604080516020808201879052606086901b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000168284015284151560f81b6054830152825160358184030181526055830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a333200000000607584015260918084018290528451808503909101815260b1909301909352815191012060009190600080600061073b87610c5c565b60408051600081526020810180835289905260ff8316918101919091526060810184905260808101839052929550909350915060019060a0016020604051602081039080840390855afa158015610796573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001519b9a5050505050505050505050565b3360009081526001602052604090205460ff16610846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a206465706c6f796572206e6f7420617070726f76656460448201526064016102c6565b60005485116108b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f484f4c4f47524150483a20696e76616c6964206e6f6e6365000000000000000060448201526064016102c6565b60008581556108c28686868661068c565b905060006108d28787878661068c565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604090205490915060ff16610964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a207369676e65722031206e6f7420617070726f76656460448201526064016102c6565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff166109f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a207369676e65722032206e6f7420617070726f76656460448201526064016102c6565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610aae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f484f4c4f47524150483a207369676e617475726573206d75737420626520667260448201527f6f6d20646966666572656e74206465706c6f796572730000000000000000000060648201526084016102c6565b73ffffffffffffffffffffffffffffffffffffffff8616600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168615151790557f51a7f65c6325882f237d4aeb43228179cfad48b868511d508e24b4437a81913785610b5e576040518060400160405280601f81526020017f484f4c4f47524150483a206465706c6f79657220646973617070726f76656400815250610b95565b6040518060400160405280601c81526020017f484f4c4f47524150483a206465706c6f79657220617070726f766564000000008152505b60405161067b9190611091565b3360009081526001602052604081205460ff16610c1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a206465706c6f796572206e6f7420617070726f76656460448201526064016102c6565b5060005490565b6000813f8015801590610c5557507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b60008060008351604114610ccc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e76616c6964207369676e6174757265206c656e677468000000000000000060448201526064016102c6565b50505060208101516040820151606090920151909260009190911a90565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112610d2a57600080fd5b813567ffffffffffffffff80821115610d4557610d45610cea565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610d8b57610d8b610cea565b81604052838152866020858801011115610da457600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a08688031215610ddc57600080fd5b8535945060208601357fffffffffffffffffffffffff000000000000000000000000000000000000000081168114610e1357600080fd5b935060408601357fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081168114610e4857600080fd5b9250606086013567ffffffffffffffff80821115610e6557600080fd5b610e7189838a01610d19565b93506080880135915080821115610e8757600080fd5b50610e9488828901610d19565b9150509295509295909350565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ec557600080fd5b919050565b80358015158114610ec557600080fd5b60008060008060808587031215610ef057600080fd5b84359350610f0060208601610ea1565b9250610f0e60408601610eca565b9150606085013567ffffffffffffffff811115610f2a57600080fd5b610f3687828801610d19565b91505092959194509250565b600080600060608486031215610f5757600080fd5b83359250610f6760208501610ea1565b9150610f7560408501610eca565b90509250925092565b600080600080600060a08688031215610f9657600080fd5b85359450610fa660208701610ea1565b9350610e4860408701610eca565b600060208284031215610fc657600080fd5b610c5582610ea1565b600060208284031215610fe157600080fd5b5035919050565b80516020808301519190811015611027577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8160200360031b1b821691505b50919050565b6000815180845260005b8181101561105357602081850181015186830182015201611037565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081526000610c55602083018461102d565b6000602082840312156110b657600080fd5b81517fffffffff0000000000000000000000000000000000000000000000000000000081168114610c5557600080fdfea164736f6c6343000811000a

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063cb33fe541161005b578063cb33fe541461018c578063d288337d1461019f578063dc7faa07146101a7578063fa540801146101f057600080fd5b80630d8e6e2c1461008d57806349aa18fc146100c657806355da4cd0146100db5780636ae675ac14610113575b600080fd5b60405163ffffffff7f00000000000000000000000000000000000000000000000000000000000000021681526020015b60405180910390f35b6100d96100d4366004610dc4565b610251565b005b6100ee6100e9366004610eda565b61068c565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100bd565b61017e610121366004610f42565b6040805160208082019590955260609390931b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000168382015290151560f81b60548301528051603581840301815260559092019052805191012090565b6040519081526020016100bd565b6100d961019a366004610f7e565b6107cd565b61017e610ba2565b6101e06101b5366004610fb4565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604090205460ff1690565b60405190151581526020016100bd565b61017e6101fe366004610fcf565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b3360009081526001602052604090205460ff166102cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a206465706c6f796572206e6f7420617070726f76656460448201526064015b60405180910390fd5b468514610338576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20696e636f727265637420636861696e20696400000060448201526064016102c6565b604080517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000851660208201527fffffffffffffffffffffffff000000000000000000000000000000000000000086166034820152600091016040516020818303038152906040526103a890610fe8565b8351602080860191909120604080517fff00000000000000000000000000000000000000000000000000000000000000818501523060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602182015260358101859052605580820193909352815180820390930183526075019052805191012090915061043781610c22565b1561049e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f484f4c4f47524150483a20616c7265616479206465706c6f796564000000000060448201526064016102c6565b818451602086016000f590506104b381610c22565b610519576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f484f4c4f47524150483a206465706c6f796d656e74206661696c65640000000060448201526064016102c6565b6040517f4ddf47d4000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff831690634ddf47d49061056d908790600401611091565b6020604051808303816000875af115801561058c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b091906110a4565b7fffffffff000000000000000000000000000000000000000000000000000000001614610639576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20696e697469616c697a6174696f6e206661696c656460448201526064016102c6565b60405173ffffffffffffffffffffffffffffffffffffffff821681527f8ffcdc15a283d706d38281f500270d8b5a656918f555de0913d7455e3e6bc1bf906020015b60405180910390a150505050505050565b604080516020808201879052606086901b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000168284015284151560f81b6054830152825160358184030181526055830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a333200000000607584015260918084018290528451808503909101815260b1909301909352815191012060009190600080600061073b87610c5c565b60408051600081526020810180835289905260ff8316918101919091526060810184905260808101839052929550909350915060019060a0016020604051602081039080840390855afa158015610796573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001519b9a5050505050505050505050565b3360009081526001602052604090205460ff16610846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a206465706c6f796572206e6f7420617070726f76656460448201526064016102c6565b60005485116108b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f484f4c4f47524150483a20696e76616c6964206e6f6e6365000000000000000060448201526064016102c6565b60008581556108c28686868661068c565b905060006108d28787878661068c565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604090205490915060ff16610964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a207369676e65722031206e6f7420617070726f76656460448201526064016102c6565b73ffffffffffffffffffffffffffffffffffffffff811660009081526001602052604090205460ff166109f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a207369676e65722032206e6f7420617070726f76656460448201526064016102c6565b8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610aae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f484f4c4f47524150483a207369676e617475726573206d75737420626520667260448201527f6f6d20646966666572656e74206465706c6f796572730000000000000000000060648201526084016102c6565b73ffffffffffffffffffffffffffffffffffffffff8616600090815260016020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168615151790557f51a7f65c6325882f237d4aeb43228179cfad48b868511d508e24b4437a81913785610b5e576040518060400160405280601f81526020017f484f4c4f47524150483a206465706c6f79657220646973617070726f76656400815250610b95565b6040518060400160405280601c81526020017f484f4c4f47524150483a206465706c6f79657220617070726f766564000000008152505b60405161067b9190611091565b3360009081526001602052604081205460ff16610c1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a206465706c6f796572206e6f7420617070726f76656460448201526064016102c6565b5060005490565b6000813f8015801590610c5557507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b60008060008351604114610ccc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e76616c6964207369676e6174757265206c656e677468000000000000000060448201526064016102c6565b50505060208101516040820151606090920151909260009190911a90565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112610d2a57600080fd5b813567ffffffffffffffff80821115610d4557610d45610cea565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610d8b57610d8b610cea565b81604052838152866020858801011115610da457600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a08688031215610ddc57600080fd5b8535945060208601357fffffffffffffffffffffffff000000000000000000000000000000000000000081168114610e1357600080fd5b935060408601357fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081168114610e4857600080fd5b9250606086013567ffffffffffffffff80821115610e6557600080fd5b610e7189838a01610d19565b93506080880135915080821115610e8757600080fd5b50610e9488828901610d19565b9150509295509295909350565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ec557600080fd5b919050565b80358015158114610ec557600080fd5b60008060008060808587031215610ef057600080fd5b84359350610f0060208601610ea1565b9250610f0e60408601610eca565b9150606085013567ffffffffffffffff811115610f2a57600080fd5b610f3687828801610d19565b91505092959194509250565b600080600060608486031215610f5757600080fd5b83359250610f6760208501610ea1565b9150610f7560408501610eca565b90509250925092565b600080600080600060a08688031215610f9657600080fd5b85359450610fa660208701610ea1565b9350610e4860408701610eca565b600060208284031215610fc657600080fd5b610c5582610ea1565b600060208284031215610fe157600080fd5b5035919050565b80516020808301519190811015611027577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8160200360031b1b821691505b50919050565b6000815180845260005b8181101561105357602081850181015186830182015201611037565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081526000610c55602083018461102d565b6000602082840312156110b657600080fd5b81517fffffffff0000000000000000000000000000000000000000000000000000000081168114610c5557600080fdfea164736f6c6343000811000a

Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.