Contract 0x8f7492DE823025b4CfaAB1D34c58963F2af5DEDA 12

 
Txn Hash Method
Block
From
To
Value
0x5357660061787426116e9bcab40b461500bf106052212448a88b5bb93db76c91Xcall1101555152023-09-28 14:03:2726 mins ago0x61d10bfda1aa5010795985fd9a49f21fb7570982 IN Connext: Bridge0 ETH0.0000580256080.045900719
0x213f5c3c692cff8baf1c1cf4ddb1d54576e40d09193a3dce11588a319ecd8709Xcall1101533952023-09-28 12:52:471 hr 36 mins ago0xd170564e3620debcfb5d2699212047dbb6487406 IN Connext: Bridge0 ETH0.0000483246820.05212004
0xbb51f9600b16fcb8cc1e66946cdbbed5799d4c146077e931d56db9bad8ae7615Xcall1101519262023-09-28 12:03:492 hrs 25 mins ago0x23e30824e465b79fbee89e77cfac3dc5c9eb8ea9 IN Connext: Bridge0 ETH0.0000532483260.060306149
0x2718e051605634d529f0ca60b84ff4ab3e5cf307336ceb77c686dc5613b4da92Xcall1101460562023-09-28 8:48:095 hrs 41 mins ago0x0dd64bcad684b951189a474dc5d48bf37193b9bc IN Connext: Bridge0 ETH0.0000442264090.04902036
0x5809be3b5d32d73df440f5ba898cc7206621da380e5c9e58c37f59e391f80414Xcall1101459632023-09-28 8:45:035 hrs 44 mins ago0xcda5271770d30f04759d08ca7cd84374cf994584 IN Connext: Bridge0.000203299754502 ETH0.0000455308440.0490195
0xf70c3ab996d97e8ef51721dbfca8ca5ab17e2f92e75ce4dcbdee31c092ac3cf1Xcall1101349392023-09-28 2:37:3511 hrs 51 mins ago0x440de8b4e2ae9c63cb1c22c9edd32db11de86113 IN Connext: Bridge0.000203251268864 ETH0.0000360479240.05219069
0x5a0b776ee23db200577e1921504f19d95efccd1cd6b5081cd6db26bfb0dd00e2Xcall1101314342023-09-28 0:40:4513 hrs 48 mins ago0xde066f3d9da3a64f4f77b48613eecc80ec213474 IN Connext: Bridge0.004342508343686 ETH0.0000383223940.055973671
0x33c77cccbb67d047f3dfb874c36c1b487950a00969123c0505f39a717df4150cXcall1101276602023-09-27 22:34:5715 hrs 54 mins ago0x16df4901e03cee446c085980fb9b46edbe69c52b IN Connext: Bridge0.000273168188702 ETH0.0000367134290.046602866
0x5e356d147470050bfdc70fc757df54e400b46f4c1f5d5232667a4b247804d572Xcall1101246032023-09-27 20:53:0317 hrs 36 mins ago0x876ee76220ad95d4d55c22c3e86eb0b57288543c IN Connext: Bridge0.000203460700706 ETH0.0000627497510.092873
0x886d98c6f0412d3929716f7856c79018c8d17fbf3a1b8a9b7fb2a13d18d30e3dXcall1101214062023-09-27 19:06:2919 hrs 23 mins ago0xbcbcaf9241dc07981639e7c555d66ae7ed1edfc4 IN Connext: Bridge0.000203282551446 ETH0.0000551726020.066729787
0x9b84ae1dfe93222a157675c0e95b29b0e2d0cbfdaea97bd5bda98e8e94462c75Xcall1101197472023-09-27 18:11:1120 hrs 18 mins ago0x86e39d06c9f61242fa4d2c1925d606ce07cbc9b4 IN Connext: Bridge0.000240444587103 ETH0.000095896190.084773755
0xdbdbea9e7bd8fb247ab35c839697087cf5c830f17d28f03faf4604f5d6f0be28Remove Swap Liqu...1101196992023-09-27 18:09:3520 hrs 19 mins ago 0x25fb6a2730570702f9b2b5eba96a3cbb5e5b7fc3 IN Connext: Bridge0 ETH0.0000819282010.114788464
0xb36ef55d5677e1ae69ceb09510433efe3c2fd0c057630bc934538487fdedcb23Swap1101164702023-09-27 16:21:5722 hrs 7 mins ago0xb1e4084ca98aa4d2560ad3b33a5028c51c7a123a IN Connext: Bridge0 ETH0.0000398025830.0497902
0xb1a4ed1b3eb05a4d74dd242c6e8f35a6103766760768d7d7d9482ebaac85e585Xcall1101162102023-09-27 16:13:1722 hrs 16 mins ago0x9b6106d0f7040d5f56be548a597446ed7bff3d50 IN Connext: Bridge0 ETH0.0000752836550.053402764
0x91671b2a7a8089cded528dae5fe2ae0d269edb79e68dea286ea9dddfdbda41faXcall1101160442023-09-27 16:07:4522 hrs 21 mins agoCentre: Deployer IN Connext: Bridge0.011227297497471 ETH0.0000767654140.051785528
0xe8f41a6a91b9ed87391ab5de9e8e0d185217d2166b99978238c1e537838e6174Xcall1101159212023-09-27 16:03:3922 hrs 25 mins agoCentre: Deployer IN Connext: Bridge0.009650384074329 ETH0.0000867691880.096277221
0x5c752fdbb6f7426ac27427d119ba074b1b35fdd2449c5968c3ad2cd0423290c2Remove Swap Liqu...1101155332023-09-27 15:50:4322 hrs 38 mins ago0xb1e4084ca98aa4d2560ad3b33a5028c51c7a123a IN Connext: Bridge0 ETH0.000046517180.0614103
0x52bb7eed1ea4bacdfc57b983664d36d71a73963c614a7aaf39a24a1d4355ef4eXcall1101150042023-09-27 15:33:0522 hrs 56 mins ago0x84e0ba7c3b3bd40a3c1b12f829a86162a1fe8ab5 IN Connext: Bridge0.000000543408501 ETH0.0000842602270.050141304
0xa7b1e8825bfcbe079103bf80e6c308492e1c437298f5ff7ecf2c222c9d5aebf1Xcall1101131732023-09-27 14:32:0323 hrs 57 mins ago0xa31a6fe2481e67cd54eeb6f0f26bb887dd20f8b8 IN Connext: Bridge0 ETH0.0000811890920.091035009
0x02eb2cb9f128cd6f2020572d0be2c7858782f63c496835be20d926acd683fcd1Xcall1101127262023-09-27 14:17:091 day 12 mins ago0xe7c7870de03a42ae915f06af8c48d1d52d63ae6d IN Connext: Bridge0 ETH0.0001025183660.1491777
0x91439ea8669b1aa36d9708c19c90b2976356179f680a0df2e63f894d063c939fRemove Swap Liqu...1101079822023-09-27 11:39:011 day 2 hrs ago0x20cfec1ba7dbb9c7aa97677a5df7dca65af66efe IN Connext: Bridge0 ETH0.0000284403490.056207531
0x48cd5120ef234907a97c709613107ee7498b41ffe6182967e0d5119eb47038edXcall1101038942023-09-27 9:22:451 day 5 hrs ago0xf7a6d93a31c7e7621528ea43d14386b98d5661be IN Connext: Bridge0 ETH0.0000449142480.046480204
0x8346184818208ca786e032e08f53304a557cae246414c9232d94375fce28bb00Remove Swap Liqu...1101022152023-09-27 8:26:471 day 6 hrs ago0x9ac79ae44c63c664a714c77d9cc1a78c940540bd IN Connext: Bridge0 ETH0.0000270305380.052482416
0xebdf142d4c7da645542f4c5107166381effbab1d7da819dc28dba827010a66d0Remove Swap Liqu...1101021012023-09-27 8:22:591 day 6 hrs ago0xa60f492f5d52e0461b55d37ba4ce95c9d5eff62b IN Connext: Bridge0 ETH0.0000249516620.050385112
0x6d9014e3a5e29c00fa85c738e584fa51987dcd6d414a45f0edc663ecb58f181aRemove Swap Liqu...1101020262023-09-27 8:20:291 day 6 hrs ago0xa9f51db4725f0eaf9d530bae8db0fd858d505547 IN Connext: Bridge0 ETH0.0000258042060.05090979
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x1827331709f46be774cd27a43fecb698e3aca4ffb9960f1df750b18c2bbaef331101562032023-09-28 14:26:233 mins ago Connext: Bridge 0xdb56fb8f49997aa1eaa91eba578fb5992fe22cef0.000286069014 ETH
0x1827331709f46be774cd27a43fecb698e3aca4ffb9960f1df750b18c2bbaef331101562032023-09-28 14:26:233 mins ago 0x6b23875dd0d74c767c329c4a927b4408337b65d8Connext: Bridge0.000286069014 ETH
0x22113aba41ccc8f2d465ee5f931a4a0c86a79334c0f95986d19ef5f4439808101101560582023-09-28 14:21:337 mins ago Connext: Bridge 0xdb56fb8f49997aa1eaa91eba578fb5992fe22cef0.000013608986452941 ETH
0x22113aba41ccc8f2d465ee5f931a4a0c86a79334c0f95986d19ef5f4439808101101560582023-09-28 14:21:337 mins ago 0x6b23875dd0d74c767c329c4a927b4408337b65d8Connext: Bridge0.000013608986452941 ETH
0x04cc1f58571f3dbdd0a0d87450ee9b76e8f5ac47fef93e11106d13cc812e17031101559102023-09-28 14:16:3712 mins ago Connext: Bridge 0xdb56fb8f49997aa1eaa91eba578fb5992fe22cef0.000274194844 ETH
0x04cc1f58571f3dbdd0a0d87450ee9b76e8f5ac47fef93e11106d13cc812e17031101559102023-09-28 14:16:3712 mins ago 0x6b23875dd0d74c767c329c4a927b4408337b65d8Connext: Bridge0.000274194844 ETH
0x1f3e1d298dd9dbb1efac3c89a517c1c69fa82b920c17fcd32c3b08f213e9b25e1101555512023-09-28 14:04:3924 mins ago Connext: Bridge 0xdb56fb8f49997aa1eaa91eba578fb5992fe22cef0.000067743664066176 ETH
0x1f3e1d298dd9dbb1efac3c89a517c1c69fa82b920c17fcd32c3b08f213e9b25e1101555512023-09-28 14:04:3924 mins ago LI.FI: LiFi DiamondConnext: Bridge0.000067743664066176 ETH
0x0ab5b87b01e74cade392b7e27700ec6dc509d1bd307a0b4a4192c2133aee66821101549902023-09-28 13:45:5743 mins ago Connext: Bridge 0xdb56fb8f49997aa1eaa91eba578fb5992fe22cef0.00028423384116275 ETH
0x0ab5b87b01e74cade392b7e27700ec6dc509d1bd307a0b4a4192c2133aee66821101549902023-09-28 13:45:5743 mins ago LI.FI: LiFi DiamondConnext: Bridge0.00028423384116275 ETH
0x59a205e4136bdb98cc3e90e06eb026f0a346a7fcafb9338f49afe6c66759a3761101544892023-09-28 13:29:151 hr ago Connext: Bridge 0xdb56fb8f49997aa1eaa91eba578fb5992fe22cef0.0002036122211362 ETH
0x59a205e4136bdb98cc3e90e06eb026f0a346a7fcafb9338f49afe6c66759a3761101544892023-09-28 13:29:151 hr ago 0xb0eef3e1de973d045c3858e072c540299585252dConnext: Bridge0.0002036122211362 ETH
0xeb8030a649a69215e62c939683648afdc619be24527dddd62771740ba30925c21101544522023-09-28 13:28:011 hr 1 min ago Connext: Bridge 0xdb56fb8f49997aa1eaa91eba578fb5992fe22cef0.000280362604315865 ETH
0xeb8030a649a69215e62c939683648afdc619be24527dddd62771740ba30925c21101544522023-09-28 13:28:011 hr 1 min ago LI.FI: LiFi DiamondConnext: Bridge0.000280362604315865 ETH
0x441f3985cd6fa6a43db71a7a7d018a5b4c723780c29ab35e904915678309a29d1101543512023-09-28 13:24:391 hr 4 mins ago Connext: Bridge 0xdb56fb8f49997aa1eaa91eba578fb5992fe22cef0.000040605178981696 ETH
0x441f3985cd6fa6a43db71a7a7d018a5b4c723780c29ab35e904915678309a29d1101543512023-09-28 13:24:391 hr 4 mins ago LI.FI: LiFi DiamondConnext: Bridge0.000040605178981696 ETH
0x7850aa33a020582bbf9a8587c756d5d2b1718c7c61df98fb39bbbb274f951b601101543412023-09-28 13:24:191 hr 5 mins ago Connext: Bridge 0xdb56fb8f49997aa1eaa91eba578fb5992fe22cef0.000610333439513688 ETH
0x7850aa33a020582bbf9a8587c756d5d2b1718c7c61df98fb39bbbb274f951b601101543412023-09-28 13:24:191 hr 5 mins ago LI.FI: LiFi DiamondConnext: Bridge0.000610333439513688 ETH
0xcb3f45916cff16630b3c8904e355161b0b571b30abe200a75b7edf99963ae4691101536462023-09-28 13:01:091 hr 28 mins ago Connext: Bridge 0xdb56fb8f49997aa1eaa91eba578fb5992fe22cef0.000045621418788482 ETH
0xcb3f45916cff16630b3c8904e355161b0b571b30abe200a75b7edf99963ae4691101536462023-09-28 13:01:091 hr 28 mins ago LI.FI: LiFi DiamondConnext: Bridge0.000045621418788482 ETH
0xd276e7fb3bd2d8ed89423ab275009cb14d5b9f409bc2a142cb6a4963514eda581101534252023-09-28 12:53:471 hr 35 mins ago Connext: Bridge 0xdb56fb8f49997aa1eaa91eba578fb5992fe22cef0.00075939910784795 ETH
0xd276e7fb3bd2d8ed89423ab275009cb14d5b9f409bc2a142cb6a4963514eda581101534252023-09-28 12:53:471 hr 35 mins ago LI.FI: LiFi DiamondConnext: Bridge0.00075939910784795 ETH
0xd5bb341236d020b5ba0c41480fe12f38d6114cbe8ccad04d012452ca536af2f91101533652023-09-28 12:51:471 hr 37 mins ago Connext: Bridge 0xdb56fb8f49997aa1eaa91eba578fb5992fe22cef0.00028310667 ETH
0xd5bb341236d020b5ba0c41480fe12f38d6114cbe8ccad04d012452ca536af2f91101533652023-09-28 12:51:471 hr 37 mins ago 0x6b23875dd0d74c767c329c4a927b4408337b65d8Connext: Bridge0.00028310667 ETH
0x464dd64e69cae2ecd05e6f629380442d8d7920dd9d86ee3c38709b6f354326f31101530752023-09-28 12:42:071 hr 47 mins ago Connext: Bridge 0xdb56fb8f49997aa1eaa91eba578fb5992fe22cef0.000275689645 ETH
[ Download CSV Export 
Loading

Similar Match Source Code
This contract matches the deployed ByteCode of the Source Code for Contract 0x1BCDbF11F9eB8Ddac1725Bb346890E45F14DCbd5
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
ConnextDiamond

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
File 1 of 3 : ConnextDiamond.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

/******************************************************************************\
* Author: Nick Mudge <[email protected]> (https://twitter.com/mudgen)
* EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535
*
* Implementation of a diamond.
/******************************************************************************/

import {LibDiamond} from "../libraries/LibDiamond.sol";
import {IDiamondCut} from "../interfaces/IDiamondCut.sol";

contract ConnextDiamond {
  struct Initialization {
    address initContract;
    bytes initData;
  }

  /// @notice This construct a diamond contract
  /// @param _contractOwner the owner of the contract. With default DiamondCutFacet, this is the sole address allowed to make further cuts.
  /// @param _diamondCut the list of facet to add
  /// @param _initializations the list of initialization pair to execute. This allow to setup a contract with multiple level of independent initialization.
  constructor(
    address _contractOwner,
    IDiamondCut.FacetCut[] memory _diamondCut,
    Initialization[] memory _initializations
  ) payable {
    if (_contractOwner != address(0)) {
      LibDiamond.setContractOwner(_contractOwner);
    }

    LibDiamond.diamondCut(_diamondCut, address(0), "");

    uint256 len = _initializations.length;
    for (uint256 i = 0; i < len; ) {
      LibDiamond.initializeDiamondCut(_initializations[i].initContract, _initializations[i].initData);

      unchecked {
        ++i;
      }
    }
  }

  // Find facet for function that is called and execute the
  // function if a facet is found and return any value.
  fallback() external payable {
    LibDiamond.DiamondStorage storage ds;
    bytes32 position = LibDiamond.DIAMOND_STORAGE_POSITION;
    // get diamond storage
    assembly {
      ds.slot := position
    }
    // get facet from function selector
    address facet = ds.selectorToFacetAndPosition[msg.sig].facetAddress;
    require(facet != address(0), "Diamond: Function does not exist");
    // Execute external function from facet using delegatecall and return any value.
    assembly {
      // copy function selector and any arguments
      calldatacopy(0, 0, calldatasize())
      // execute function call using the facet
      let result := delegatecall(gas(), facet, 0, calldatasize(), 0, 0)
      // get any return value
      returndatacopy(0, 0, returndatasize())
      // return any return value or error back to the caller
      switch result
      case 0 {
        revert(0, returndatasize())
      }
      default {
        return(0, returndatasize())
      }
    }
  }

  receive() external payable {}
}

File 2 of 3 : IDiamondCut.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

/******************************************************************************\
* Author: Nick Mudge <[email protected]> (https://twitter.com/mudgen)
* EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535
/******************************************************************************/

interface IDiamondCut {
  enum FacetCutAction {
    Add,
    Replace,
    Remove
  }
  // Add=0, Replace=1, Remove=2

  struct FacetCut {
    address facetAddress;
    FacetCutAction action;
    bytes4[] functionSelectors;
  }

  /// @notice Propose to add/replace/remove any number of functions and optionally execute
  ///         a function with delegatecall
  /// @param _diamondCut Contains the facet addresses and function selectors
  /// @param _init The address of the contract or facet to execute _calldata
  /// @param _calldata A function call, including function selector and arguments
  ///                  _calldata is executed with delegatecall on _init
  function proposeDiamondCut(
    FacetCut[] calldata _diamondCut,
    address _init,
    bytes calldata _calldata
  ) external;

  event DiamondCutProposed(FacetCut[] _diamondCut, address _init, bytes _calldata, uint256 deadline);

  /// @notice Add/replace/remove any number of functions and optionally execute
  ///         a function with delegatecall
  /// @param _diamondCut Contains the facet addresses and function selectors
  /// @param _init The address of the contract or facet to execute _calldata
  /// @param _calldata A function call, including function selector and arguments
  ///                  _calldata is executed with delegatecall on _init
  function diamondCut(
    FacetCut[] calldata _diamondCut,
    address _init,
    bytes calldata _calldata
  ) external;

  event DiamondCut(FacetCut[] _diamondCut, address _init, bytes _calldata);

  /// @notice Propose to add/replace/remove any number of functions and optionally execute
  ///         a function with delegatecall
  /// @param _diamondCut Contains the facet addresses and function selectors
  /// @param _init The address of the contract or facet to execute _calldata
  /// @param _calldata A function call, including function selector and arguments
  ///                  _calldata is executed with delegatecall on _init
  function rescindDiamondCut(
    FacetCut[] calldata _diamondCut,
    address _init,
    bytes calldata _calldata
  ) external;

  /**
   * @notice Returns the acceptance time for a given proposal
   * @param _diamondCut Contains the facet addresses and function selectors
   * @param _init The address of the contract or facet to execute _calldata
   * @param _calldata A function call, including function selector and arguments _calldata is
   * executed with delegatecall on _init
   */
  function getAcceptanceTime(
    FacetCut[] calldata _diamondCut,
    address _init,
    bytes calldata _calldata
  ) external returns (uint256);

  event DiamondCutRescinded(FacetCut[] _diamondCut, address _init, bytes _calldata);
}

File 3 of 3 : LibDiamond.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

/******************************************************************************\
* Author: Nick Mudge <[email protected]> (https://twitter.com/mudgen)
* EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535
/******************************************************************************/
import {IDiamondCut} from "../interfaces/IDiamondCut.sol";

// Remember to add the loupe functions from DiamondLoupeFacet to the diamond.
// The loupe functions are required by the EIP2535 Diamonds standard

library LibDiamond {
  bytes32 constant DIAMOND_STORAGE_POSITION = keccak256("diamond.standard.diamond.storage");

  struct FacetAddressAndPosition {
    address facetAddress;
    uint96 functionSelectorPosition; // position in facetFunctionSelectors.functionSelectors array
  }

  struct FacetFunctionSelectors {
    bytes4[] functionSelectors;
    uint256 facetAddressPosition; // position of facetAddress in facetAddresses array
  }

  struct DiamondStorage {
    // maps function selector to the facet address and
    // the position of the selector in the facetFunctionSelectors.selectors array
    mapping(bytes4 => FacetAddressAndPosition) selectorToFacetAndPosition;
    // maps facet addresses to function selectors
    mapping(address => FacetFunctionSelectors) facetFunctionSelectors;
    // facet addresses
    address[] facetAddresses;
    // Used to query if a contract implements an interface.
    // Used to implement ERC-165.
    mapping(bytes4 => bool) supportedInterfaces;
    // owner of the contract
    address contractOwner;
    // hash of proposed facets => acceptance time
    mapping(bytes32 => uint256) acceptanceTimes;
    // acceptance delay for upgrading facets
    uint256 acceptanceDelay;
  }

  function diamondStorage() internal pure returns (DiamondStorage storage ds) {
    bytes32 position = DIAMOND_STORAGE_POSITION;
    assembly {
      ds.slot := position
    }
  }

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

  function setContractOwner(address _newOwner) internal {
    DiamondStorage storage ds = diamondStorage();
    emit OwnershipTransferred(ds.contractOwner, _newOwner);
    ds.contractOwner = _newOwner;
  }

  function contractOwner() internal view returns (address contractOwner_) {
    contractOwner_ = diamondStorage().contractOwner;
  }

  function acceptanceDelay() internal view returns (uint256) {
    return diamondStorage().acceptanceDelay;
  }

  function acceptanceTime(bytes32 _key) internal view returns (uint256) {
    return diamondStorage().acceptanceTimes[_key];
  }

  function enforceIsContractOwner() internal view {
    require(msg.sender == diamondStorage().contractOwner, "LibDiamond: !contract owner");
  }

  event DiamondCutProposed(IDiamondCut.FacetCut[] _diamondCut, address _init, bytes _calldata, uint256 deadline);

  function proposeDiamondCut(
    IDiamondCut.FacetCut[] memory _diamondCut,
    address _init,
    bytes memory _calldata
  ) internal {
    // NOTE: to save gas, verification that `proposeDiamondCut` and `diamondCut` are not
    // included is performed in `diamondCut`, where there is already a loop over facets.
    // In the case where these cuts are performed, admins must call `rescindDiamondCut`

    DiamondStorage storage ds = diamondStorage();
    uint256 acceptance = block.timestamp + ds.acceptanceDelay;
    ds.acceptanceTimes[keccak256(abi.encode(_diamondCut, _init, _calldata))] = acceptance;
    emit DiamondCutProposed(_diamondCut, _init, _calldata, acceptance);
  }

  event DiamondCutRescinded(IDiamondCut.FacetCut[] _diamondCut, address _init, bytes _calldata);

  function rescindDiamondCut(
    IDiamondCut.FacetCut[] memory _diamondCut,
    address _init,
    bytes memory _calldata
  ) internal {
    // NOTE: you can always rescind a proposed facet cut as the owner, even if outside of the validity
    // period or befor the delay elpases
    delete diamondStorage().acceptanceTimes[keccak256(abi.encode(_diamondCut, _init, _calldata))];
    emit DiamondCutRescinded(_diamondCut, _init, _calldata);
  }

  event DiamondCut(IDiamondCut.FacetCut[] _diamondCut, address _init, bytes _calldata);

  // Internal function version of diamondCut
  function diamondCut(
    IDiamondCut.FacetCut[] memory _diamondCut,
    address _init,
    bytes memory _calldata
  ) internal {
    DiamondStorage storage ds = diamondStorage();
    bytes32 key = keccak256(abi.encode(_diamondCut, _init, _calldata));
    if (ds.facetAddresses.length != 0) {
      uint256 time = ds.acceptanceTimes[key];
      require(time != 0 && time <= block.timestamp, "LibDiamond: delay not elapsed");
      // Reset the acceptance time to ensure the same set of updates cannot be replayed
      // without going through a proposal window

      // NOTE: the only time this will not be set to 0 is when there are no
      // existing facet addresses (on initialization, or when starting after a bad upgrade,
      // for example).
      // The only relevant case is the initial case, which has no acceptance time. otherwise,
      // there is no way to update the facet selector mapping to call `diamondCut`.
      // Avoiding setting the empty value will save gas on the initial deployment.
      delete ds.acceptanceTimes[key];
    } // Otherwise, this is the first instance of deployment and it can be set automatically
    uint256 len = _diamondCut.length;
    for (uint256 facetIndex; facetIndex < len; ) {
      IDiamondCut.FacetCutAction action = _diamondCut[facetIndex].action;
      if (action == IDiamondCut.FacetCutAction.Add) {
        addFunctions(_diamondCut[facetIndex].facetAddress, _diamondCut[facetIndex].functionSelectors);
      } else if (action == IDiamondCut.FacetCutAction.Replace) {
        replaceFunctions(_diamondCut[facetIndex].facetAddress, _diamondCut[facetIndex].functionSelectors);
      } else if (action == IDiamondCut.FacetCutAction.Remove) {
        removeFunctions(_diamondCut[facetIndex].facetAddress, _diamondCut[facetIndex].functionSelectors);
      } else {
        revert("LibDiamondCut: Incorrect FacetCutAction");
      }

      unchecked {
        ++facetIndex;
      }
    }
    emit DiamondCut(_diamondCut, _init, _calldata);
    initializeDiamondCut(_init, _calldata);
  }

  function addFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal {
    require(_functionSelectors.length != 0, "LibDiamondCut: No selectors in facet to cut");
    DiamondStorage storage ds = diamondStorage();
    require(_facetAddress != address(0), "LibDiamondCut: Add facet can't be address(0)");
    uint96 selectorPosition = uint96(ds.facetFunctionSelectors[_facetAddress].functionSelectors.length);
    // add new facet address if it does not exist
    if (selectorPosition == 0) {
      addFacet(ds, _facetAddress);
    }
    uint256 len = _functionSelectors.length;
    for (uint256 selectorIndex; selectorIndex < len; ) {
      bytes4 selector = _functionSelectors[selectorIndex];
      address oldFacetAddress = ds.selectorToFacetAndPosition[selector].facetAddress;
      require(oldFacetAddress == address(0), "LibDiamondCut: Can't add function that already exists");
      addFunction(ds, selector, selectorPosition, _facetAddress);
      selectorPosition++;

      unchecked {
        ++selectorIndex;
      }
    }
  }

  function replaceFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal {
    uint256 len = _functionSelectors.length;
    require(len != 0, "LibDiamondCut: No selectors in facet to cut");
    DiamondStorage storage ds = diamondStorage();
    require(_facetAddress != address(0), "LibDiamondCut: Add facet can't be address(0)");
    uint96 selectorPosition = uint96(ds.facetFunctionSelectors[_facetAddress].functionSelectors.length);
    // add new facet address if it does not exist
    if (selectorPosition == 0) {
      addFacet(ds, _facetAddress);
    }
    for (uint256 selectorIndex; selectorIndex < len; ) {
      bytes4 selector = _functionSelectors[selectorIndex];
      address oldFacetAddress = ds.selectorToFacetAndPosition[selector].facetAddress;
      require(oldFacetAddress != _facetAddress, "LibDiamondCut: Can't replace function with same function");
      removeFunction(ds, oldFacetAddress, selector);
      addFunction(ds, selector, selectorPosition, _facetAddress);
      selectorPosition++;

      unchecked {
        ++selectorIndex;
      }
    }
  }

  function removeFunctions(address _facetAddress, bytes4[] memory _functionSelectors) internal {
    require(_functionSelectors.length != 0, "LibDiamondCut: No selectors in facet to cut");
    DiamondStorage storage ds = diamondStorage();
    // get the propose and cut selectors -- can never remove these
    bytes4 proposeSelector = IDiamondCut.proposeDiamondCut.selector;
    bytes4 cutSelector = IDiamondCut.diamondCut.selector;
    // if function does not exist then do nothing and return
    require(_facetAddress == address(0), "LibDiamondCut: Remove facet address must be address(0)");
    uint256 len = _functionSelectors.length;
    for (uint256 selectorIndex; selectorIndex < len; ) {
      bytes4 selector = _functionSelectors[selectorIndex];
      require(selector != proposeSelector && selector != cutSelector, "LibDiamondCut: Cannot remove cut selectors");
      address oldFacetAddress = ds.selectorToFacetAndPosition[selector].facetAddress;
      removeFunction(ds, oldFacetAddress, selector);

      unchecked {
        ++selectorIndex;
      }
    }
  }

  function addFacet(DiamondStorage storage ds, address _facetAddress) internal {
    enforceHasContractCode(_facetAddress, "LibDiamondCut: New facet has no code");
    ds.facetFunctionSelectors[_facetAddress].facetAddressPosition = ds.facetAddresses.length;
    ds.facetAddresses.push(_facetAddress);
  }

  function addFunction(
    DiamondStorage storage ds,
    bytes4 _selector,
    uint96 _selectorPosition,
    address _facetAddress
  ) internal {
    ds.selectorToFacetAndPosition[_selector].functionSelectorPosition = _selectorPosition;
    ds.facetFunctionSelectors[_facetAddress].functionSelectors.push(_selector);
    ds.selectorToFacetAndPosition[_selector].facetAddress = _facetAddress;
  }

  function removeFunction(
    DiamondStorage storage ds,
    address _facetAddress,
    bytes4 _selector
  ) internal {
    require(_facetAddress != address(0), "LibDiamondCut: Can't remove function that doesn't exist");
    // an immutable function is a function defined directly in a diamond
    require(_facetAddress != address(this), "LibDiamondCut: Can't remove immutable function");
    // replace selector with last selector, then delete last selector
    uint256 selectorPosition = ds.selectorToFacetAndPosition[_selector].functionSelectorPosition;
    uint256 lastSelectorPosition = ds.facetFunctionSelectors[_facetAddress].functionSelectors.length - 1;
    // if not the same then replace _selector with lastSelector
    if (selectorPosition != lastSelectorPosition) {
      bytes4 lastSelector = ds.facetFunctionSelectors[_facetAddress].functionSelectors[lastSelectorPosition];
      ds.facetFunctionSelectors[_facetAddress].functionSelectors[selectorPosition] = lastSelector;
      ds.selectorToFacetAndPosition[lastSelector].functionSelectorPosition = uint96(selectorPosition);
    }
    // delete the last selector
    ds.facetFunctionSelectors[_facetAddress].functionSelectors.pop();
    delete ds.selectorToFacetAndPosition[_selector];

    // if no more selectors for facet address then delete the facet address
    if (lastSelectorPosition == 0) {
      // replace facet address with last facet address and delete last facet address
      uint256 lastFacetAddressPosition = ds.facetAddresses.length - 1;
      uint256 facetAddressPosition = ds.facetFunctionSelectors[_facetAddress].facetAddressPosition;
      if (facetAddressPosition != lastFacetAddressPosition) {
        address lastFacetAddress = ds.facetAddresses[lastFacetAddressPosition];
        ds.facetAddresses[facetAddressPosition] = lastFacetAddress;
        ds.facetFunctionSelectors[lastFacetAddress].facetAddressPosition = facetAddressPosition;
      }
      ds.facetAddresses.pop();
      delete ds.facetFunctionSelectors[_facetAddress].facetAddressPosition;
    }
  }

  function initializeDiamondCut(address _init, bytes memory _calldata) internal {
    if (_init == address(0)) {
      require(_calldata.length == 0, "LibDiamondCut: _init is address(0) but_calldata is not empty");
    } else {
      require(_calldata.length != 0, "LibDiamondCut: _calldata is empty but _init is not address(0)");
      if (_init != address(this)) {
        enforceHasContractCode(_init, "LibDiamondCut: _init address has no code");
      }
      (bool success, bytes memory error) = _init.delegatecall(_calldata);
      if (!success) {
        if (error.length != 0) {
          // bubble up the error
          revert(string(error));
        } else {
          revert("LibDiamondCut: _init function reverted");
        }
      }
    }
  }

  function enforceHasContractCode(address _contract, string memory _errorMessage) internal view {
    require(_contract.code.length != 0, _errorMessage);
  }
}

Settings
{
  "evmVersion": "london",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs",
    "useLiteralContent": true
  },
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "remappings": [],
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_contractOwner","type":"address"},{"components":[{"internalType":"address","name":"facetAddress","type":"address"},{"internalType":"enum IDiamondCut.FacetCutAction","name":"action","type":"uint8"},{"internalType":"bytes4[]","name":"functionSelectors","type":"bytes4[]"}],"internalType":"struct IDiamondCut.FacetCut[]","name":"_diamondCut","type":"tuple[]"},{"components":[{"internalType":"address","name":"initContract","type":"address"},{"internalType":"bytes","name":"initData","type":"bytes"}],"internalType":"struct ConnextDiamond.Initialization[]","name":"_initializations","type":"tuple[]"}],"stateMutability":"payable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}]

