ETH Price: $3,274.74 (+2.73%)

Contract

0x76AC94814b5d1711A8cE35859e7c1Cd8Adb7D3A8

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Token Holdings

Sponsored

Transaction Hash
Method
Block
From
To
Value
Set Approval For...1219500282024-06-27 14:33:5317 days ago1719498833IN
0x76AC9481...8Adb7D3A8
0 ETH0.0000004631270.0058398
Set Approval For...1219255482024-06-27 0:57:5318 days ago1719449873IN
0x76AC9481...8Adb7D3A8
0 ETH0.0000002906230.00381372
Set Approval For...1207327122024-05-30 10:16:4145 days ago1717064201IN
0x76AC9481...8Adb7D3A8
0 ETH0.0000003295180.0041645
Safe Transfer Fr...1203081782024-05-20 14:25:3355 days ago1716215133IN
0x76AC9481...8Adb7D3A8
0 ETH0.0000119636460.0703174
Set Approval For...1190212662024-04-20 19:28:2985 days ago1713641309IN
0x76AC9481...8Adb7D3A8
0 ETH0.0000006061560.00792898
Safe Transfer Fr...1176723652024-03-20 14:05:07116 days ago1710943507IN
0x76AC9481...8Adb7D3A8
0 ETH0.0000021439890.01089904
Purchase1175460092024-03-17 15:53:15119 days ago1710690795IN
0x76AC9481...8Adb7D3A8
0.000042015026484 ETH0.0000014291620.01492936
Purchase1175166062024-03-16 23:33:09120 days ago1710631989IN
0x76AC9481...8Adb7D3A8
0.000042435300632 ETH0.0000007984130.00807146
Purchase1175163982024-03-16 23:26:13120 days ago1710631573IN
0x76AC9481...8Adb7D3A8
0.000042435300632 ETH0.0000010575530.01081567
Set Approval For...1174956822024-03-16 11:55:41120 days ago1710590141IN
0x76AC9481...8Adb7D3A8
0 ETH0.0000005264650.00601081
Purchase1171193122024-03-07 18:50:01129 days ago1709837401IN
0x76AC9481...8Adb7D3A8
0.000042711416165 ETH0.0001220547840.00060319
Purchase1168829792024-03-02 7:32:15134 days ago1709364735IN
0x76AC9481...8Adb7D3A8
0.000041522024128 ETH0.0000812334690.00233885
Purchase1167816732024-02-28 23:15:23137 days ago1709162123IN
0x76AC9481...8Adb7D3A8
0.000128153164294 ETH0.0000955152680.1168063
Transfer From1167679782024-02-28 15:38:53137 days ago1709134733IN
0x76AC9481...8Adb7D3A8
0 ETH0.0001946892860.11980527
Purchase1167435492024-02-28 2:04:35137 days ago1709085875IN
0x76AC9481...8Adb7D3A8
0.000043270588495 ETH0.0000640606010.01854318
Set Approval For...1166439322024-02-25 18:44:01140 days ago1708886641IN
0x76AC9481...8Adb7D3A8
0 ETH0.0000513519040.0024199
Set Approval For...1166252202024-02-25 8:20:17140 days ago1708849217IN
0x76AC9481...8Adb7D3A8
0 ETH0.0000413339760.0038603
Purchase1164367862024-02-20 23:39:09145 days ago1708472349IN
0x76AC9481...8Adb7D3A8
0.000042433722069 ETH0.0000612533340.00324071
Purchase1164271282024-02-20 18:17:13145 days ago1708453033IN
0x76AC9481...8Adb7D3A8
0.000041522024128 ETH0.0000543929070.00392172
Purchase1161860912024-02-15 4:22:39150 days ago1707970959IN
0x76AC9481...8Adb7D3A8
0.000042433722069 ETH0.0000322696280.01291823
Purchase1159731652024-02-10 6:05:07155 days ago1707545107IN
0x76AC9481...8Adb7D3A8
0.000041678182316 ETH0.0000530391330.00148239
Set Approval For...1156641922024-02-03 2:26:01162 days ago1706927161IN
0x76AC9481...8Adb7D3A8
0 ETH0.0000430099370.00428524
Purchase1156514402024-02-02 19:20:57163 days ago1706901657IN
0x76AC9481...8Adb7D3A8
0.000042711416165 ETH0.0000320226970.00460768
Purchase1156140662024-02-01 22:35:09164 days ago1706826909IN
0x76AC9481...8Adb7D3A8
0.000384510277909 ETH0.0000468519430.00484361
Purchase1156140652024-02-01 22:35:07164 days ago1706826907IN
0x76AC9481...8Adb7D3A8
0.000042711416165 ETH0.0000464848680.00445844
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
1175460092024-03-17 15:53:15119 days ago1710690795
0x76AC9481...8Adb7D3A8
0.00004201 ETH
1175166062024-03-16 23:33:09120 days ago1710631989
0x76AC9481...8Adb7D3A8
0.00004243 ETH
1175163982024-03-16 23:26:13120 days ago1710631573
0x76AC9481...8Adb7D3A8
0.00004243 ETH
1171193122024-03-07 18:50:01129 days ago1709837401
0x76AC9481...8Adb7D3A8
0.00004271 ETH
1168829792024-03-02 7:32:15134 days ago1709364735
0x76AC9481...8Adb7D3A8
0.00004152 ETH
1167816732024-02-28 23:15:23137 days ago1709162123
0x76AC9481...8Adb7D3A8
0.00012815 ETH
1167435492024-02-28 2:04:35137 days ago1709085875
0x76AC9481...8Adb7D3A8
0.00004327 ETH
1164367862024-02-20 23:39:09145 days ago1708472349
0x76AC9481...8Adb7D3A8
0.00004243 ETH
1164271282024-02-20 18:17:13145 days ago1708453033
0x76AC9481...8Adb7D3A8
0.00004152 ETH
1161860912024-02-15 4:22:39150 days ago1707970959
0x76AC9481...8Adb7D3A8
0.00004243 ETH
1159731652024-02-10 6:05:07155 days ago1707545107
0x76AC9481...8Adb7D3A8
0.00004167 ETH
1156514402024-02-02 19:20:57163 days ago1706901657
0x76AC9481...8Adb7D3A8
0.00004271 ETH
1156140662024-02-01 22:35:09164 days ago1706826909
0x76AC9481...8Adb7D3A8
0.00038451 ETH
1156140652024-02-01 22:35:07164 days ago1706826907
0x76AC9481...8Adb7D3A8
0.00004271 ETH
1155919872024-02-01 10:19:11164 days ago1706782751
0x76AC9481...8Adb7D3A8
0.00004162 ETH
1155426522024-01-31 6:54:41165 days ago1706684081
0x76AC9481...8Adb7D3A8
0.0000424 ETH
1154643172024-01-29 11:23:31167 days ago1706527411
0x76AC9481...8Adb7D3A8
0.00004152 ETH
1154634722024-01-29 10:55:21167 days ago1706525721
0x76AC9481...8Adb7D3A8
0.00004152 ETH
1153996152024-01-27 23:26:47169 days ago1706398007
0x76AC9481...8Adb7D3A8
0.00008324 ETH
1153353692024-01-26 11:45:15170 days ago1706269515
0x76AC9481...8Adb7D3A8
0.00004263 ETH
1152629482024-01-24 19:31:13172 days ago1706124673
0x76AC9481...8Adb7D3A8
0.0000424 ETH
1152435522024-01-24 8:44:41172 days ago1706085881
0x76AC9481...8Adb7D3A8
0.00004162 ETH
1152195372024-01-23 19:24:11173 days ago1706037851
0x76AC9481...8Adb7D3A8
0.0000424 ETH
1152111422024-01-23 14:44:21173 days ago1706021061
0x76AC9481...8Adb7D3A8
0.0004274 ETH
1151874842024-01-23 1:35:45174 days ago1705973745
0x76AC9481...8Adb7D3A8
0.00041691 ETH
View All Internal Transactions

Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x5DAF5Aa5...53e698Cc9
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
Holographer

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion
File 1 of 7 : Holographer.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.13;