608060405260405162002c6638038062002c66833981016040819052620000269162001497565b6001600160a01b038316156200004c576200004c83620000ed60201b620000b61760201c565b62000074826000604051806020016040528060008152506200017b60201b620001431760201c565b805160005b81811015620000e257620000d98382815181106200009b576200009b6200166b565b602002602001015160000151848381518110620000bc57620000bc6200166b565b602002602001015160200151620004a160201b6200041a1760201c565b60010162000079565b50505050506200187f565b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c13205460405160008051602062002bba833981519152916001600160a01b03848116929116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360040180546001600160a01b0319166001600160a01b0392909216919091179055565b60405160008051602062002bba83398151915290600090620001a690869086908690602001620016c5565b60408051601f198184030181529190528051602090910120600283015490915015620002525760008181526005830160205260409020548015801590620001ed5750428111155b6200023f5760405162461bcd60e51b815260206004820152601d60248201527f4c69624469616d6f6e643a2064656c6179206e6f7420656c617073656400000060448201526064015b60405180910390fd5b5060008181526005830160205260408120555b845160005b818110156200044f5760008782815181106200027757620002776200166b565b6020026020010151602001519050600060028111156200029b576200029b62001681565b816002811115620002b057620002b062001681565b036200030e5762000308888381518110620002cf57620002cf6200166b565b602002602001015160000151898481518110620002f057620002f06200166b565b602002602001015160400151620006c660201b60201c565b62000445565b600181600281111562000325576200032562001681565b036200037d57620003088883815181106200034457620003446200166b565b6020026020010151600001518984815181106200036557620003656200166b565b6020026020010151604001516200094360201b60201c565b600281600281111562000394576200039462001681565b03620003ec5762000308888381518110620003b357620003b36200166b565b602002602001015160000151898481518110620003d457620003d46200166b565b60200260200101516040015162000bd260201b60201c565b60405162461bcd60e51b815260206004820152602760248201527f4c69624469616d6f6e644375743a20496e636f727265637420466163657443756044820152663a20b1ba34b7b760c91b606482015260840162000236565b5060010162000257565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738686866040516200048593929190620016c5565b60405180910390a1620004998585620004a1565b505050505050565b6001600160a01b0382166200052b57805115620005275760405162461bcd60e51b815260206004820152603c60248201527f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860448201527f3029206275745f63616c6c64617461206973206e6f7420656d70747900000000606482015260840162000236565b5050565b8051600003620005a45760405162461bcd60e51b815260206004820152603d60248201527f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460448201527f7920627574205f696e6974206973206e6f742061646472657373283029000000606482015260840162000236565b6001600160a01b0382163014620005da57620005da8260405180606001604052806028815260200162002bda6028913962000dcd565b600080836001600160a01b031683604051620005f79190620017cc565b600060405180830381855af49150503d806000811462000634576040519150601f19603f3d011682016040523d82523d6000602084013e62000639565b606091505b509150915081620006c05780511562000668578060405162461bcd60e51b8152600401620002369190620017ea565b60405162461bcd60e51b815260206004820152602660248201527f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e2072656044820152651d995c9d195960d21b606482015260840162000236565b50505050565b80516000036200071c5760405162461bcd60e51b815260206004820152602b602482015260008051602062002c4683398151915260448201526a1858d95d081d1bc818dd5d60aa1b606482015260840162000236565b60008051602062002bba8339815191526001600160a01b038316620007885760405162461bcd60e51b815260206004820152602c602482015260008051602062002c0283398151915260448201526b65206164647265737328302960a01b606482015260840162000236565b6001600160a01b0383166000908152600182016020526040812054906001600160601b0382169003620007c157620007c1828562000dfe565b825160005b8181101562000499576000858281518110620007e657620007e66200166b565b6020908102919091018101516001600160e01b031981166000908152918790526040909120549091506001600160a01b031680156200088e5760405162461bcd60e51b815260206004820152603560248201527f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f60448201527f6e207468617420616c7265616479206578697374730000000000000000000000606482015260840162000236565b6001600160e01b0319821660008181526020888152604080832080546001600160a01b03908116600160a01b6001600160601b038d16021782558d168085526001808d0185529285208054938401815585528385206008840401805463ffffffff60079095166004026101000a948502191660e08a901c94909402939093179092559390925288905281546001600160a01b0319161790558462000932816200181c565b9550508260010192505050620007c6565b805160008190036200099b5760405162461bcd60e51b815260206004820152602b602482015260008051602062002c4683398151915260448201526a1858d95d081d1bc818dd5d60aa1b606482015260840162000236565b60008051602062002bba8339815191526001600160a01b03841662000a075760405162461bcd60e51b815260206004820152602c602482015260008051602062002c0283398151915260448201526b65206164647265737328302960a01b606482015260840162000236565b6001600160a01b0384166000908152600182016020526040812054906001600160601b038216900362000a405762000a40828662000dfe565b60005b838110156200049957600085828151811062000a635762000a636200166b565b6020908102919091018101516001600160e01b031981166000908152918690526040909120549091506001600160a01b03908116908816810362000b105760405162461bcd60e51b815260206004820152603860248201527f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60448201527f6374696f6e20776974682073616d652066756e6374696f6e0000000000000000606482015260840162000236565b62000b1d85828462000e6b565b6001600160e01b0319821660008181526020878152604080832080546001600160a01b03908116600160a01b6001600160601b038c16021782558d168085526001808c0185529285208054938401815585528385206008840401805463ffffffff60079095166004026101000a948502191660e08a901c94909402939093179092559390925287905281546001600160a01b0319161790558362000bc1816200181c565b945050826001019250505062000a43565b805160000362000c285760405162461bcd60e51b815260206004820152602b602482015260008051602062002c4683398151915260448201526a1858d95d081d1bc818dd5d60aa1b606482015260840162000236565b60008051602062002bba833981519152635df91ac760e11b6307e4c70760e21b6001600160a01b0385161562000cc75760405162461bcd60e51b815260206004820152603660248201527f4c69624469616d6f6e644375743a2052656d6f7665206661636574206164647260448201527f657373206d757374206265206164647265737328302900000000000000000000606482015260840162000236565b835160005b8181101562000dc457600086828151811062000cec5762000cec6200166b565b60200260200101519050846001600160e01b031916816001600160e01b0319161415801562000d2857506001600160e01b031981811690851614155b62000d895760405162461bcd60e51b815260206004820152602a60248201527f4c69624469616d6f6e644375743a2043616e6e6f742072656d6f7665206375746044820152692073656c6563746f727360b01b606482015260840162000236565b6001600160e01b031981166000908152602087905260409020546001600160a01b031662000db987828462000e6b565b505060010162000ccc565b50505050505050565b806001600160a01b0383163b62000df95760405162461bcd60e51b8152600401620002369190620017ea565b505050565b62000e238160405180606001604052806024815260200162002c226024913962000dcd565b6002820180546001600160a01b0390921660008181526001948501602090815260408220860185905594840183559182529290200180546001600160a01b0319169091179055565b6001600160a01b03821662000ee95760405162461bcd60e51b815260206004820152603760248201527f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360448201527f74696f6e207468617420646f65736e2774206578697374000000000000000000606482015260840162000236565b306001600160a01b0383160362000f5a5760405162461bcd60e51b815260206004820152602e60248201527f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560448201526d3a30b1363290333ab731ba34b7b760911b606482015260840162000236565b6001600160e01b03198116600090815260208481526040808320546001600160a01b0386168452600180880190935290832054600160a01b9091046001600160601b0316929162000fab916200184d565b9050808214620010a4576001600160a01b0384166000908152600186016020526040812080548390811062000fe45762000fe46200166b565b600091825260208083206008830401546001600160a01b038916845260018a019091526040909220805460079092166004026101000a90920460e01b9250829190859081106200103857620010386200166b565b600091825260208083206008830401805463ffffffff60079094166004026101000a938402191660e09590951c929092029390931790556001600160e01b03199290921682528690526040902080546001600160a01b0316600160a01b6001600160601b038516021790555b6001600160a01b03841660009081526001860160205260409020805480620010d057620010d062001869565b60008281526020808220600860001990940193840401805463ffffffff600460078716026101000a0219169055919092556001600160e01b031985168252869052604081208190558190036200124557600285015460009062001136906001906200184d565b6001600160a01b0386166000908152600180890160205260409091200154909150808214620011ec5760008760020183815481106200117957620011796200166b565b6000918252602090912001546002890180546001600160a01b039092169250829184908110620011ad57620011ad6200166b565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055929091168152600189810190925260409020018190555b8660020180548062001202576200120262001869565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b0388168252600189810190915260408220015550505b5050505050565b80516001600160a01b03811681146200126457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b0381118282101715620012a457620012a462001269565b60405290565b604051606081016001600160401b0381118282101715620012a457620012a462001269565b604051601f8201601f191681016001600160401b0381118282101715620012fa57620012fa62001269565b604052919050565b60006001600160401b038211156200131e576200131e62001269565b5060051b60200190565b60005b83811015620013455781810151838201526020016200132b565b50506000910152565b6000601f83818401126200136157600080fd5b825160206200137a620013748362001302565b620012cf565b82815260059290921b850181019181810190878411156200139a57600080fd5b8287015b848110156200148b5780516001600160401b0380821115620013c05760008081fd5b908901906040601f19838d038101821315620013dc5760008081fd5b620013e66200127f565b620013f38986016200124c565b81528285015184811115620014085760008081fd5b8086019550508d603f8601126200141f5760008081fd5b888501518481111562001436576200143662001269565b620014478a848e84011601620012cf565b94508085528e848288010111156200146157600092508283fd5b62001472818b870186890162001328565b508089019390935250508452509183019183016200139e565b50979650505050505050565b600080600060608486031215620014ad57600080fd5b620014b8846200124c565b60208501519093506001600160401b0380821115620014d657600080fd5b818601915086601f830112620014eb57600080fd5b8151620014fc620013748262001302565b8082825260208201915060208360051b8601019250898311156200151f57600080fd5b602085015b8381101562001637578051858111156200153d57600080fd5b86016060818d03601f190112156200155457600080fd5b6200155e620012aa565b6200156c602083016200124c565b81526040820151600381106200158157600080fd5b60208201526060820151878111156200159957600080fd5b8083019250508c603f830112620015af57600080fd5b6020820151620015c3620013748262001302565b81815260059190911b83016040019060208101908f831115620015e557600080fd5b6040850194505b82851015620016205784516001600160e01b0319811681146200160e57600080fd5b825260209485019490910190620015ec565b604084015250508452506020928301920162001524565b50604089015190965093505050808211156200165257600080fd5b5062001661868287016200134e565b9150509250925092565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b60008151808452620016b181602086016020860162001328565b601f01601f19169290920160200192915050565b60006060808301818452808751808352608092508286019150828160051b8701016020808b0160005b848110156200179a57898403607f19018652815180516001600160a01b031685528381015189860190600381106200173657634e487b7160e01b600052602160045260246000fd5b868601526040918201519186018a905281519081905290840190600090898701905b80831015620017845783516001600160e01b031916825292860192600192909201919086019062001758565b50978501979550505090820190600101620016ee565b50506001600160a01b038a16908801528681036040880152620017be818962001697565b9a9950505050505050505050565b60008251620017e081846020870162001328565b9190910192915050565b602081526000620017ff602083018462001697565b9392505050565b634e487b7160e01b600052601160045260246000fd5b60006001600160601b038281166002600160601b0319810162001843576200184362001806565b6001019392505050565b8181038181111562001863576200186362001806565b92915050565b634e487b7160e01b600052603160045260246000fd5b61132b806200188f6000396000f3fe60806040523661000b57005b600080356001600160e01b031916815260008051602061128a833981519152602081905260409091205481906001600160a01b0316806100925760405162461bcd60e51b815260206004820181905260248201527f4469616d6f6e643a2046756e6374696f6e20646f6573206e6f7420657869737460448201526064015b60405180910390fd5b3660008037600080366000845af43d6000803e8080156100b1573d6000f35b3d6000fd5b7fc8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c13205460405160008051602061128a833981519152916001600160a01b03848116929116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360040180546001600160a01b0319166001600160a01b0392909216919091179055565b60405160008051602061128a8339815191529060009061016b9086908690869060200161103b565b60408051601f19818403018152919052805160209091012060028301549091501561020f57600081815260058301602052604090205480158015906101b05750428111155b6101fc5760405162461bcd60e51b815260206004820152601d60248201527f4c69624469616d6f6e643a2064656c6179206e6f7420656c61707365640000006044820152606401610089565b5060008181526005830160205260408120555b845160005b818110156103cc5760008782815181106102305761023061113b565b60200260200101516020015190506000600281111561025157610251610fd5565b81600281111561026357610263610fd5565b036102b1576102ac88838151811061027d5761027d61113b565b60200260200101516000015189848151811061029b5761029b61113b565b60200260200101516040015161062d565b6103c3565b60018160028111156102c5576102c5610fd5565b0361030e576102ac8883815181106102df576102df61113b565b6020026020010151600001518984815181106102fd576102fd61113b565b60200260200101516040015161079e565b600281600281111561032257610322610fd5565b0361036b576102ac88838151811061033c5761033c61113b565b60200260200101516000015189848151811061035a5761035a61113b565b602002602001015160400151610927565b60405162461bcd60e51b815260206004820152602760248201527f4c69624469616d6f6e644375743a20496e636f727265637420466163657443756044820152663a20b1ba34b7b760c91b6064820152608401610089565b50600101610214565b507f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb6738686866040516104009392919061103b565b60405180910390a1610412858561041a565b505050505050565b6001600160a01b0382166104a15780511561049d5760405162461bcd60e51b815260206004820152603c60248201527f4c69624469616d6f6e644375743a205f696e697420697320616464726573732860448201527f3029206275745f63616c6c64617461206973206e6f7420656d707479000000006064820152608401610089565b5050565b80516000036105185760405162461bcd60e51b815260206004820152603d60248201527f4c69624469616d6f6e644375743a205f63616c6c6461746120697320656d707460448201527f7920627574205f696e6974206973206e6f7420616464726573732830290000006064820152608401610089565b6001600160a01b038216301461054a5761054a826040518060600160405280602881526020016112aa60289139610ad9565b600080836001600160a01b0316836040516105659190611151565b600060405180830381855af49150503d80600081146105a0576040519150601f19603f3d011682016040523d82523d6000602084013e6105a5565b606091505b509150915081610627578051156105d0578060405162461bcd60e51b8152600401610089919061116d565b60405162461bcd60e51b815260206004820152602660248201527f4c69624469616d6f6e644375743a205f696e69742066756e6374696f6e2072656044820152651d995c9d195960d21b6064820152608401610089565b50505050565b805160000361064e5760405162461bcd60e51b815260040161008990611187565b60008051602061128a8339815191526001600160a01b0383166106835760405162461bcd60e51b8152600401610089906111d2565b6001600160a01b0383166000908152600182016020526040812054906001600160601b03821690036106b9576106b98285610b07565b825160005b818110156104125760008582815181106106da576106da61113b565b6020908102919091018101516001600160e01b031981166000908152918790526040909120549091506001600160a01b031680156107785760405162461bcd60e51b815260206004820152603560248201527f4c69624469616d6f6e644375743a2043616e2774206164642066756e6374696f6044820152746e207468617420616c72656164792065786973747360581b6064820152608401610089565b6107848683878b610b71565b8461078e81611234565b95505082600101925050506106be565b805160008190036107c15760405162461bcd60e51b815260040161008990611187565b60008051602061128a8339815191526001600160a01b0384166107f65760405162461bcd60e51b8152600401610089906111d2565b6001600160a01b0384166000908152600182016020526040812054906001600160601b038216900361082c5761082c8286610b07565b60005b8381101561041257600085828151811061084b5761084b61113b565b6020908102919091018101516001600160e01b031981166000908152918690526040909120549091506001600160a01b0390811690881681036108f65760405162461bcd60e51b815260206004820152603860248201527f4c69624469616d6f6e644375743a2043616e2774207265706c6163652066756e60448201527f6374696f6e20776974682073616d652066756e6374696f6e00000000000000006064820152608401610089565b610901858284610c11565b61090d8583868b610b71565b8361091781611234565b945050826001019250505061082f565b80516000036109485760405162461bcd60e51b815260040161008990611187565b60008051602061128a833981519152635df91ac760e11b6307e4c70760e21b6001600160a01b038516156109dd5760405162461bcd60e51b815260206004820152603660248201527f4c69624469616d6f6e644375743a2052656d6f76652066616365742061646472604482015275657373206d757374206265206164647265737328302960501b6064820152608401610089565b835160005b81811015610ad05760008682815181106109fe576109fe61113b565b60200260200101519050846001600160e01b031916816001600160e01b03191614158015610a3957506001600160e01b031981811690851614155b610a985760405162461bcd60e51b815260206004820152602a60248201527f4c69624469616d6f6e644375743a2043616e6e6f742072656d6f7665206375746044820152692073656c6563746f727360b01b6064820152608401610089565b6001600160e01b031981166000908152602087905260409020546001600160a01b0316610ac6878284610c11565b50506001016109e2565b50505050505050565b806001600160a01b0383163b610b025760405162461bcd60e51b8152600401610089919061116d565b505050565b610b29816040518060600160405280602481526020016112d260249139610ad9565b6002820180546001600160a01b0390921660008181526001948501602090815260408220860185905594840183559182529290200180546001600160a01b0319169091179055565b6001600160e01b0319831660008181526020868152604080832080546001600160601b03909716600160a01b026001600160a01b0397881617815594909516808352600180890183529583208054968701815583528183206008870401805460e09890981c60046007909816979097026101000a96870263ffffffff9097021990971695909517909555529290915281546001600160a01b031916179055565b6001600160a01b038216610c8d5760405162461bcd60e51b815260206004820152603760248201527f4c69624469616d6f6e644375743a2043616e27742072656d6f76652066756e6360448201527f74696f6e207468617420646f65736e27742065786973740000000000000000006064820152608401610089565b306001600160a01b03831603610cfc5760405162461bcd60e51b815260206004820152602e60248201527f4c69624469616d6f6e644375743a2043616e27742072656d6f766520696d6d7560448201526d3a30b1363290333ab731ba34b7b760911b6064820152608401610089565b6001600160e01b03198116600090815260208481526040808320546001600160a01b0386168452600180880190935290832054600160a01b9091046001600160601b03169291610d4b9161125a565b9050808214610e3d576001600160a01b03841660009081526001860160205260408120805483908110610d8057610d8061113b565b600091825260208083206008830401546001600160a01b038916845260018a019091526040909220805460079092166004026101000a90920460e01b925082919085908110610dd157610dd161113b565b600091825260208083206008830401805463ffffffff60079094166004026101000a938402191660e09590951c929092029390931790556001600160e01b03199290921682528690526040902080546001600160a01b0316600160a01b6001600160601b038516021790555b6001600160a01b03841660009081526001860160205260409020805480610e6657610e66611273565b60008281526020808220600860001990940193840401805463ffffffff600460078716026101000a0219169055919092556001600160e01b03198516825286905260408120819055819003610fce576002850154600090610ec99060019061125a565b6001600160a01b0386166000908152600180890160205260409091200154909150808214610f78576000876002018381548110610f0857610f0861113b565b6000918252602090912001546002890180546001600160a01b039092169250829184908110610f3957610f3961113b565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055929091168152600189810190925260409020018190555b86600201805480610f8b57610f8b611273565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b0388168252600189810190915260408220015550505b5050505050565b634e487b7160e01b600052602160045260246000fd5b60005b83811015611006578181015183820152602001610fee565b50506000910152565b60008151808452611027816020860160208601610feb565b601f01601f19169290920160200192915050565b60006060808301818452808751808352608092508286019150828160051b8701016020808b0160005b8481101561110b57898403607f19018652815180516001600160a01b031685528381015189860190600381106110aa57634e487b7160e01b600052602160045260246000fd5b868601526040918201519186018a905281519081905290840190600090898701905b808310156110f65783516001600160e01b03191682529286019260019290920191908601906110cc565b50978501979550505090820190600101611064565b50506001600160a01b038a1690880152868103604088015261112d818961100f565b9a9950505050505050505050565b634e487b7160e01b600052603260045260246000fd5b60008251611163818460208701610feb565b9190910192915050565b602081526000611180602083018461100f565b9392505050565b6020808252602b908201527f4c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e206660408201526a1858d95d081d1bc818dd5d60aa1b606082015260800190565b6020808252602c908201527f4c69624469616d6f6e644375743a204164642066616365742063616e2774206260408201526b65206164647265737328302960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b60006001600160601b038083168181036112505761125061121e565b6001019392505050565b8181038181111561126d5761126d61121e565b92915050565b634e487b7160e01b600052603160045260246000fdfec8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c4c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f6465a26469706673582212203b1f4ed65a6bab0f6c2f33b7eaa1e2b892847a6c215922d52116d1d72f8895c164736f6c63430008110033c8fcad8db84d3cc18b4c41d551ea0ee66dd599cde068d998e57d5e09332c131c4c69624469616d6f6e644375743a205f696e6974206164647265737320686173206e6f20636f64654c69624469616d6f6e644375743a204164642066616365742063616e277420624c69624469616d6f6e644375743a204e657720666163657420686173206e6f20636f64654c69624469616d6f6e644375743a204e6f2073656c6563746f727320696e2066000000000000000000000000ade09131c6f43fe22c2cbabb759636c43cfc181e00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000001720000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000460000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000007a00000000000000000000000000000000000000000000000000000000000000a600000000000000000000000000000000000000000000000000000000000000b800000000000000000000000000000000000000000000000000000000000000f00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000013e000000000000000000000000000000000000000000000000000000000000014e00000000000000000000000000000000000000000000000000000000000001580000000000000000000000000ab81339759a1fa51c7509f7b83b8173de4ece8480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000141506e46300000000000000000000000000000000000000000000000000000000600620910000000000000000000000000000000000000000000000000000000080dc2248000000000000000000000000000000000000000000000000000000009b5985190000000000000000000000000000000000000000000000000000000057bd0a3200000000000000000000000000000000000000000000000000000000ae8bc0de000000000000000000000000000000000000000000000000000000002c1999d000000000000000000000000000000000000000000000000000000000bd8671a7000000000000000000000000000000000000000000000000000000001ecf6f9f00000000000000000000000000000000000000000000000000000000ad4c777100000000000000000000000000000000000000000000000000000000949de9690000000000000000000000000000000000000000000000000000000007a38d7b00000000000000000000000000000000000000000000000000000000f1537686000000000000000000000000000000000000000000000000000000005a2164e500000000000000000000000000000000000000000000000000000000a1b193010000000000000000000000000000000000000000000000000000000003e418c200000000000000000000000000000000000000000000000000000000b64a5e0700000000000000000000000000000000000000000000000000000000e1cb395800000000000000000000000000000000000000000000000000000000c405842900000000000000000000000000000000000000000000000000000000e9d7bcec000000000000000000000000000000000000000000000000000000000000000000000000000000001a92fc9ec2b55f6b0a5d33996349099623c9c4fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000118a33623100000000000000000000000000000000000000000000000000000000159e041f000000000000000000000000000000000000000000000000000000002424401f00000000000000000000000000000000000000000000000000000000c2fb26a600000000000000000000000000000000000000000000000000000000b49c53a70000000000000000000000000000000000000000000000000000000063e3e7d200000000000000000000000000000000000000000000000000000000cb8058ba000000000000000000000000000000000000000000000000000000005412671100000000000000000000000000000000000000000000000000000000affed0e000000000000000000000000000000000000000000000000000000000121cca31000000000000000000000000000000000000000000000000000000006989ca7c000000000000000000000000000000000000000000000000000000001a8bc0e10000000000000000000000000000000000000000000000000000000041bdc8b500000000000000000000000000000000000000000000000000000000bfd79030000000000000000000000000000000000000000000000000000000003339df96000000000000000000000000000000000000000000000000000000008aac16ba0000000000000000000000000000000000000000000000000000000091f5de79000000000000000000000000000000000000000000000000000000000000000000000000000000005bc7c227629acda6c799d6487a0c2b4a8d7e2ae9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000001ab2dc3f500000000000000000000000000000000000000000000000000000000000000000000000000000000e535c4d213d54a8bc32e11f5df4eb6fee8a599b7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000012c5b350df00000000000000000000000000000000000000000000000000000000bb271a27000000000000000000000000000000000000000000000000000000002ec0c00200000000000000000000000000000000000000000000000000000000a9943b1b000000000000000000000000000000000000000000000000000000006a42b8f8000000000000000000000000000000000000000000000000000000008da5cb5b000000000000000000000000000000000000000000000000000000008456cb59000000000000000000000000000000000000000000000000000000005c975abb00000000000000000000000000000000000000000000000000000000b1f8100d00000000000000000000000000000000000000000000000000000000c56ce35800000000000000000000000000000000000000000000000000000000d1851c92000000000000000000000000000000000000000000000000000000003cf52ffb00000000000000000000000000000000000000000000000000000000c91cb56a0000000000000000000000000000000000000000000000000000000023986f7d0000000000000000000000000000000000000000000000000000000080e52e3f000000000000000000000000000000000000000000000000000000006be557850000000000000000000000000000000000000000000000000000000012232937000000000000000000000000000000000000000000000000000000003f4ba83a000000000000000000000000000000000000000000000000000000000000000000000000000000000e110ce2571986e43ca3a296b6f3aa0cf5e1cffa000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000005dd39f00d000000000000000000000000000000000000000000000000000000008cba8b6a0000000000000000000000000000000000000000000000000000000065bc85820000000000000000000000000000000000000000000000000000000060f0a5ac00000000000000000000000000000000000000000000000000000000f01b3e010000000000000000000000000000000000000000000000000000000000000000000000000000000007b2edf050b93986f1ac96fe6d1be05919f73bd10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000184b72c5da000000000000000000000000000000000000000000000000000000000951d6d80000000000000000000000000000000000000000000000000000000009935b8f0000000000000000000000000000000000000000000000000000000054064594000000000000000000000000000000000000000000000000000000002d3f9ef600000000000000000000000000000000000000000000000000000000f259cd2700000000000000000000000000000000000000000000000000000000da3a892f000000000000000000000000000000000000000000000000000000003b688da60000000000000000000000000000000000000000000000000000000012d57170000000000000000000000000000000000000000000000000000000001407093b000000000000000000000000000000000000000000000000000000008770e68200000000000000000000000000000000000000000000000000000000e9160f3e00000000000000000000000000000000000000000000000000000000c6bf691d00000000000000000000000000000000000000000000000000000000b214c901000000000000000000000000000000000000000000000000000000009bf6d8750000000000000000000000000000000000000000000000000000000022a3c00700000000000000000000000000000000000000000000000000000000f72c504800000000000000000000000000000000000000000000000000000000fd5bd5fe0000000000000000000000000000000000000000000000000000000041258b5c00000000000000000000000000000000000000000000000000000000582c78d2000000000000000000000000000000000000000000000000000000008290471600000000000000000000000000000000000000000000000000000000ffaf3f1a00000000000000000000000000000000000000000000000000000000911b8ee20000000000000000000000000000000000000000000000000000000004376ff400000000000000000000000000000000000000000000000000000000000000000000000000000000578eeb7b76558009933046ad2e3d888c9b9b9b630000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000148d36545700000000000000000000000000000000000000000000000000000000a02288f40000000000000000000000000000000000000000000000000000000029d99b10000000000000000000000000000000000000000000000000000000008f11d27f0000000000000000000000000000000000000000000000000000000076ca2e5200000000000000000000000000000000000000000000000000000000d251dc35000000000000000000000000000000000000000000000000000000007652f59d000000000000000000000000000000000000000000000000000000001301caa2000000000000000000000000000000000000000000000000000000008b480b12000000000000000000000000000000000000000000000000000000002d91a51500000000000000000000000000000000000000000000000000000000b3a4eab400000000000000000000000000000000000000000000000000000000bb0577eb00000000000000000000000000000000000000000000000000000000ad94911b00000000000000000000000000000000000000000000000000000000f495e807000000000000000000000000000000000000000000000000000000004bbcba8e00000000000000000000000000000000000000000000000000000000241ca57a00000000000000000000000000000000000000000000000000000000b6618dff00000000000000000000000000000000000000000000000000000000ff126de90000000000000000000000000000000000000000000000000000000080b297e80000000000000000000000000000000000000000000000000000000074c6b89b00000000000000000000000000000000000000000000000000000000000000000000000000000000bb4f294236d9c834847adfe2d4ca4f43b6836dd800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000bea027c2f00000000000000000000000000000000000000000000000000000000e5f6220f000000000000000000000000000000000000000000000000000000004b141bb4000000000000000000000000000000000000000000000000000000002bf63bcc000000000000000000000000000000000000000000000000000000001963e426000000000000000000000000000000000000000000000000000000003e74aea0000000000000000000000000000000000000000000000000000000009c8eab970000000000000000000000000000000000000000000000000000000043be5eaf0000000000000000000000000000000000000000000000000000000072a30e08000000000000000000000000000000000000000000000000000000008dc5148400000000000000000000000000000000000000000000000000000000a1a23c2900000000000000000000000000000000000000000000000000000000000000000000000000000000324c5834cd3bd19c4991f4fc5b3a0ff5257a692b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000041f931c1c0000000000000000000000000000000000000000000000000000000056a8ea4800000000000000000000000000000000000000000000000000000000bbf2358e000000000000000000000000000000000000000000000000000000002c67849c0000000000000000000000000000000000000000000000000000000000000000000000000000000005822fa03809f948dece53c05c4abb93aeeb044c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000019a7e155e000000000000000000000000000000000000000000000000000000000000000000000000000000003bcf4185443a339517ad4e580067f178d1b68e1d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000005cdffacc60000000000000000000000000000000000000000000000000000000052ef6b2c00000000000000000000000000000000000000000000000000000000adfca15e000000000000000000000000000000000000000000000000000000007a0ed6270000000000000000000000000000000000000000000000000000000001ffc9a700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000160000000000000000000000000e68d85348f227d2ebee814c38918f8a2d7d9b603000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a42a84809100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000148e2b0930000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005822fa03809f948dece53c05c4abb93aeeb044c000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000849a7e155e000000000000000000000000000000000000000000000000000000006f707469000000000000000000000000200fdcf7ed3d856a70380d1d88778ebca9ec6959000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060dcbc3bb9eac7264a2d279f790969ccde61f4cf00000000000000000000000000000000000000000000000000000000

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