import "../abstract/Admin.sol";
import "../abstract/Initializable.sol";

import "../interface/HolographInterface.sol";
import "../interface/HolographerInterface.sol";
import "../interface/HolographRegistryInterface.sol";
import "../interface/InitializableInterface.sol";

/**
 * @dev This contract is a binder. It puts together all the variables to make the underlying contracts functional and be bridgeable.
 */
contract Holographer is Admin, Initializable, HolographerInterface {
  /**
   * @dev bytes32(uint256(keccak256('eip1967.Holograph.originChain')) - 1)
   */
  bytes32 constant _originChainSlot = 0xd49ffd6af8249d6e6b5963d9d2b22c6db30ad594cb468453047a14e1c1bcde4d;
  /**
   * @dev bytes32(uint256(keccak256('eip1967.Holograph.holograph')) - 1)
   */
  bytes32 constant _holographSlot = 0xb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a;
  /**
   * @dev bytes32(uint256(keccak256('eip1967.Holograph.contractType')) - 1)
   */
  bytes32 constant _contractTypeSlot = 0x0b671eb65810897366dd82c4cbb7d9dff8beda8484194956e81e89b8a361d9c7;
  /**
   * @dev bytes32(uint256(keccak256('eip1967.Holograph.sourceContract')) - 1)
   */
  bytes32 constant _sourceContractSlot = 0x27d542086d1e831d40b749e7f5509a626c3047a36d160781c40d5acc83e5b074;
  /**
   * @dev bytes32(uint256(keccak256('eip1967.Holograph.blockHeight')) - 1)
   */
  bytes32 constant _blockHeightSlot = 0x9172848b0f1df776dc924b58e7fa303087ae0409bbf611608529e7f747d55de3;

  /**
   * @dev Constructor is left empty and init is used instead
   */
  constructor() {}

  /**
   * @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 override returns (bytes4) {
    require(!_isInitialized(), "HOLOGRAPHER: already initialized");
    (bytes memory encoded, bytes memory initCode) = abi.decode(initPayload, (bytes, bytes));
    (uint32 originChain, address holograph, bytes32 contractType, address sourceContract) = abi.decode(
      encoded,
      (uint32, address, bytes32, address)
    );
    assembly {
      sstore(_adminSlot, caller())
      sstore(_blockHeightSlot, number())
      sstore(_contractTypeSlot, contractType)
      sstore(_holographSlot, holograph)
      sstore(_originChainSlot, originChain)
      sstore(_sourceContractSlot, sourceContract)
    }
    (bool success, bytes memory returnData) = HolographRegistryInterface(HolographInterface(holograph).getRegistry())
      .getReservedContractTypeAddress(contractType)
      .delegatecall(abi.encodeWithSelector(InitializableInterface.init.selector, initCode));
    bytes4 selector = abi.decode(returnData, (bytes4));
    require(success && selector == InitializableInterface.init.selector, "HOLOGRAPH: initialization failed");
    _setInitialized();
    return InitializableInterface.init.selector;
  }

  /**
   * @dev Returns the contract type that is used for loading the Enforcer
   */
  function getContractType() external view returns (bytes32 contractType) {
    assembly {
      contractType := sload(_contractTypeSlot)
    }
  }

  /**
   * @dev Returns the block height of when the smart contract was deployed. Useful for retrieving deployment config for re-deployment on other EVM-compatible chains.
   */
  function getDeploymentBlock() external view returns (uint256 deploymentBlock) {
    assembly {
      deploymentBlock := sload(_blockHeightSlot)
    }
  }

  /**
   * @dev Returns a hardcoded address for the Holograph smart contract.
   */
  function getHolograph() external view returns (address holograph) {
    assembly {
      holograph := sload(_holographSlot)
    }
  }

  /**
   * @dev Returns a hardcoded address for the Holograph smart contract that controls and enforces the ERC standards.
   */
  function getHolographEnforcer() public view returns (address) {
    HolographInterface holograph;
    bytes32 contractType;
    assembly {
      holograph := sload(_holographSlot)
      contractType := sload(_contractTypeSlot)
    }
    return HolographRegistryInterface(holograph.getRegistry()).getReservedContractTypeAddress(contractType);
  }

  /**
   * @dev Returns the original chain that contract was deployed on.
   */
  function getOriginChain() external view returns (uint32 originChain) {
    assembly {
      originChain := sload(_originChainSlot)
    }
  }

  /**
   * @dev Returns a hardcoded address for the custom secure storage contract deployed in parallel with this contract deployment.
   */
  function getSourceContract() external view returns (address sourceContract) {
    assembly {
      sourceContract := sload(_sourceContractSlot)
    }
  }

  /**
   * @dev Purposefully left empty, to prevent running out of gas errors when receiving native token payments.
   */
  receive() external payable {}

  /**
   * @dev This takes the Enforcer's source code, runs it, and uses current address for storage slots.
   */
  fallback() external payable {
    address holographEnforcer = getHolographEnforcer();
    assembly {
      calldatacopy(0, 0, calldatasize())
      let result := delegatecall(gas(), holographEnforcer, 0, calldatasize(), 0, 0)
      returndatacopy(0, 0, returndatasize())
      switch result
      case 0 {
        revert(0, returndatasize())
      }
      default {
        return(0, returndatasize())
      }
    }
  }
}

File 2 of 7 : Admin.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.13;

abstract contract Admin {
  /**
   * @dev bytes32(uint256(keccak256('eip1967.Holograph.admin')) - 1)
   */
  bytes32 constant _adminSlot = 0x3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c9;

  modifier onlyAdmin() {
    require(msg.sender == getAdmin(), "HOLOGRAPH: admin only function");
    _;
  }

  constructor() {}

  function admin() public view returns (address) {
    return getAdmin();
  }

  function getAdmin() public view returns (address adminAddress) {
    assembly {
      adminAddress := sload(_adminSlot)
    }
  }

  function setAdmin(address adminAddress) public onlyAdmin {
    assembly {
      sstore(_adminSlot, adminAddress)
    }
  }

  function adminCall(address target, bytes calldata data) external payable onlyAdmin {
    assembly {
      calldatacopy(0, data.offset, data.length)
      let result := call(gas(), target, callvalue(), 0, data.length, 0, 0)
      returndatacopy(0, 0, returndatasize())
      switch result
      case 0 {
        revert(0, returndatasize())
      }
      default {
        return(0, returndatasize())
      }
    }
  }
}

File 3 of 7 : Initializable.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.13;

import "../interface/InitializableInterface.sol";

/**
 * @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 for a constructor
 */
abstract contract Initializable is InitializableInterface {
  /**
   * @dev bytes32(uint256(keccak256('eip1967.Holograph.initialized')) - 1)
   */
  bytes32 constant _initializedSlot = 0x4e5f991bca30eca2d4643aaefa807e88f96a4a97398933d572a3c0d973004a01;

  /**
   * @dev Constructor is left empty and init is used instead
   */
  constructor() {}

  /**
   * @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 virtual returns (bytes4);

  function _isInitialized() internal view returns (bool initialized) {
    assembly {
      initialized := sload(_initializedSlot)
    }
  }

  function _setInitialized() internal {
    assembly {
      sstore(_initializedSlot, 0x0000000000000000000000000000000000000000000000000000000000000001)
    }
  }
}

File 4 of 7 : HolographerInterface.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.13;

interface HolographerInterface {
  function getContractType() external view returns (bytes32 contractType);

  function getDeploymentBlock() external view returns (uint256 deploymentBlock);

  function getHolograph() external view returns (address holograph);

  function getHolographEnforcer() external view returns (address);

  function getOriginChain() external view returns (uint32 originChain);

  function getSourceContract() external view returns (address sourceContract);
}

File 5 of 7 : HolographInterface.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.13;

/**
 * @title Holograph Protocol
 * @author https://github.com/holographxyz
 * @notice This is the primary Holograph Protocol smart contract
 * @dev This contract stores a reference to all the primary modules and variables of the protocol
 */
interface HolographInterface {
  /**
   * @notice Get the address of the Holograph Bridge module
   * @dev Used for beaming holographable assets cross-chain
   */
  function getBridge() external view returns (address bridge);

  /**
   * @notice Update the Holograph Bridge module address
   * @param bridge address of the Holograph Bridge smart contract to use
   */
  function setBridge(address bridge) external;

  /**
   * @notice Get the chain ID that the Protocol was deployed on
   * @dev Useful for checking if/when a hard fork occurs
   */
  function getChainId() external view returns (uint256 chainId);

  /**
   * @notice Update the chain ID
   * @dev Useful for updating once a hard fork has been mitigated
   * @param chainId EVM chain ID to use
   */
  function setChainId(uint256 chainId) external;

  /**
   * @notice Get the address of the Holograph Factory module
   * @dev Used for deploying holographable smart contracts
   */
  function getFactory() external view returns (address factory);

  /**
   * @notice Update the Holograph Factory module address
   * @param factory address of the Holograph Factory smart contract to use
   */
  function setFactory(address factory) external;

  /**
   * @notice Get the Holograph chain Id
   * @dev Holograph uses an internal chain id mapping
   */
  function getHolographChainId() external view returns (uint32 holographChainId);

  /**
   * @notice Update the Holograph chain ID
   * @dev Useful for updating once a hard fork was mitigated
   * @param holographChainId Holograph chain ID to use
   */
  function setHolographChainId(uint32 holographChainId) external;

  /**
   * @notice Get the address of the Holograph Interfaces module
   * @dev Holograph uses this contract to store data that needs to be accessed by a large portion of the modules
   */
  function getInterfaces() external view returns (address interfaces);

  /**
   * @notice Update the Holograph Interfaces module address
   * @param interfaces address of the Holograph Interfaces smart contract to use
   */
  function setInterfaces(address interfaces) external;

  /**
   * @notice Get the address of the Holograph Operator module
   * @dev All cross-chain Holograph Bridge beams are handled by the Holograph Operator module
   */
  function getOperator() external view returns (address operator);

  /**
   * @notice Update the Holograph Operator module address
   * @param operator address of the Holograph Operator smart contract to use
   */
  function setOperator(address operator) external;

  /**
   * @notice Get the Holograph Registry module
   * @dev This module stores a reference for all deployed holographable smart contracts
   */
  function getRegistry() external view returns (address registry);

  /**
   * @notice Update the Holograph Registry module address
   * @param registry address of the Holograph Registry smart contract to use
   */
  function setRegistry(address registry) external;

  /**
   * @notice Get the Holograph Treasury module
   * @dev All of the Holograph Protocol assets are stored and managed by this module
   */
  function getTreasury() external view returns (address treasury);

  /**
   * @notice Update the Holograph Treasury module address
   * @param treasury address of the Holograph Treasury smart contract to use
   */
  function setTreasury(address treasury) external;

  /**
   * @notice Get the Holograph Utility Token address
   * @dev This is the official utility token of the Holograph Protocol
   */
  function getUtilityToken() external view returns (address utilityToken);

  /**
   * @notice Update the Holograph Utility Token address
   * @param utilityToken address of the Holograph Utility Token smart contract to use
   */
  function setUtilityToken(address utilityToken) external;
}

File 6 of 7 : HolographRegistryInterface.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.13;

interface HolographRegistryInterface {
  function isHolographedContract(address smartContract) external view returns (bool);

  function isHolographedHashDeployed(bytes32 hash) external view returns (bool);

  function referenceContractTypeAddress(address contractAddress) external returns (bytes32);

  function getContractTypeAddress(bytes32 contractType) external view returns (address);

  function setContractTypeAddress(bytes32 contractType, address contractAddress) external;

  function getHolograph() external view returns (address holograph);

  function setHolograph(address holograph) external;

  function getHolographableContracts(uint256 index, uint256 length) external view returns (address[] memory contracts);

  function getHolographableContractsLength() external view returns (uint256);

  function getHolographedHashAddress(bytes32 hash) external view returns (address);

  function setHolographedHashAddress(bytes32 hash, address contractAddress) external;

  function getHToken(uint32 chainId) external view returns (address);

  function setHToken(uint32 chainId, address hToken) external;

  function getReservedContractTypeAddress(bytes32 contractType) external view returns (address contractTypeAddress);

  function setReservedContractTypeAddress(bytes32 hash, bool reserved) external;

  function setReservedContractTypeAddresses(bytes32[] calldata hashes, bool[] calldata reserved) external;

  function getUtilityToken() external view returns (address utilityToken);

  function setUtilityToken(address utilityToken) external;
}

File 7 of 7 : 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.13;

/**
 * @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"
      ]
    }
  },
  "remappings": [
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "erc721a-upgradeable/=erc721a-upgradeable/",
    "forge-std/=lib/forge-std/src/"
  ],
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"adminCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getAdmin","outputs":[{"internalType":"address","name":"adminAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getContractType","outputs":[{"internalType":"bytes32","name":"contractType","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDeploymentBlock","outputs":[{"internalType":"uint256","name":"deploymentBlock","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getHolograph","outputs":[{"internalType":"address","name":"holograph","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getHolographEnforcer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOriginChain","outputs":[{"internalType":"uint32","name":"originChain","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSourceContract","outputs":[{"internalType":"address","name":"sourceContract","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"initPayload","type":"bytes"}],"name":"init","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adminAddress","type":"address"}],"name":"setAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

0x6080604052600436106100c05760003560e01c806380d1cb3511610074578063c51a29e01161004e578063c51a29e0146102c1578063c8a4c3d5146102f5578063f851a4401461030a576100c7565b806380d1cb351461022c578063913a0ef21461026a578063bf64a82d146102ae576100c7565b80636e9960c3116100a55780636e9960c3146101a45780636faf275b146101d8578063704b6c021461020c576100c7565b80634827ae0c146100f95780634ddf47d414610153576100c7565b366100c757005b60006100d161031f565b90503660008037600080366000845af43d6000803e8080156100f2573d6000f35b3d6000fd5b005b34801561010557600080fd5b507fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a545b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561015f57600080fd5b5061017361016e366004610bb4565b61045d565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161014a565b3480156101b057600080fd5b507f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c954610129565b3480156101e457600080fd5b507f27d542086d1e831d40b749e7f5509a626c3047a36d160781c40d5acc83e5b07454610129565b34801561021857600080fd5b506100f7610227366004610c59565b610911565b34801561023857600080fd5b507f9172848b0f1df776dc924b58e7fa303087ae0409bbf611608529e7f747d55de3545b60405190815260200161014a565b34801561027657600080fd5b507fd49ffd6af8249d6e6b5963d9d2b22c6db30ad594cb468453047a14e1c1bcde4d5460405163ffffffff909116815260200161014a565b6100f76102bc366004610c7d565b6109eb565b3480156102cd57600080fd5b507f0b671eb65810897366dd82c4cbb7d9dff8beda8484194956e81e89b8a361d9c75461025c565b34801561030157600080fd5b5061012961031f565b34801561031657600080fd5b50610129610ac1565b60008060007fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a5491507f0b671eb65810897366dd82c4cbb7d9dff8beda8484194956e81e89b8a361d9c75490508173ffffffffffffffffffffffffffffffffffffffff16635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103db9190610d02565b73ffffffffffffffffffffffffffffffffffffffff166374b7510c826040518263ffffffff1660e01b815260040161041591815260200190565b602060405180830381865afa158015610432573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104569190610d02565b9250505090565b60006104877f4e5f991bca30eca2d4643aaefa807e88f96a4a97398933d572a3c0d973004a015490565b156104f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f475241504845523a20616c726561647920696e697469616c697a656460448201526064015b60405180910390fd5b6000808380602001905181019061050a9190610d9c565b91509150600080600080858060200190518101906105289190610e00565b9350935093509350337f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c955437f9172848b0f1df776dc924b58e7fa303087ae0409bbf611608529e7f747d55de355817f0b671eb65810897366dd82c4cbb7d9dff8beda8484194956e81e89b8a361d9c755827fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a55837fd49ffd6af8249d6e6b5963d9d2b22c6db30ad594cb468453047a14e1c1bcde4d55807f27d542086d1e831d40b749e7f5509a626c3047a36d160781c40d5acc83e5b074556000808473ffffffffffffffffffffffffffffffffffffffff16635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015610650573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106749190610d02565b73ffffffffffffffffffffffffffffffffffffffff166374b7510c856040518263ffffffff1660e01b81526004016106ae91815260200190565b602060405180830381865afa1580156106cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ef9190610d02565b73ffffffffffffffffffffffffffffffffffffffff16634ddf47d460e01b8860405160240161071e9190610e5e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516107a79190610eaf565b600060405180830381855af49150503d80600081146107e2576040519150601f19603f3d011682016040523d82523d6000602084013e6107e7565b606091505b50915091506000818060200190518101906108029190610ecb565b905082801561085257507fffffffff0000000000000000000000000000000000000000000000000000000081167f4ddf47d400000000000000000000000000000000000000000000000000000000145b6108b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20696e697469616c697a6174696f6e206661696c656460448201526064016104ea565b6108e160017f4e5f991bca30eca2d4643aaefa807e88f96a4a97398933d572a3c0d973004a0155565b507f4ddf47d4000000000000000000000000000000000000000000000000000000009a9950505050505050505050565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e000060448201526064016104ea565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c955565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610aa1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e000060448201526064016104ea565b808260003760008082600034875af13d6000803e8080156100f2573d6000f35b6000610aeb7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95490565b905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610b6657610b66610af0565b604052919050565b600067ffffffffffffffff821115610b8857610b88610af0565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600060208284031215610bc657600080fd5b813567ffffffffffffffff811115610bdd57600080fd5b8201601f81018413610bee57600080fd5b8035610c01610bfc82610b6e565b610b1f565b818152856020838501011115610c1657600080fd5b81602084016020830137600091810160200191909152949350505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610c5657600080fd5b50565b600060208284031215610c6b57600080fd5b8135610c7681610c34565b9392505050565b600080600060408486031215610c9257600080fd5b8335610c9d81610c34565b9250602084013567ffffffffffffffff80821115610cba57600080fd5b818601915086601f830112610cce57600080fd5b813581811115610cdd57600080fd5b876020828501011115610cef57600080fd5b6020830194508093505050509250925092565b600060208284031215610d1457600080fd5b8151610c7681610c34565b60005b83811015610d3a578181015183820152602001610d22565b83811115610d49576000848401525b50505050565b600082601f830112610d6057600080fd5b8151610d6e610bfc82610b6e565b818152846020838601011115610d8357600080fd5b610d94826020830160208701610d1f565b949350505050565b60008060408385031215610daf57600080fd5b825167ffffffffffffffff80821115610dc757600080fd5b610dd386838701610d4f565b93506020850151915080821115610de957600080fd5b50610df685828601610d4f565b9150509250929050565b60008060008060808587031215610e1657600080fd5b845163ffffffff81168114610e2a57600080fd5b6020860151909450610e3b81610c34565b604086015160608701519194509250610e5381610c34565b939692955090935050565b6020815260008251806020840152610e7d816040850160208701610d1f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60008251610ec1818460208701610d1f565b9190910192915050565b600060208284031215610edd57600080fd5b81517fffffffff0000000000000000000000000000000000000000000000000000000081168114610c7657600080fdfea164736f6c634300080d000a

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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