From 5746ef8596ba10f1b3cb1e6849941bb284e17e9f Mon Sep 17 00:00:00 2001 From: Sneh Koul Date: Sun, 22 Dec 2024 10:07:43 -0500 Subject: [PATCH 1/8] Add LightClientArbitrum --- contracts/src/LightClient.sol | 12 +++++++++--- contracts/src/LightClientArbitrum.sol | 15 +++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 contracts/src/LightClientArbitrum.sol diff --git a/contracts/src/LightClient.sol b/contracts/src/LightClient.sol index c38a422672..fd21859c47 100644 --- a/contracts/src/LightClient.sol +++ b/contracts/src/LightClient.sol @@ -160,6 +160,12 @@ contract LightClient is Initializable, OwnableUpgradeable, UUPSUpgradeable { _initializeState(_genesis, _genesisStakeTableState, _stateHistoryRetentionPeriod); } + + /// @notice returns the current block number + function currentBlockNumber() public view virtual ovverride returns (uint256) { + return block.number; + } + /// @notice Use this to get the implementation contract version /// @return majorVersion The major version of the contract /// @return minorVersion The minor version of the contract @@ -211,7 +217,7 @@ contract LightClient is Initializable, OwnableUpgradeable, UUPSUpgradeable { stateHistoryRetentionPeriod = _stateHistoryRetentionPeriod; - updateStateHistory(uint64(block.number), uint64(block.timestamp), _genesis); + updateStateHistory(uint64(currentBlockNumber()), uint64(block.timestamp), _genesis); } // === State Modifying APIs === @@ -252,7 +258,7 @@ contract LightClient is Initializable, OwnableUpgradeable, UUPSUpgradeable { // upon successful verification, update the latest finalized state finalizedState = newState; - updateStateHistory(uint64(block.number), uint64(block.timestamp), newState); + updateStateHistory(uint64(currentBlockNumber()), uint64(block.timestamp), newState); emit NewState(newState.viewNum, newState.blockHeight, newState.blockCommRoot); } @@ -371,7 +377,7 @@ contract LightClient is Initializable, OwnableUpgradeable, UUPSUpgradeable { // 3. Provided block number is earlier than the first recorded state update // the stateHistoryFirstIndex is used to check for the first nonZero element if ( - blockNumber > block.number || updatesCount == 0 + blockNumber > currentBlockNumber() || updatesCount == 0 || blockNumber < stateHistoryCommitments[stateHistoryFirstIndex].l1BlockHeight ) { revert InsufficientSnapshotHistory(); diff --git a/contracts/src/LightClientArbitrum.sol b/contracts/src/LightClientArbitrum.sol new file mode 100644 index 0000000000..175de46005 --- /dev/null +++ b/contracts/src/LightClientArbitrum.sol @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: UNLICENSED + +pragma solidity ^0.8.0; + +import { LightClient } from "./LightClient.sol"; + +interface ArbSys { + function arbBlockNumber() external view returns (uint256); +} + +contract LightClientArbitrum is LightClient { + function currentBlockNumber() public view virtual override returns (uint256) { + return ArbSys(address(uint160(100))).arbBlockNumber(); + } +} From a4b9916bc5d2f5959748d40f886864f0e943fee7 Mon Sep 17 00:00:00 2001 From: Sneh Koul Date: Sun, 22 Dec 2024 10:15:33 -0500 Subject: [PATCH 2/8] fix typos --- contracts/src/LightClient.sol | 807 ++++++++++++++++------------------ 1 file changed, 386 insertions(+), 421 deletions(-) diff --git a/contracts/src/LightClient.sol b/contracts/src/LightClient.sol index fd21859c47..e893f82994 100644 --- a/contracts/src/LightClient.sol +++ b/contracts/src/LightClient.sol @@ -2,11 +2,9 @@ pragma solidity ^0.8.0; -import { OwnableUpgradeable } from - "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; +import { OwnableUpgradeable } from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; import { Initializable } from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; -import { UUPSUpgradeable } from - "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; +import { UUPSUpgradeable } from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; import { BN254 } from "bn254/BN254.sol"; import { IPlonkVerifier } from "./interfaces/IPlonkVerifier.sol"; @@ -28,449 +26,416 @@ import { LightClientStateUpdateVK as VkLib } from "./libraries/LightClientStateU /// @dev You can use this contract to keep track of its finalized states in safe, /// authenticated ways. contract LightClient is Initializable, OwnableUpgradeable, UUPSUpgradeable { - // === Events === - // - /// @notice upgrade event when the proxy updates the implementation it's pointing to - event Upgrade(address implementation); - - /// @notice when a permissioned prover is set, this event is emitted. - event PermissionedProverRequired(address permissionedProver); - - /// @notice when the permissioned prover is unset, this event is emitted. - event PermissionedProverNotRequired(); - - // === System Parameters === - // - // === Storage === - // - /// @notice genesis stake commitment - StakeTableState public genesisStakeTableState; - - /// @notice genesis block commitment - LightClientState public genesisState; - - /// @notice Finalized HotShot's light client state - LightClientState public finalizedState; - - /// @notice the address of the prover that can call the newFinalizedState function when the - /// contract is in permissioned prover mode. This address is address(0) when the contract is - /// not in permissioned prover mode - address public permissionedProver; - - /// @notice Max number of seconds worth of state commitments to record based on this block - /// timestamp - uint32 public stateHistoryRetentionPeriod; - - /// @notice index of first block in block state series - ///@dev use this instead of index 0 since old states would be set to zero to keep storage costs - /// constant to stateHistoryRetentionPeriod - uint64 public stateHistoryFirstIndex; - - /// @notice an array to store the L1 block heights, HotShot Block Heights and their respective - /// state history - /// commitments - StateHistoryCommitment[] public stateHistoryCommitments; - - // === Data Structure === - // - /// @notice The finalized HotShot state (as the digest of the entire HotShot state) - /// @param viewNum The latest view number of the finalized HotShot chain - /// @param blockHeight The block height of the latest finalized block - /// @param blockCommRoot The merkle root of historical block commitments (BN254::ScalarField) - struct LightClientState { - uint64 viewNum; - uint64 blockHeight; - BN254.ScalarField blockCommRoot; + // === Events === + // + /// @notice upgrade event when the proxy updates the implementation it's pointing to + event Upgrade(address implementation); + + /// @notice when a permissioned prover is set, this event is emitted. + event PermissionedProverRequired(address permissionedProver); + + /// @notice when the permissioned prover is unset, this event is emitted. + event PermissionedProverNotRequired(); + + // === System Parameters === + // + // === Storage === + // + /// @notice genesis stake commitment + StakeTableState public genesisStakeTableState; + + /// @notice genesis block commitment + LightClientState public genesisState; + + /// @notice Finalized HotShot's light client state + LightClientState public finalizedState; + + /// @notice the address of the prover that can call the newFinalizedState function when the + /// contract is in permissioned prover mode. This address is address(0) when the contract is + /// not in permissioned prover mode + address public permissionedProver; + + /// @notice Max number of seconds worth of state commitments to record based on this block + /// timestamp + uint32 public stateHistoryRetentionPeriod; + + /// @notice index of first block in block state series + ///@dev use this instead of index 0 since old states would be set to zero to keep storage costs + /// constant to stateHistoryRetentionPeriod + uint64 public stateHistoryFirstIndex; + + /// @notice an array to store the L1 block heights, HotShot Block Heights and their respective + /// state history + /// commitments + StateHistoryCommitment[] public stateHistoryCommitments; + + // === Data Structure === + // + /// @notice The finalized HotShot state (as the digest of the entire HotShot state) + /// @param viewNum The latest view number of the finalized HotShot chain + /// @param blockHeight The block height of the latest finalized block + /// @param blockCommRoot The merkle root of historical block commitments (BN254::ScalarField) + struct LightClientState { + uint64 viewNum; + uint64 blockHeight; + BN254.ScalarField blockCommRoot; + } + + /// @notice The finalized HotShot Stake state (as the digest of the entire HotShot state) + /// @param threshold The (stake-weighted) quorum threshold for a QC to be considered as valid + /// @param blsKeyComm The commitment to the BlsVerKey column of the stake table + /// @param schnorrKeyComm The commitment to the SchnorrVerKey column of the table + /// @param amountComm The commitment to the stake amount column of the stake table + struct StakeTableState { + uint256 threshold; + BN254.ScalarField blsKeyComm; + BN254.ScalarField schnorrKeyComm; + BN254.ScalarField amountComm; + } + + /// @notice Simplified HotShot commitment struct + /// @param l1BlockHeight the block height of l1 when this state update was stored + /// @param l1BlockTimestamp the block timestamp of l1 when this state update was stored + /// @param hotShotBlockHeight The block height of the latest finalized HotShot block + /// @param hotShotBlockCommRoot The merkle root of historical block commitments + /// (BN254::ScalarField) + struct StateHistoryCommitment { + uint64 l1BlockHeight; + uint64 l1BlockTimestamp; + uint64 hotShotBlockHeight; + BN254.ScalarField hotShotBlockCommRoot; + } + + /// @notice Event that a new finalized state has been successfully verified and updated + event NewState(uint64 indexed viewNum, uint64 indexed blockHeight, BN254.ScalarField blockCommRoot); + + /// @notice The state is outdated and older than currently known `finalizedState` + error OutdatedState(); + /// @notice Invalid user inputs: wrong format or non-sensible arguments + error InvalidArgs(); + /// @notice Wrong plonk proof or public inputs. + error InvalidProof(); + /// @notice Wrong stake table used, should match `finalizedState` + error WrongStakeTableUsed(); + /// @notice Invalid address + error InvalidAddress(); + /// @notice Only a permissioned prover can perform this action + error ProverNotPermissioned(); + /// @notice If the same mode or prover is sent to the function, then no change is required + error NoChangeRequired(); + /// @notice Invalid L1 Block for checking Light Client Updates, premature or in the future + error InsufficientSnapshotHistory(); + /// @notice Invalid HotShot Block for checking HotShot commitments, premature or in the future + error InvalidHotShotBlockForCommitmentCheck(); + /// @notice Invalid Max Block States + error InvalidMaxStateHistory(); + + /// @notice Constructor disables initializers to prevent the implementation contract from being + /// initialized + /// @dev This is standard practice for OpenZeppelin upgradeable contracts. Storage is on the + /// proxy contract + /// since it calls this cnotract via delegatecall + /// @custom:oz-upgrades-unsafe-allow constructor + constructor() { + _disableInitializers(); + } + + /// @notice This contract is called by the proxy when you deploy this contract + /// @param _genesis The initial state of the light client + /// @param _stateHistoryRetentionPeriod The maximum retention period (in seconds) for the state + /// history. the min retention period allowed is 1 hour and max 365 days + /// @param owner The address of the contract owner + function initialize( + LightClientState memory _genesis, + StakeTableState memory _genesisStakeTableState, + uint32 _stateHistoryRetentionPeriod, + address owner + ) public initializer { + __Ownable_init(owner); //sets owner of the contract + __UUPSUpgradeable_init(); + _initializeState(_genesis, _genesisStakeTableState, _stateHistoryRetentionPeriod); + } + + /// @notice returns the current block number + function currentBlockNumber() public view virtual returns (uint256) { + return block.number; + } + + /// @notice Use this to get the implementation contract version + /// @return majorVersion The major version of the contract + /// @return minorVersion The minor version of the contract + /// @return patchVersion The patch version of the contract + function getVersion() public pure virtual returns (uint8 majorVersion, uint8 minorVersion, uint8 patchVersion) { + return (1, 0, 0); + } + + /// @notice only the owner can authorize an upgrade + function _authorizeUpgrade(address newImplementation) internal virtual override onlyOwner { + emit Upgrade(newImplementation); + } + + /// @dev Initialization of contract variables happens in this method because the LightClient + /// contract is upgradable and thus has its constructor method disabled. + /// @param _genesis The initial state of the light client + /// @param _genesisStakeTableState The initial stake table state of the light client + /// @param _stateHistoryRetentionPeriod The maximum retention period (in seconds) for the state + /// history. The min retention period allowed is 1 hour and the max is 365 days. + function _initializeState( + LightClientState memory _genesis, + StakeTableState memory _genesisStakeTableState, + uint32 _stateHistoryRetentionPeriod + ) internal { + // The viewNum and blockHeight in the genesis state must be zero to indicate that this is + // the initial state. Stake table commitments and threshold cannot be zero, otherwise it's + // impossible to generate valid proof to move finalized state forward. The + // stateHistoryRetentionPeriod must be at least 1 hour and no more than 365 days + // to ensure proper state retention. + if ( + _genesis.viewNum != 0 || + _genesis.blockHeight != 0 || + BN254.ScalarField.unwrap(_genesisStakeTableState.blsKeyComm) == 0 || + BN254.ScalarField.unwrap(_genesisStakeTableState.schnorrKeyComm) == 0 || + BN254.ScalarField.unwrap(_genesisStakeTableState.amountComm) == 0 || + _genesisStakeTableState.threshold == 0 || + _stateHistoryRetentionPeriod < 1 hours || + _stateHistoryRetentionPeriod > 365 days + ) { + revert InvalidArgs(); } - /// @notice The finalized HotShot Stake state (as the digest of the entire HotShot state) - /// @param threshold The (stake-weighted) quorum threshold for a QC to be considered as valid - /// @param blsKeyComm The commitment to the BlsVerKey column of the stake table - /// @param schnorrKeyComm The commitment to the SchnorrVerKey column of the table - /// @param amountComm The commitment to the stake amount column of the stake table - struct StakeTableState { - uint256 threshold; - BN254.ScalarField blsKeyComm; - BN254.ScalarField schnorrKeyComm; - BN254.ScalarField amountComm; + genesisState = _genesis; + genesisStakeTableState = _genesisStakeTableState; + finalizedState = _genesis; + + stateHistoryRetentionPeriod = _stateHistoryRetentionPeriod; + + updateStateHistory(uint64(currentBlockNumber()), uint64(block.timestamp), _genesis); + } + + // === State Modifying APIs === + // + /// @notice Update the latest finalized light client state. It must be updated + /// periodically, especially an update for the last block for every + /// period has to be submitted + /// before any newer state can be accepted since the stake table commitments of that block + /// become the snapshots used for vote verifications later on. + /// @dev if the permissionedProver is set, only the permissionedProver can call this function + /// @dev the state history for `stateHistoryRetentionPeriod` L1 blocks are also recorded in the + /// `stateHistoryCommitments` array + /// @notice While `newState.stakeTable*` refers to the (possibly) new stake table states, + /// the entire `newState` needs to be signed by stakers in `finalizedState` + /// @param newState new light client state + /// @param proof PlonkProof + function newFinalizedState( + LightClientState memory newState, + IPlonkVerifier.PlonkProof memory proof + ) external virtual { + //revert if we're in permissionedProver mode and the permissioned prover has not been set + if (isPermissionedProverEnabled() && msg.sender != permissionedProver) { + revert ProverNotPermissioned(); } - /// @notice Simplified HotShot commitment struct - /// @param l1BlockHeight the block height of l1 when this state update was stored - /// @param l1BlockTimestamp the block timestamp of l1 when this state update was stored - /// @param hotShotBlockHeight The block height of the latest finalized HotShot block - /// @param hotShotBlockCommRoot The merkle root of historical block commitments - /// (BN254::ScalarField) - struct StateHistoryCommitment { - uint64 l1BlockHeight; - uint64 l1BlockTimestamp; - uint64 hotShotBlockHeight; - BN254.ScalarField hotShotBlockCommRoot; + if (newState.viewNum <= finalizedState.viewNum || newState.blockHeight <= finalizedState.blockHeight) { + revert OutdatedState(); } + // format validity check + BN254.validateScalarField(newState.blockCommRoot); - /// @notice Event that a new finalized state has been successfully verified and updated - event NewState( - uint64 indexed viewNum, uint64 indexed blockHeight, BN254.ScalarField blockCommRoot - ); + // check plonk proof + verifyProof(newState, proof); - /// @notice The state is outdated and older than currently known `finalizedState` - error OutdatedState(); - /// @notice Invalid user inputs: wrong format or non-sensible arguments - error InvalidArgs(); - /// @notice Wrong plonk proof or public inputs. - error InvalidProof(); - /// @notice Wrong stake table used, should match `finalizedState` - error WrongStakeTableUsed(); - /// @notice Invalid address - error InvalidAddress(); - /// @notice Only a permissioned prover can perform this action - error ProverNotPermissioned(); - /// @notice If the same mode or prover is sent to the function, then no change is required - error NoChangeRequired(); - /// @notice Invalid L1 Block for checking Light Client Updates, premature or in the future - error InsufficientSnapshotHistory(); - /// @notice Invalid HotShot Block for checking HotShot commitments, premature or in the future - error InvalidHotShotBlockForCommitmentCheck(); - /// @notice Invalid Max Block States - error InvalidMaxStateHistory(); - - /// @notice Constructor disables initializers to prevent the implementation contract from being - /// initialized - /// @dev This is standard practice for OpenZeppelin upgradeable contracts. Storage is on the - /// proxy contract - /// since it calls this cnotract via delegatecall - /// @custom:oz-upgrades-unsafe-allow constructor - constructor() { - _disableInitializers(); - } + // upon successful verification, update the latest finalized state + finalizedState = newState; - /// @notice This contract is called by the proxy when you deploy this contract - /// @param _genesis The initial state of the light client - /// @param _stateHistoryRetentionPeriod The maximum retention period (in seconds) for the state - /// history. the min retention period allowed is 1 hour and max 365 days - /// @param owner The address of the contract owner - function initialize( - LightClientState memory _genesis, - StakeTableState memory _genesisStakeTableState, - uint32 _stateHistoryRetentionPeriod, - address owner - ) public initializer { - __Ownable_init(owner); //sets owner of the contract - __UUPSUpgradeable_init(); - _initializeState(_genesis, _genesisStakeTableState, _stateHistoryRetentionPeriod); - } + updateStateHistory(uint64(currentBlockNumber()), uint64(block.timestamp), newState); + emit NewState(newState.viewNum, newState.blockHeight, newState.blockCommRoot); + } - /// @notice returns the current block number - function currentBlockNumber() public view virtual ovverride returns (uint256) { - return block.number; - } + /// @notice Verify the Plonk proof, marked as `virtual` for easier testing as we can swap VK + /// used in inherited contracts. + function verifyProof(LightClientState memory state, IPlonkVerifier.PlonkProof memory proof) internal virtual { + IPlonkVerifier.VerifyingKey memory vk = VkLib.getVk(); - /// @notice Use this to get the implementation contract version - /// @return majorVersion The major version of the contract - /// @return minorVersion The minor version of the contract - /// @return patchVersion The patch version of the contract - function getVersion() - public - pure - virtual - returns (uint8 majorVersion, uint8 minorVersion, uint8 patchVersion) - { - return (1, 0, 0); - } + // Prepare the public input + uint256[7] memory publicInput; + publicInput[0] = uint256(state.viewNum); + publicInput[1] = uint256(state.blockHeight); + publicInput[2] = BN254.ScalarField.unwrap(state.blockCommRoot); + publicInput[3] = BN254.ScalarField.unwrap(genesisStakeTableState.blsKeyComm); + publicInput[4] = BN254.ScalarField.unwrap(genesisStakeTableState.schnorrKeyComm); + publicInput[5] = BN254.ScalarField.unwrap(genesisStakeTableState.amountComm); + publicInput[6] = genesisStakeTableState.threshold; - /// @notice only the owner can authorize an upgrade - function _authorizeUpgrade(address newImplementation) internal virtual override onlyOwner { - emit Upgrade(newImplementation); + if (!PlonkVerifier.verify(vk, publicInput, proof)) { + revert InvalidProof(); } - - /// @dev Initialization of contract variables happens in this method because the LightClient - /// contract is upgradable and thus has its constructor method disabled. - /// @param _genesis The initial state of the light client - /// @param _genesisStakeTableState The initial stake table state of the light client - /// @param _stateHistoryRetentionPeriod The maximum retention period (in seconds) for the state - /// history. The min retention period allowed is 1 hour and the max is 365 days. - function _initializeState( - LightClientState memory _genesis, - StakeTableState memory _genesisStakeTableState, - uint32 _stateHistoryRetentionPeriod - ) internal { - // The viewNum and blockHeight in the genesis state must be zero to indicate that this is - // the initial state. Stake table commitments and threshold cannot be zero, otherwise it's - // impossible to generate valid proof to move finalized state forward. The - // stateHistoryRetentionPeriod must be at least 1 hour and no more than 365 days - // to ensure proper state retention. - if ( - _genesis.viewNum != 0 || _genesis.blockHeight != 0 - || BN254.ScalarField.unwrap(_genesisStakeTableState.blsKeyComm) == 0 - || BN254.ScalarField.unwrap(_genesisStakeTableState.schnorrKeyComm) == 0 - || BN254.ScalarField.unwrap(_genesisStakeTableState.amountComm) == 0 - || _genesisStakeTableState.threshold == 0 || _stateHistoryRetentionPeriod < 1 hours - || _stateHistoryRetentionPeriod > 365 days - ) { - revert InvalidArgs(); - } - - genesisState = _genesis; - genesisStakeTableState = _genesisStakeTableState; - finalizedState = _genesis; - - stateHistoryRetentionPeriod = _stateHistoryRetentionPeriod; - - updateStateHistory(uint64(currentBlockNumber()), uint64(block.timestamp), _genesis); + } + + /// @notice set the permissionedProver to the non-zero address provided + /// @dev this function can also be used to update the permissioned prover once it's a different + /// address to the current permissioned prover + function setPermissionedProver(address prover) public virtual onlyOwner { + if (prover == address(0)) { + revert InvalidAddress(); } - - // === State Modifying APIs === - // - /// @notice Update the latest finalized light client state. It must be updated - /// periodically, especially an update for the last block for every - /// period has to be submitted - /// before any newer state can be accepted since the stake table commitments of that block - /// become the snapshots used for vote verifications later on. - /// @dev if the permissionedProver is set, only the permissionedProver can call this function - /// @dev the state history for `stateHistoryRetentionPeriod` L1 blocks are also recorded in the - /// `stateHistoryCommitments` array - /// @notice While `newState.stakeTable*` refers to the (possibly) new stake table states, - /// the entire `newState` needs to be signed by stakers in `finalizedState` - /// @param newState new light client state - /// @param proof PlonkProof - function newFinalizedState( - LightClientState memory newState, - IPlonkVerifier.PlonkProof memory proof - ) external virtual { - //revert if we're in permissionedProver mode and the permissioned prover has not been set - if (isPermissionedProverEnabled() && msg.sender != permissionedProver) { - revert ProverNotPermissioned(); - } - - if ( - newState.viewNum <= finalizedState.viewNum - || newState.blockHeight <= finalizedState.blockHeight - ) { - revert OutdatedState(); - } - // format validity check - BN254.validateScalarField(newState.blockCommRoot); - - // check plonk proof - verifyProof(newState, proof); - - // upon successful verification, update the latest finalized state - finalizedState = newState; - - updateStateHistory(uint64(currentBlockNumber()), uint64(block.timestamp), newState); - - emit NewState(newState.viewNum, newState.blockHeight, newState.blockCommRoot); + if (prover == permissionedProver) { + revert NoChangeRequired(); } - - /// @notice Verify the Plonk proof, marked as `virtual` for easier testing as we can swap VK - /// used in inherited contracts. - function verifyProof(LightClientState memory state, IPlonkVerifier.PlonkProof memory proof) - internal - virtual - { - IPlonkVerifier.VerifyingKey memory vk = VkLib.getVk(); - - // Prepare the public input - uint256[7] memory publicInput; - publicInput[0] = uint256(state.viewNum); - publicInput[1] = uint256(state.blockHeight); - publicInput[2] = BN254.ScalarField.unwrap(state.blockCommRoot); - publicInput[3] = BN254.ScalarField.unwrap(genesisStakeTableState.blsKeyComm); - publicInput[4] = BN254.ScalarField.unwrap(genesisStakeTableState.schnorrKeyComm); - publicInput[5] = BN254.ScalarField.unwrap(genesisStakeTableState.amountComm); - publicInput[6] = genesisStakeTableState.threshold; - - if (!PlonkVerifier.verify(vk, publicInput, proof)) { - revert InvalidProof(); - } + permissionedProver = prover; + emit PermissionedProverRequired(permissionedProver); + } + + /// @notice set the permissionedProver to address(0) + /// @dev if it was already disabled, then revert with the error, NoChangeRequired + function disablePermissionedProverMode() public virtual onlyOwner { + if (isPermissionedProverEnabled()) { + permissionedProver = address(0); + emit PermissionedProverNotRequired(); + } else { + revert NoChangeRequired(); } - - /// @notice set the permissionedProver to the non-zero address provided - /// @dev this function can also be used to update the permissioned prover once it's a different - /// address to the current permissioned prover - function setPermissionedProver(address prover) public virtual onlyOwner { - if (prover == address(0)) { - revert InvalidAddress(); - } - if (prover == permissionedProver) { - revert NoChangeRequired(); - } - permissionedProver = prover; - emit PermissionedProverRequired(permissionedProver); + } + + /// @notice Updates the `stateHistoryCommitments` array when a new finalized state is added + /// and prunes the most outdated element starting from the first element if they fall outside + /// the + /// `stateHistoryRetentionPeriod`. + /// @dev the block timestamp is used to determine if the stateHistoryCommitments array + /// should be pruned, based on the stateHistoryRetentionPeriod (seconds). + /// @dev A FIFO approach is used to remove the most outdated element from the start of the + /// array. + /// However, only one outdated element is removed per invocation of this function, even if + /// multiple elements exceed the retention period. As a result, some outdated elements may + /// remain in the array temporarily until subsequent invocations of this function. + /// @dev the `delete` method does not reduce the array length but resets the value at the + /// specified index to zero. the stateHistoryFirstIndex variable acts as an offset to indicate + /// the starting point for reading the array, since the length of the array is not reduced + /// even after deletion. + /// @param blockNumber The block number of the new finalized state. + /// @param blockTimestamp The block timestamp used to check the retention period. + /// @param state The new `LightClientState` being added to the array. + function updateStateHistory(uint64 blockNumber, uint64 blockTimestamp, LightClientState memory state) internal { + if ( + stateHistoryCommitments.length != 0 && + blockTimestamp - stateHistoryCommitments[stateHistoryFirstIndex].l1BlockTimestamp > stateHistoryRetentionPeriod + ) { + // The stateHistoryCommitments array has reached the maximum retention period + // delete the oldest (first) non-empty element to maintain the FIFO structure. + delete stateHistoryCommitments[stateHistoryFirstIndex]; + + // increment the offset to the first non-zero element in the stateHistoryCommitments + // array + stateHistoryFirstIndex++; } - /// @notice set the permissionedProver to address(0) - /// @dev if it was already disabled, then revert with the error, NoChangeRequired - function disablePermissionedProverMode() public virtual onlyOwner { - if (isPermissionedProverEnabled()) { - permissionedProver = address(0); - emit PermissionedProverNotRequired(); - } else { - revert NoChangeRequired(); - } + // add the L1 Block & HotShot commitment to the stateHistoryCommitments + stateHistoryCommitments.push( + StateHistoryCommitment(blockNumber, blockTimestamp, state.blockHeight, state.blockCommRoot) + ); + } + + /// @notice checks if the state updates lag behind the specified block threshold based on the + /// provided block number. + /// @dev Reverts if there isn't enough state history to make an accurate comparison. + /// Reverts if the blockThreshold is zero + /// @param blockNumber The block number to compare against the latest state updates. + /// @param blockThreshold The number of blocks updates this contract is allowed to lag behind. + /// @return bool returns true if the lag exceeds the blockThreshold; otherwise, false. + function lagOverEscapeHatchThreshold(uint256 blockNumber, uint256 blockThreshold) public view virtual returns (bool) { + uint256 updatesCount = stateHistoryCommitments.length; + + // Edge Case Handling: + // 1. Provided block number is greater than the current block (invalid) + // 2. No updates have occurred (i.e., state history is empty) + // 3. Provided block number is earlier than the first recorded state update + // the stateHistoryFirstIndex is used to check for the first nonZero element + if ( + blockNumber > currentBlockNumber() || + updatesCount == 0 || + blockNumber < stateHistoryCommitments[stateHistoryFirstIndex].l1BlockHeight + ) { + revert InsufficientSnapshotHistory(); } - /// @notice Updates the `stateHistoryCommitments` array when a new finalized state is added - /// and prunes the most outdated element starting from the first element if they fall outside - /// the - /// `stateHistoryRetentionPeriod`. - /// @dev the block timestamp is used to determine if the stateHistoryCommitments array - /// should be pruned, based on the stateHistoryRetentionPeriod (seconds). - /// @dev A FIFO approach is used to remove the most outdated element from the start of the - /// array. - /// However, only one outdated element is removed per invocation of this function, even if - /// multiple elements exceed the retention period. As a result, some outdated elements may - /// remain in the array temporarily until subsequent invocations of this function. - /// @dev the `delete` method does not reduce the array length but resets the value at the - /// specified index to zero. the stateHistoryFirstIndex variable acts as an offset to indicate - /// the starting point for reading the array, since the length of the array is not reduced - /// even after deletion. - /// @param blockNumber The block number of the new finalized state. - /// @param blockTimestamp The block timestamp used to check the retention period. - /// @param state The new `LightClientState` being added to the array. - function updateStateHistory( - uint64 blockNumber, - uint64 blockTimestamp, - LightClientState memory state - ) internal { - if ( - stateHistoryCommitments.length != 0 - && blockTimestamp - stateHistoryCommitments[stateHistoryFirstIndex].l1BlockTimestamp - > stateHistoryRetentionPeriod - ) { - // The stateHistoryCommitments array has reached the maximum retention period - // delete the oldest (first) non-empty element to maintain the FIFO structure. - delete stateHistoryCommitments[stateHistoryFirstIndex]; - - // increment the offset to the first non-zero element in the stateHistoryCommitments - // array - stateHistoryFirstIndex++; - } - - // add the L1 Block & HotShot commitment to the stateHistoryCommitments - stateHistoryCommitments.push( - StateHistoryCommitment( - blockNumber, blockTimestamp, state.blockHeight, state.blockCommRoot - ) - ); + uint256 eligibleStateUpdateBlockNumber; // the eligibleStateUpdateBlockNumber is <= + // blockNumber + bool stateUpdateFound; // if an eligible block number is found in the state update history, + // then this variable is set to true + + // Search from the most recent state update back to find the first update <= blockNumber + uint256 i = updatesCount - 1; + while (!stateUpdateFound) { + // Stop searching if we've exhausted the recorded state history + if (i < stateHistoryFirstIndex) { + break; + } + + // Find the first update with a block height <= blockNumber + if (stateHistoryCommitments[i].l1BlockHeight <= blockNumber) { + stateUpdateFound = true; + eligibleStateUpdateBlockNumber = stateHistoryCommitments[i].l1BlockHeight; + break; + } + + i--; } - /// @notice checks if the state updates lag behind the specified block threshold based on the - /// provided block number. - /// @dev Reverts if there isn't enough state history to make an accurate comparison. - /// Reverts if the blockThreshold is zero - /// @param blockNumber The block number to compare against the latest state updates. - /// @param blockThreshold The number of blocks updates this contract is allowed to lag behind. - /// @return bool returns true if the lag exceeds the blockThreshold; otherwise, false. - function lagOverEscapeHatchThreshold(uint256 blockNumber, uint256 blockThreshold) - public - view - virtual - returns (bool) - { - uint256 updatesCount = stateHistoryCommitments.length; - - // Edge Case Handling: - // 1. Provided block number is greater than the current block (invalid) - // 2. No updates have occurred (i.e., state history is empty) - // 3. Provided block number is earlier than the first recorded state update - // the stateHistoryFirstIndex is used to check for the first nonZero element - if ( - blockNumber > currentBlockNumber() || updatesCount == 0 - || blockNumber < stateHistoryCommitments[stateHistoryFirstIndex].l1BlockHeight - ) { - revert InsufficientSnapshotHistory(); - } - - uint256 eligibleStateUpdateBlockNumber; // the eligibleStateUpdateBlockNumber is <= - // blockNumber - bool stateUpdateFound; // if an eligible block number is found in the state update history, - // then this variable is set to true - - // Search from the most recent state update back to find the first update <= blockNumber - uint256 i = updatesCount - 1; - while (!stateUpdateFound) { - // Stop searching if we've exhausted the recorded state history - if (i < stateHistoryFirstIndex) { - break; - } - - // Find the first update with a block height <= blockNumber - if (stateHistoryCommitments[i].l1BlockHeight <= blockNumber) { - stateUpdateFound = true; - eligibleStateUpdateBlockNumber = stateHistoryCommitments[i].l1BlockHeight; - break; - } - - i--; - } - - // If no snapshot is found, we don't have enough history stored - // to tell whether HotShot was down. - if (!stateUpdateFound) { - revert InsufficientSnapshotHistory(); - } - - return blockNumber - eligibleStateUpdateBlockNumber > blockThreshold; + // If no snapshot is found, we don't have enough history stored + // to tell whether HotShot was down. + if (!stateUpdateFound) { + revert InsufficientSnapshotHistory(); } - /// @notice get the HotShot commitment that represents the Merkle root containing the leaf at - /// the provided hotShotBlockHeight where the block height in the array is greater than - // or equal to the provided hotShotBlockHeight. - /// @dev if the provided hotShotBlockHeight is greater than the latest commitment in the array, - /// the function reverts. - /// @param hotShotBlockHeight the HotShot block height - /// @return hotShotBlockCommRoot the HotShot commitment root - /// @return hotshotBlockHeight the HotShot block height for the corresponding commitment root - function getHotShotCommitment(uint256 hotShotBlockHeight) - public - view - virtual - returns (BN254.ScalarField hotShotBlockCommRoot, uint64 hotshotBlockHeight) - { - uint256 commitmentsHeight = stateHistoryCommitments.length; - if (hotShotBlockHeight > stateHistoryCommitments[commitmentsHeight - 1].hotShotBlockHeight) - { - revert InvalidHotShotBlockForCommitmentCheck(); - } - for (uint256 i = stateHistoryFirstIndex; i < commitmentsHeight; i++) { - // Finds and returns the first HotShot commitment whose height is greater than - // or equal to the specified HotShot height. - if (stateHistoryCommitments[i].hotShotBlockHeight >= hotShotBlockHeight) { - return ( - stateHistoryCommitments[i].hotShotBlockCommRoot, - stateHistoryCommitments[i].hotShotBlockHeight - ); - } - } + return blockNumber - eligibleStateUpdateBlockNumber > blockThreshold; + } + + /// @notice get the HotShot commitment that represents the Merkle root containing the leaf at + /// the provided hotShotBlockHeight where the block height in the array is greater than + // or equal to the provided hotShotBlockHeight. + /// @dev if the provided hotShotBlockHeight is greater than the latest commitment in the array, + /// the function reverts. + /// @param hotShotBlockHeight the HotShot block height + /// @return hotShotBlockCommRoot the HotShot commitment root + /// @return hotshotBlockHeight the HotShot block height for the corresponding commitment root + function getHotShotCommitment( + uint256 hotShotBlockHeight + ) public view virtual returns (BN254.ScalarField hotShotBlockCommRoot, uint64 hotshotBlockHeight) { + uint256 commitmentsHeight = stateHistoryCommitments.length; + if (hotShotBlockHeight > stateHistoryCommitments[commitmentsHeight - 1].hotShotBlockHeight) { + revert InvalidHotShotBlockForCommitmentCheck(); } - - /// @notice get the number of state history commitments - /// @return uint256 The number of state history commitments - function getStateHistoryCount() public view returns (uint256) { - return stateHistoryCommitments.length; + for (uint256 i = stateHistoryFirstIndex; i < commitmentsHeight; i++) { + // Finds and returns the first HotShot commitment whose height is greater than + // or equal to the specified HotShot height. + if (stateHistoryCommitments[i].hotShotBlockHeight >= hotShotBlockHeight) { + return (stateHistoryCommitments[i].hotShotBlockCommRoot, stateHistoryCommitments[i].hotShotBlockHeight); + } } - - /// @notice sets the maximum retention period for storing block state history. - /// @param historySeconds The maximum number of seconds for which state history updates - /// will be stored, based on the block timestamp. It must be greater than or equal to - /// the current state history retention period and must be at least 1 hour and max 365 days. - /// @dev Reverts with `InvalidMaxStateHistory` if the provided value is less than 1 hour, - /// more than 365 days or less than or equal to the current state history retention period. - function setstateHistoryRetentionPeriod(uint32 historySeconds) public onlyOwner { - if ( - historySeconds < 1 hours || historySeconds > 365 days - || historySeconds <= stateHistoryRetentionPeriod - ) { - revert InvalidMaxStateHistory(); - } - - stateHistoryRetentionPeriod = historySeconds; + } + + /// @notice get the number of state history commitments + /// @return uint256 The number of state history commitments + function getStateHistoryCount() public view returns (uint256) { + return stateHistoryCommitments.length; + } + + /// @notice sets the maximum retention period for storing block state history. + /// @param historySeconds The maximum number of seconds for which state history updates + /// will be stored, based on the block timestamp. It must be greater than or equal to + /// the current state history retention period and must be at least 1 hour and max 365 days. + /// @dev Reverts with `InvalidMaxStateHistory` if the provided value is less than 1 hour, + /// more than 365 days or less than or equal to the current state history retention period. + function setstateHistoryRetentionPeriod(uint32 historySeconds) public onlyOwner { + if (historySeconds < 1 hours || historySeconds > 365 days || historySeconds <= stateHistoryRetentionPeriod) { + revert InvalidMaxStateHistory(); } - /// @notice Check if permissioned prover is enabled - function isPermissionedProverEnabled() public view returns (bool) { - return (permissionedProver != address(0)); - } + stateHistoryRetentionPeriod = historySeconds; + } + + /// @notice Check if permissioned prover is enabled + function isPermissionedProverEnabled() public view returns (bool) { + return (permissionedProver != address(0)); + } } From 9c97b7e0d53527112ecbaf727439c018b0628aef Mon Sep 17 00:00:00 2001 From: Sneh Koul Date: Sun, 22 Dec 2024 10:32:08 -0500 Subject: [PATCH 3/8] contract-bindings --- .../artifacts/LightClientMock_bytecode.json | 2 +- .../artifacts/LightClient_bytecode.json | 2 +- contract-bindings/src/light_client.rs | 68 ++ contract-bindings/src/light_client_mock.rs | 68 ++ contracts/src/LightClient.sol | 808 +++++++++--------- contracts/src/LightClientArbitrum.sol | 8 +- 6 files changed, 563 insertions(+), 393 deletions(-) diff --git a/contract-bindings/artifacts/LightClientMock_bytecode.json b/contract-bindings/artifacts/LightClientMock_bytecode.json index 0873013c7c..2999f519ae 100644 --- a/contract-bindings/artifacts/LightClientMock_bytecode.json +++ b/contract-bindings/artifacts/LightClientMock_bytecode.json @@ -1 +1 @@ -"0x60a0604052306080523480156200001557600080fd5b506040516200339d3803806200339d8339810160408190526200003891620004ec565b6200004262000058565b6200004f8383836200010c565b5050506200062c565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000a95760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001095780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b82516001600160401b031615158062000131575060208301516001600160401b031615155b806200013f57506020820151155b806200014d57506040820151155b806200015b57506060820151155b806200016657508151155b80620001795750610e108163ffffffff16105b806200018e57506301e133808163ffffffff16115b15620001ad576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b0390811668010000000000000000026001600160801b031993841691909516908117851790935560408088015160058190558751600055918701516001558601516002556060860151600355600680549092169092179092179091556007556008805463ffffffff8316600160a01b0263ffffffff60a01b199091161790556200024c43428562000251565b505050565b60095415801590620002d2575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110620002955762000295620005a5565b6000918252602090912060029091020154620002c7906801000000000000000090046001600160401b031684620005d1565b6001600160401b0316115b156200036c57600854600980549091600160c01b90046001600160401b0316908110620003035762000303620005a5565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186200034683620005fb565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b02600160801b600160c01b031995881668010000000000000000026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b604051606081016001600160401b03811182821017156200048357634e487b7160e01b600052604160045260246000fd5b60405290565b604051608081016001600160401b03811182821017156200048357634e487b7160e01b600052604160045260246000fd5b80516001600160401b0381168114620004d257600080fd5b919050565b805163ffffffff81168114620004d257600080fd5b60008060008385036101008112156200050457600080fd5b60608112156200051357600080fd5b6200051d62000452565b6200052886620004ba565b81526200053860208701620004ba565b60208201526040868101519082015293506080605f19820112156200055c57600080fd5b506200056762000489565b60608581015182526080860151602083015260a0860151604083015260c08601519082015291506200059c60e08501620004d7565b90509250925092565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6001600160401b03828116828216039080821115620005f457620005f4620005bb565b5092915050565b60006001600160401b038281166002600160401b03198101620006225762000622620005bb565b6001019392505050565b608051612d4762000656600039600081816111520152818161117b01526112fa0152612d476000f3fe60806040526004361061019c5760003560e01c80638584d23f116100ec578063c23b9e9e1161008a578063e030330111610064578063e03033011461060c578063f2fde38b1461062c578063f56761601461064c578063f9e50d191461066c57600080fd5b8063c23b9e9e14610587578063c8e5e498146105c0578063d24d933d146105dc57600080fd5b80639baa3cc9116100c65780639baa3cc91461047b5780639fdb54a71461049b578063ad3cb1cc146104f1578063b5adea3c1461052f57600080fd5b80638584d23f146103e15780638da5cb5b1461041e57806396c1ca611461045b57600080fd5b8063313df7b11161015957806352d1902d1161013357806352d1902d1461036857806369cc6a041461038b578063715018a6146103a0578063826e41fc146103b557600080fd5b8063313df7b1146102da578063426d3194146103125780634f1ef2861461035557600080fd5b8063013fa5fc146101a157806302b592f3146101c35780630d8e6e2c146102215780632063d4f71461024e5780632d52aad61461026e5780632f79889d1461029b575b600080fd5b3480156101ad57600080fd5b506101c16101bc3660046121bb565b610681565b005b3480156101cf57600080fd5b506101e36101de3660046121d6565b610734565b60405161021894939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b34801561022d57600080fd5b50604080516001815260006020820181905291810191909152606001610218565b34801561025a57600080fd5b506101c161026936600461234c565b61077f565b34801561027a57600080fd5b506101c16102893660046121d6565b600a805460ff19166001179055600b55565b3480156102a757600080fd5b506008546102c290600160c01b90046001600160401b031681565b6040516001600160401b039091168152602001610218565b3480156102e657600080fd5b506008546102fa906001600160a01b031681565b6040516001600160a01b039091168152602001610218565b34801561031e57600080fd5b506000546001546002546003546103359392919084565b604080519485526020850193909352918301526060820152608001610218565b6101c1610363366004612500565b6108d4565b34801561037457600080fd5b5061037d6108f3565b604051908152602001610218565b34801561039757600080fd5b506101c1610910565b3480156103ac57600080fd5b506101c161097f565b3480156103c157600080fd5b506008546001600160a01b031615155b6040519015158152602001610218565b3480156103ed57600080fd5b506104016103fc3660046121d6565b610991565b604080519283526001600160401b03909116602083015201610218565b34801561042a57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166102fa565b34801561046757600080fd5b506101c16104763660046125b9565b610ac4565b34801561048757600080fd5b506101c16104963660046125d4565b610b4d565b3480156104a757600080fd5b506006546007546104cb916001600160401b0380821692600160401b909204169083565b604080516001600160401b03948516815293909216602084015290820152606001610218565b3480156104fd57600080fd5b50610522604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516102189190612684565b34801561053b57600080fd5b506101c161054a3660046126b7565b80516006805460208401516001600160401b03908116600160401b026001600160801b031990921693169290921791909117905560400151600755565b34801561059357600080fd5b506008546105ab90600160a01b900463ffffffff1681565b60405163ffffffff9091168152602001610218565b3480156105cc57600080fd5b506101c1600a805460ff19169055565b3480156105e857600080fd5b506004546005546104cb916001600160401b0380821692600160401b909204169083565b34801561061857600080fd5b506103d16106273660046126d3565b610c71565b34801561063857600080fd5b506101c16106473660046121bb565b610ca7565b34801561065857600080fd5b506101c16106673660046126f5565b610cea565b34801561067857600080fd5b5060095461037d565b610689610d98565b6001600160a01b0381166106b05760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036106df5760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061074457600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156107a457506008546001600160a01b03163314155b156107c2576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806107fb575060065460208301516001600160401b03600160401b9092048216911611155b156108195760405163051c46ef60e01b815260040160405180910390fd5b6108268260400151610df3565b6108308282610e63565b81516006805460208501516001600160401b03908116600160401b026001600160801b03199092169316929092179190911790556040820151600755610877434284610f5b565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516108c891815260200190565b60405180910390a35050565b6108dc611147565b6108e5826111ec565b6108ef828261122d565b5050565b60006108fd6112ef565b50600080516020612d1b83398151915290565b610918610d98565b6008546001600160a01b03161561096457600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b610987610d98565b61097d6000611338565b600980546000918291906109a6600183612800565b815481106109b6576109b6612813565b6000918252602090912060029091020154600160801b90046001600160401b03168411156109f757604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610abd578460098281548110610a2757610a27612813565b6000918252602090912060029091020154600160801b90046001600160401b031610610ab55760098181548110610a6057610a60612813565b90600052602060002090600202016001015460098281548110610a8557610a85612813565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a0b565b5050915091565b610acc610d98565b610e108163ffffffff161080610aeb57506301e133808163ffffffff16115b80610b09575060085463ffffffff600160a01b909104811690821611155b15610b27576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b925750825b90506000826001600160401b03166001148015610bae5750303b155b905081158015610bbc575080155b15610bda5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c0457845460ff60401b1916600160401b1785555b610c0d866113a9565b610c156113ba565b610c208989896113c2565b8315610c6657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600a5460009060ff16610c8d57610c8883836114f3565b610c9e565b81600b5484610c9c9190612800565b115b90505b92915050565b610caf610d98565b6001600160a01b038116610cde57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610ce781611338565b50565b610cf660096000611ea9565b60005b81518110156108ef576009828281518110610d1657610d16612813565b602090810291909101810151825460018181018555600094855293839020825160029092020180549383015160408401516001600160401b03908116600160801b0267ffffffffffffffff60801b19928216600160401b026001600160801b031990971691909416179490941793909316178255606001519082015501610cf9565b33610dca7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03161461097d5760405163118cdaa760e01b8152336004820152602401610cd5565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108ef5760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610cd5565b6000610e6d611650565b9050610e77611eca565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273__$5c5c07cf4f55be9472c2b47d897172e765$__9063ce537a7790610ef790859085908890600401612a30565b602060405180830381865af4158015610f14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f389190612c5f565b610f55576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590610fd1575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610f9b57610f9b612813565b6000918252602090912060029091020154610fc690600160401b90046001600160401b031684612c81565b6001600160401b0316115b1561106557600854600980549091600160c01b90046001600160401b0316908110610ffe57610ffe612813565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b031690601861103f83612ca8565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806111ce57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111c2600080516020612d1b833981519152546001600160a01b031690565b6001600160a01b031614155b1561097d5760405163703e46dd60e11b815260040160405180910390fd5b6111f4610d98565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d90602001610729565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611287575060408051601f3d908101601f1916820190925261128491810190612cce565b60015b6112af57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610cd5565b600080516020612d1b83398151915281146112e057604051632a87526960e21b815260048101829052602401610cd5565b6112ea8383611c80565b505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461097d5760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6113b1611cd6565b610ce781611d1f565b61097d611cd6565b82516001600160401b03161515806113e6575060208301516001600160401b031615155b806113f357506020820151155b8061140057506040820151155b8061140d57506060820151155b8061141757508151155b806114295750610e108163ffffffff16105b8061143d57506301e133808163ffffffff16115b1561145b576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b031993841691909516908117851790935560408088015160058190558751600055918701516001558601516002556060860151600355600680549092169092179092179091556007556008805463ffffffff8316600160a01b0263ffffffff60a01b199091161790556112ea434285610f5b565b60095460009043841180611505575080155b806115505750600854600980549091600160c01b90046001600160401b031690811061153357611533612813565b60009182526020909120600290910201546001600160401b031684105b1561156e5760405163b0b4387760e01b815260040160405180910390fd5b6000808061157d600185612800565b90505b8161161b57600854600160c01b90046001600160401b0316811061161b5786600982815481106115b2576115b2612813565b60009182526020909120600290910201546001600160401b0316116116095760019150600981815481106115e8576115e8612813565b60009182526020909120600290910201546001600160401b0316925061161b565b8061161381612ce7565b915050611580565b816116395760405163b0b4387760e01b815260040160405180910390fd5b856116448489612800565b11979650505050505050565b611658611ee8565b620100008152600760208201527f1369aa78dc50135ad756d62c97a64a0edcd30066584168200d9d1facf82ca4f56040820151527f2cf23456d712b06f8e3aa5bf0acc3e46a3d094602a3a2b99d873bba05a4391476020604083015101527f08a35f379d2d2c490a51006697275e4db79b67b4a175c1477e262d29e25e42316060820151527f218828131bb7940ccc88c561b299755af4bf0b71ed930b129e8be0a1218139ea6020606083015101527f23a2172436c1145b36d5bc6d3b31fa1610c73a543ea443918aaa3ee175f9921b6080820151527f2502adf404d62877c310214ae9942e93c40b154d34c024bab48a3ca057e60a116020608083015101527f1bb88ada91ab7734882f7826b81275320081ac485f9cf8bfbc3ba54b6eb4dff360a0820151527f25c74a27e9a3b20114a3a91f31c20f01777e7ed913e0ef949f0285e2e7c2069b602060a083015101527f12b0ce76ac8b0dbd405ebc5dd0bae0f91aed50033c7ea36fc62aaba2b98333dc60c0820151527f185b42af49dd1cbe337a84f74b704172428e754a0bea024ab3eb2f996afb2c47602060c083015101527f21f53ad4538b45438bbf0521446070223920e3df6f9022a64cc16d7f94e85c0860e0820151527f2278ac3dedfdac7feb9725a022497175518eada52c8932fc40e6e75bea889fb8602060e083015101527f0876136f81c16298487bfb1be74d4a3487ec45645ab1d09dc2e5b865d62230df610100820151527f098c641c947ecd798dfd5e1b2fe428024cdf03061a53ff774ea8a9e3de9d3f2b602061010083015101527f15eaac2c6232d2268bf79dc47ed9666f992fb3d96ad23fb21690c21586c5472e610120820151527f0f10f1ffc54881287fda6f200bc85d8245b508d844a974098a41119867b325d0602061012083015101527f0895ceea40b085534e9739ca5442ba48b3a3592affde2b509df74521b47d8ab0610140820151527f2e12ec5800ac92fe2a8e7040bc5b435b9eb71e31380173fa7688bf81fcbba455602061014083015101527f2f5384eb5653e47576efe248e7903f463243414bfed5237dda750df3996bd918610160820151527f1c3cd6b11da8704cdc871ab4fa323d7ee57bd40ce165b49a56d5ef6489cd251a602061016083015101527f13579994957ce1554cc1e5b194fb63c9513707f627414f8442681ae736e36450610180820151527f26c9bdcd96d8e420b12974ade93ad9c312c4185213d2f6831a7c625a18890e95602061018083015101527f0cc70a1d542a9a1535ae5d9201696adc5c99c1bcebd9951dfa8afec79fa0b6446101a0820151527f10b043d9f1869181b96579d6616efc17a5df7b84c4d431d966c9094bf1e8815360206101a083015101527f198a65309d131a43b0ab1c47659d0336cfbf62b27f4727106b4fd971c73dd4036101c0820151527f23df99eac3c1947903b211b800efeb76f47d5e87b7414866543492e8c7798d1a60206101c083015101527f221cc5e47b81ce8dcfa72ef981916a8eddef12fcde59c56c62830c126ebef0de6101e0820151527f231f99340c35c9e09652a6df73c9cec5d88738cb71ff45716fdc9e9e45a4926e60206101e083015101527f2c9f1489fce0f263e03f3e97bf0a72273aafcca9325ff47786adb04a52a6d22c610200820151527f21f66e28f17e01e9fd593e16d022c4eca25bd5db96daec606d97b604cc414838602061020083015101527f2015745604a9571e226bd99043cfaf1f96267cc5de67f497563ff81100531d26610220820151527f206889ff4c58dd08ee1107191a2a5bc5dbae55c49d7d8397801799868d10f805602061022083015101527f21062ab8f8ecd8932b429a1eb8614b1e03db61bff6a5cd2d5d7ea193e90e9927610240820151527f217f9b27b934b88ffe555d682dfe6e8b6d503f86b14bbd96342bc48487a60b27602061024083015101527f1c9eda2d195cb731f903235ead6a4f7c66db49da713ecb27afee076f0eea7154610260820151527f2647c161c00b90258e1cefebb17481f8a5d91b5f9dca626e3e89a9215bcca16a602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611c8982611d27565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611cce576112ea8282611d8c565b6108ef611e02565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661097d57604051631afcd79f60e31b815260040160405180910390fd5b610caf611cd6565b806001600160a01b03163b600003611d5d57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610cd5565b600080516020612d1b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611da99190612cfe565b600060405180830381855af49150503d8060008114611de4576040519150601f19603f3d011682016040523d82523d6000602084013e611de9565b606091505b5091509150611df9858383611e21565b95945050505050565b341561097d5760405163b398979f60e01b815260040160405180910390fd5b606082611e3657611e3182611e80565b611e79565b8151158015611e4d57506001600160a01b0384163b155b15611e7657604051639996b31560e01b81526001600160a01b0385166004820152602401610cd5565b50805b9392505050565b805115611e905780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b5080546000825560020290600052602060002090810190610ce79190612175565b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611f1f604051806040016040528060008152602001600081525090565b8152602001611f41604051806040016040528060008152602001600081525090565b8152602001611f63604051806040016040528060008152602001600081525090565b8152602001611f85604051806040016040528060008152602001600081525090565b8152602001611fa7604051806040016040528060008152602001600081525090565b8152602001611fc9604051806040016040528060008152602001600081525090565b8152602001611feb604051806040016040528060008152602001600081525090565b815260200161200d604051806040016040528060008152602001600081525090565b815260200161202f604051806040016040528060008152602001600081525090565b8152602001612051604051806040016040528060008152602001600081525090565b8152602001612073604051806040016040528060008152602001600081525090565b8152602001612095604051806040016040528060008152602001600081525090565b81526020016120b7604051806040016040528060008152602001600081525090565b81526020016120d9604051806040016040528060008152602001600081525090565b81526020016120fb604051806040016040528060008152602001600081525090565b815260200161211d604051806040016040528060008152602001600081525090565b815260200161213f604051806040016040528060008152602001600081525090565b8152602001612161604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b5b8082111561219b5780546001600160c01b031916815560006001820155600201612176565b5090565b80356001600160a01b03811681146121b657600080fd5b919050565b6000602082840312156121cd57600080fd5b610c9e8261219f565b6000602082840312156121e857600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b0381118282101715612228576122286121ef565b60405290565b604051608081016001600160401b0381118282101715612228576122286121ef565b604051601f8201601f191681016001600160401b0381118282101715612278576122786121ef565b604052919050565b80356001600160401b03811681146121b657600080fd5b6000606082840312156122a957600080fd5b604051606081018181106001600160401b03821117156122cb576122cb6121ef565b6040529050806122da83612280565b81526122e860208401612280565b6020820152604083013560408201525092915050565b60006040828403121561231057600080fd5b604051604081018181106001600160401b0382111715612332576123326121ef565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561236157600080fd5b61236b8585612297565b925061048080605f198301121561238157600080fd5b612389612205565b915061239886606087016122fe565b82526123a78660a087016122fe565b60208301526123b98660e087016122fe565b60408301526101206123cd878288016122fe565b60608401526101606123e1888289016122fe565b60808501526101a06123f589828a016122fe565b60a08601526101e06124098a828b016122fe565b60c087015261022061241d8b828c016122fe565b60e08801526102606124318c828d016122fe565b6101008901526102a06124468d828e016122fe565b878a01526124588d6102e08e016122fe565b6101408a015261246c8d6103208e016122fe565b868a015261247e8d6103608e016122fe565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561251357600080fd5b61251c8361219f565b91506020808401356001600160401b038082111561253957600080fd5b818601915086601f83011261254d57600080fd5b81358181111561255f5761255f6121ef565b612571601f8201601f19168501612250565b9150808252878482850101111561258757600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146121b657600080fd5b6000602082840312156125cb57600080fd5b610c9e826125a5565b6000806000808486036101208112156125ec57600080fd5b6125f68787612297565b94506080605f198201121561260a57600080fd5b5061261361222e565b60608681013582526080870135602083015260a0870135604083015260c087013590820152925061264660e086016125a5565b9150612655610100860161219f565b905092959194509250565b60005b8381101561267b578181015183820152602001612663565b50506000910152565b60208152600082518060208401526126a3816040850160208701612660565b601f01601f19169190910160400192915050565b6000606082840312156126c957600080fd5b610c9e8383612297565b600080604083850312156126e657600080fd5b50508035926020909101359150565b6000602080838503121561270857600080fd5b82356001600160401b038082111561271f57600080fd5b818501915085601f83011261273357600080fd5b813581811115612745576127456121ef565b612753848260051b01612250565b818152848101925060079190911b83018401908782111561277357600080fd5b928401925b818410156127df57608084890312156127915760008081fd5b61279961222e565b6127a285612280565b81526127af868601612280565b8682015260406127c0818701612280565b9082015260608581013590820152835260809093019291840191612778565b979650505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610ca157610ca16127ea565b634e487b7160e01b600052603260045260246000fd5b8060005b6007811015610f5557815184526020938401939091019060010161282d565b61286182825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e08401525060808101516101006128c48185018380518252602090810151910152565b60a083015191506101406128e48186018480518252602090810151910152565b60c084015192506101806129048187018580518252602090810151910152565b60e085015193506101c06129248188018680518252602090810151910152565b928501519350610200926129448785018680518252602090810151910152565b61012086015194506102406129658189018780518252602090810151910152565b928601519450610280926129858885018780518252602090810151910152565b61016087015195506102c06129a6818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a608201905084518252602085015160208301526040850151612a63604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a0850151610100612ab08185018380518252602090810151910152565b60c08701519150610140612ad08186018480518252602090810151910152565b60e08801519250610180612af08187018580518252602090810151910152565b9188015192506101c091612b108684018580518252602090810151910152565b6101208901519350610200612b318188018680518252602090810151910152565b91890151935061024091612b518784018680518252602090810151910152565b6101608a01519450610280612b728189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612c49610500830185612829565b612c576105e083018461284c565b949350505050565b600060208284031215612c7157600080fd5b81518015158114611e7957600080fd5b6001600160401b03828116828216039080821115612ca157612ca16127ea565b5092915050565b60006001600160401b03808316818103612cc457612cc46127ea565b6001019392505050565b600060208284031215612ce057600080fd5b5051919050565b600081612cf657612cf66127ea565b506000190190565b60008251612d10818460208701612660565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a" +"0x60a0604052306080523480156200001557600080fd5b50604051620033cd380380620033cd8339810160408190526200003891620004ec565b6200004262000058565b6200004f8383836200010c565b5050506200062c565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000a95760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001095780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b82516001600160401b031615158062000131575060208301516001600160401b031615155b806200013f57506020820151155b806200014d57506040820151155b806200015b57506060820151155b806200016657508151155b80620001795750610e108163ffffffff16105b806200018e57506301e133808163ffffffff16115b15620001ad576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b039485166001600160801b03199384168117680100000000000000009690921695909502908117909355604080880151600581905587516000559187015160015586015160025560608601516003556006805490921690931790911790556007556008805463ffffffff60a01b1916600160a01b63ffffffff8416021790556200024c43428562000251565b505050565b60095415801590620002d2575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110620002955762000295620005a5565b6000918252602090912060029091020154620002c7906801000000000000000090046001600160401b031684620005d1565b6001600160401b0316115b156200036c57600854600980549091600160c01b90046001600160401b0316908110620003035762000303620005a5565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186200034683620005fb565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b02600160801b600160c01b031995881668010000000000000000026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b604051606081016001600160401b03811182821017156200048357634e487b7160e01b600052604160045260246000fd5b60405290565b604051608081016001600160401b03811182821017156200048357634e487b7160e01b600052604160045260246000fd5b80516001600160401b0381168114620004d257600080fd5b919050565b805163ffffffff81168114620004d257600080fd5b60008060008385036101008112156200050457600080fd5b60608112156200051357600080fd5b6200051d62000452565b6200052886620004ba565b81526200053860208701620004ba565b60208201526040868101519082015293506080605f19820112156200055c57600080fd5b506200056762000489565b60608581015182526080860151602083015260a0860151604083015260c08601519082015291506200059c60e08501620004d7565b90509250925092565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6001600160401b03828116828216039080821115620005f457620005f4620005bb565b5092915050565b60006001600160401b038281166002600160401b03198101620006225762000622620005bb565b6001019392505050565b608051612d776200065660003960008181611182015281816111ab015261132a0152612d776000f3fe6080604052600436106101b75760003560e01c80638584d23f116100ec578063c23b9e9e1161008a578063e030330111610064578063e030330114610636578063f2fde38b14610656578063f567616014610676578063f9e50d191461069657600080fd5b8063c23b9e9e146105b1578063c8e5e498146105ea578063d24d933d1461060657600080fd5b80639baa3cc9116100c65780639baa3cc9146104a55780639fdb54a7146104c5578063ad3cb1cc1461051b578063b5adea3c1461055957600080fd5b80638584d23f1461040b5780638da5cb5b1461044857806396c1ca611461048557600080fd5b8063378ec23b1161015957806352d1902d1161013357806352d1902d146103a057806369cc6a04146103b5578063715018a6146103ca578063826e41fc146103df57600080fd5b8063378ec23b1461032d578063426d31941461034a5780634f1ef2861461038d57600080fd5b80632063d4f7116101955780632063d4f7146102695780632d52aad6146102895780632f79889d146102b6578063313df7b1146102f557600080fd5b8063013fa5fc146101bc57806302b592f3146101de5780630d8e6e2c1461023c575b600080fd5b3480156101c857600080fd5b506101dc6101d73660046121eb565b6106ab565b005b3480156101ea57600080fd5b506101fe6101f9366004612206565b61075e565b60405161023394939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b34801561024857600080fd5b50604080516001815260006020820181905291810191909152606001610233565b34801561027557600080fd5b506101dc61028436600461237c565b6107a9565b34801561029557600080fd5b506101dc6102a4366004612206565b600a805460ff19166001179055600b55565b3480156102c257600080fd5b506008546102dd90600160c01b90046001600160401b031681565b6040516001600160401b039091168152602001610233565b34801561030157600080fd5b50600854610315906001600160a01b031681565b6040516001600160a01b039091168152602001610233565b34801561033957600080fd5b50435b604051908152602001610233565b34801561035657600080fd5b5060005460015460025460035461036d9392919084565b604080519485526020850193909352918301526060820152608001610233565b6101dc61039b366004612530565b610904565b3480156103ac57600080fd5b5061033c610923565b3480156103c157600080fd5b506101dc610940565b3480156103d657600080fd5b506101dc6109af565b3480156103eb57600080fd5b506008546001600160a01b031615155b6040519015158152602001610233565b34801561041757600080fd5b5061042b610426366004612206565b6109c1565b604080519283526001600160401b03909116602083015201610233565b34801561045457600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610315565b34801561049157600080fd5b506101dc6104a03660046125e9565b610af4565b3480156104b157600080fd5b506101dc6104c0366004612604565b610b7d565b3480156104d157600080fd5b506006546007546104f5916001600160401b0380821692600160401b909204169083565b604080516001600160401b03948516815293909216602084015290820152606001610233565b34801561052757600080fd5b5061054c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161023391906126b4565b34801561056557600080fd5b506101dc6105743660046126e7565b80516006805460208401516001600160401b03908116600160401b026001600160801b031990921693169290921791909117905560400151600755565b3480156105bd57600080fd5b506008546105d590600160a01b900463ffffffff1681565b60405163ffffffff9091168152602001610233565b3480156105f657600080fd5b506101dc600a805460ff19169055565b34801561061257600080fd5b506004546005546104f5916001600160401b0380821692600160401b909204169083565b34801561064257600080fd5b506103fb610651366004612703565b610ca1565b34801561066257600080fd5b506101dc6106713660046121eb565b610cd7565b34801561068257600080fd5b506101dc610691366004612725565b610d1a565b3480156106a257600080fd5b5060095461033c565b6106b3610dc8565b6001600160a01b0381166106da5760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036107095760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061076e57600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156107ce57506008546001600160a01b03163314155b156107ec576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b039182169116111580610825575060065460208301516001600160401b03600160401b9092048216911611155b156108435760405163051c46ef60e01b815260040160405180910390fd5b6108508260400151610e23565b61085a8282610e93565b81516006805460208501516001600160401b03908116600160401b026001600160801b031990921693169290921791909117905560408201516007556108a76108a04390565b4284610f8b565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516108f891815260200190565b60405180910390a35050565b61090c611177565b6109158261121c565b61091f828261125d565b5050565b600061092d61131f565b50600080516020612d4b83398151915290565b610948610dc8565b6008546001600160a01b03161561099457600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b6109b7610dc8565b6109ad6000611368565b600980546000918291906109d6600183612830565b815481106109e6576109e6612843565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a2757604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610aed578460098281548110610a5757610a57612843565b6000918252602090912060029091020154600160801b90046001600160401b031610610ae55760098181548110610a9057610a90612843565b90600052602060002090600202016001015460098281548110610ab557610ab5612843565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a3b565b5050915091565b610afc610dc8565b610e108163ffffffff161080610b1b57506301e133808163ffffffff16115b80610b39575060085463ffffffff600160a01b909104811690821611155b15610b57576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610bc25750825b90506000826001600160401b03166001148015610bde5750303b155b905081158015610bec575080155b15610c0a5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c3457845460ff60401b1916600160401b1785555b610c3d866113d9565b610c456113ea565b610c508989896113f2565b8315610c9657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600a5460009060ff16610cbd57610cb88383611523565b610cce565b81600b5484610ccc9190612830565b115b90505b92915050565b610cdf610dc8565b6001600160a01b038116610d0e57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d1781611368565b50565b610d2660096000611ed9565b60005b815181101561091f576009828281518110610d4657610d46612843565b602090810291909101810151825460018181018555600094855293839020825160029092020180549383015160408401516001600160401b03908116600160801b0267ffffffffffffffff60801b19928216600160401b026001600160801b031990971691909416179490941793909316178255606001519082015501610d29565b33610dfa7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109ad5760405163118cdaa760e01b8152336004820152602401610d05565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181108061091f5760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610d05565b6000610e9d611680565b9050610ea7611efa565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273__$5c5c07cf4f55be9472c2b47d897172e765$__9063ce537a7790610f2790859085908890600401612a60565b602060405180830381865af4158015610f44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f689190612c8f565b610f85576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611001575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610fcb57610fcb612843565b6000918252602090912060029091020154610ff690600160401b90046001600160401b031684612cb1565b6001600160401b0316115b1561109557600854600980549091600160c01b90046001600160401b031690811061102e5761102e612843565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b031690601861106f83612cd8565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806111fe57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111f2600080516020612d4b833981519152546001600160a01b031690565b6001600160a01b031614155b156109ad5760405163703e46dd60e11b815260040160405180910390fd5b611224610dc8565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d90602001610753565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156112b7575060408051601f3d908101601f191682019092526112b491810190612cfe565b60015b6112df57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d05565b600080516020612d4b833981519152811461131057604051632a87526960e21b815260048101829052602401610d05565b61131a8383611cb0565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109ad5760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6113e1611d06565b610d1781611d4f565b6109ad611d06565b82516001600160401b0316151580611416575060208301516001600160401b031615155b8061142357506020820151155b8061143057506040820151155b8061143d57506060820151155b8061144757508151155b806114595750610e108163ffffffff16105b8061146d57506301e133808163ffffffff16115b1561148b576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b039485166001600160801b03199384168117600160401b9690921695909502908117909355604080880151600581905587516000559187015160015586015160025560608601516003556006805490921690931790911790556007556008805463ffffffff60a01b1916600160a01b63ffffffff84160217905561131a434285610f8b565b60095460009043841180611535575080155b806115805750600854600980549091600160c01b90046001600160401b031690811061156357611563612843565b60009182526020909120600290910201546001600160401b031684105b1561159e5760405163b0b4387760e01b815260040160405180910390fd5b600080806115ad600185612830565b90505b8161164b57600854600160c01b90046001600160401b0316811061164b5786600982815481106115e2576115e2612843565b60009182526020909120600290910201546001600160401b03161161163957600191506009818154811061161857611618612843565b60009182526020909120600290910201546001600160401b0316925061164b565b8061164381612d17565b9150506115b0565b816116695760405163b0b4387760e01b815260040160405180910390fd5b856116748489612830565b11979650505050505050565b611688611f18565b620100008152600760208201527f1369aa78dc50135ad756d62c97a64a0edcd30066584168200d9d1facf82ca4f56040820151527f2cf23456d712b06f8e3aa5bf0acc3e46a3d094602a3a2b99d873bba05a4391476020604083015101527f08a35f379d2d2c490a51006697275e4db79b67b4a175c1477e262d29e25e42316060820151527f218828131bb7940ccc88c561b299755af4bf0b71ed930b129e8be0a1218139ea6020606083015101527f23a2172436c1145b36d5bc6d3b31fa1610c73a543ea443918aaa3ee175f9921b6080820151527f2502adf404d62877c310214ae9942e93c40b154d34c024bab48a3ca057e60a116020608083015101527f1bb88ada91ab7734882f7826b81275320081ac485f9cf8bfbc3ba54b6eb4dff360a0820151527f25c74a27e9a3b20114a3a91f31c20f01777e7ed913e0ef949f0285e2e7c2069b602060a083015101527f12b0ce76ac8b0dbd405ebc5dd0bae0f91aed50033c7ea36fc62aaba2b98333dc60c0820151527f185b42af49dd1cbe337a84f74b704172428e754a0bea024ab3eb2f996afb2c47602060c083015101527f21f53ad4538b45438bbf0521446070223920e3df6f9022a64cc16d7f94e85c0860e0820151527f2278ac3dedfdac7feb9725a022497175518eada52c8932fc40e6e75bea889fb8602060e083015101527f0876136f81c16298487bfb1be74d4a3487ec45645ab1d09dc2e5b865d62230df610100820151527f098c641c947ecd798dfd5e1b2fe428024cdf03061a53ff774ea8a9e3de9d3f2b602061010083015101527f15eaac2c6232d2268bf79dc47ed9666f992fb3d96ad23fb21690c21586c5472e610120820151527f0f10f1ffc54881287fda6f200bc85d8245b508d844a974098a41119867b325d0602061012083015101527f0895ceea40b085534e9739ca5442ba48b3a3592affde2b509df74521b47d8ab0610140820151527f2e12ec5800ac92fe2a8e7040bc5b435b9eb71e31380173fa7688bf81fcbba455602061014083015101527f2f5384eb5653e47576efe248e7903f463243414bfed5237dda750df3996bd918610160820151527f1c3cd6b11da8704cdc871ab4fa323d7ee57bd40ce165b49a56d5ef6489cd251a602061016083015101527f13579994957ce1554cc1e5b194fb63c9513707f627414f8442681ae736e36450610180820151527f26c9bdcd96d8e420b12974ade93ad9c312c4185213d2f6831a7c625a18890e95602061018083015101527f0cc70a1d542a9a1535ae5d9201696adc5c99c1bcebd9951dfa8afec79fa0b6446101a0820151527f10b043d9f1869181b96579d6616efc17a5df7b84c4d431d966c9094bf1e8815360206101a083015101527f198a65309d131a43b0ab1c47659d0336cfbf62b27f4727106b4fd971c73dd4036101c0820151527f23df99eac3c1947903b211b800efeb76f47d5e87b7414866543492e8c7798d1a60206101c083015101527f221cc5e47b81ce8dcfa72ef981916a8eddef12fcde59c56c62830c126ebef0de6101e0820151527f231f99340c35c9e09652a6df73c9cec5d88738cb71ff45716fdc9e9e45a4926e60206101e083015101527f2c9f1489fce0f263e03f3e97bf0a72273aafcca9325ff47786adb04a52a6d22c610200820151527f21f66e28f17e01e9fd593e16d022c4eca25bd5db96daec606d97b604cc414838602061020083015101527f2015745604a9571e226bd99043cfaf1f96267cc5de67f497563ff81100531d26610220820151527f206889ff4c58dd08ee1107191a2a5bc5dbae55c49d7d8397801799868d10f805602061022083015101527f21062ab8f8ecd8932b429a1eb8614b1e03db61bff6a5cd2d5d7ea193e90e9927610240820151527f217f9b27b934b88ffe555d682dfe6e8b6d503f86b14bbd96342bc48487a60b27602061024083015101527f1c9eda2d195cb731f903235ead6a4f7c66db49da713ecb27afee076f0eea7154610260820151527f2647c161c00b90258e1cefebb17481f8a5d91b5f9dca626e3e89a9215bcca16a602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611cb982611d57565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611cfe5761131a8282611dbc565b61091f611e32565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166109ad57604051631afcd79f60e31b815260040160405180910390fd5b610cdf611d06565b806001600160a01b03163b600003611d8d57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d05565b600080516020612d4b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611dd99190612d2e565b600060405180830381855af49150503d8060008114611e14576040519150601f19603f3d011682016040523d82523d6000602084013e611e19565b606091505b5091509150611e29858383611e51565b95945050505050565b34156109ad5760405163b398979f60e01b815260040160405180910390fd5b606082611e6657611e6182611eb0565b611ea9565b8151158015611e7d57506001600160a01b0384163b155b15611ea657604051639996b31560e01b81526001600160a01b0385166004820152602401610d05565b50805b9392505050565b805115611ec05780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b5080546000825560020290600052602060002090810190610d1791906121a5565b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611f4f604051806040016040528060008152602001600081525090565b8152602001611f71604051806040016040528060008152602001600081525090565b8152602001611f93604051806040016040528060008152602001600081525090565b8152602001611fb5604051806040016040528060008152602001600081525090565b8152602001611fd7604051806040016040528060008152602001600081525090565b8152602001611ff9604051806040016040528060008152602001600081525090565b815260200161201b604051806040016040528060008152602001600081525090565b815260200161203d604051806040016040528060008152602001600081525090565b815260200161205f604051806040016040528060008152602001600081525090565b8152602001612081604051806040016040528060008152602001600081525090565b81526020016120a3604051806040016040528060008152602001600081525090565b81526020016120c5604051806040016040528060008152602001600081525090565b81526020016120e7604051806040016040528060008152602001600081525090565b8152602001612109604051806040016040528060008152602001600081525090565b815260200161212b604051806040016040528060008152602001600081525090565b815260200161214d604051806040016040528060008152602001600081525090565b815260200161216f604051806040016040528060008152602001600081525090565b8152602001612191604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b5b808211156121cb5780546001600160c01b0319168155600060018201556002016121a6565b5090565b80356001600160a01b03811681146121e657600080fd5b919050565b6000602082840312156121fd57600080fd5b610cce826121cf565b60006020828403121561221857600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156122585761225861221f565b60405290565b604051608081016001600160401b03811182821017156122585761225861221f565b604051601f8201601f191681016001600160401b03811182821017156122a8576122a861221f565b604052919050565b80356001600160401b03811681146121e657600080fd5b6000606082840312156122d957600080fd5b604051606081018181106001600160401b03821117156122fb576122fb61221f565b60405290508061230a836122b0565b8152612318602084016122b0565b6020820152604083013560408201525092915050565b60006040828403121561234057600080fd5b604051604081018181106001600160401b03821117156123625761236261221f565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561239157600080fd5b61239b85856122c7565b925061048080605f19830112156123b157600080fd5b6123b9612235565b91506123c8866060870161232e565b82526123d78660a0870161232e565b60208301526123e98660e0870161232e565b60408301526101206123fd8782880161232e565b60608401526101606124118882890161232e565b60808501526101a061242589828a0161232e565b60a08601526101e06124398a828b0161232e565b60c087015261022061244d8b828c0161232e565b60e08801526102606124618c828d0161232e565b6101008901526102a06124768d828e0161232e565b878a01526124888d6102e08e0161232e565b6101408a015261249c8d6103208e0161232e565b868a01526124ae8d6103608e0161232e565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561254357600080fd5b61254c836121cf565b91506020808401356001600160401b038082111561256957600080fd5b818601915086601f83011261257d57600080fd5b81358181111561258f5761258f61221f565b6125a1601f8201601f19168501612280565b915080825287848285010111156125b757600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146121e657600080fd5b6000602082840312156125fb57600080fd5b610cce826125d5565b60008060008084860361012081121561261c57600080fd5b61262687876122c7565b94506080605f198201121561263a57600080fd5b5061264361225e565b60608681013582526080870135602083015260a0870135604083015260c087013590820152925061267660e086016125d5565b915061268561010086016121cf565b905092959194509250565b60005b838110156126ab578181015183820152602001612693565b50506000910152565b60208152600082518060208401526126d3816040850160208701612690565b601f01601f19169190910160400192915050565b6000606082840312156126f957600080fd5b610cce83836122c7565b6000806040838503121561271657600080fd5b50508035926020909101359150565b6000602080838503121561273857600080fd5b82356001600160401b038082111561274f57600080fd5b818501915085601f83011261276357600080fd5b8135818111156127755761277561221f565b612783848260051b01612280565b818152848101925060079190911b8301840190878211156127a357600080fd5b928401925b8184101561280f57608084890312156127c15760008081fd5b6127c961225e565b6127d2856122b0565b81526127df8686016122b0565b8682015260406127f08187016122b0565b90820152606085810135908201528352608090930192918401916127a8565b979650505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cd157610cd161281a565b634e487b7160e01b600052603260045260246000fd5b8060005b6007811015610f8557815184526020938401939091019060010161285d565b61289182825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e08401525060808101516101006128f48185018380518252602090810151910152565b60a083015191506101406129148186018480518252602090810151910152565b60c084015192506101806129348187018580518252602090810151910152565b60e085015193506101c06129548188018680518252602090810151910152565b928501519350610200926129748785018680518252602090810151910152565b61012086015194506102406129958189018780518252602090810151910152565b928601519450610280926129b58885018780518252602090810151910152565b61016087015195506102c06129d6818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a608201905084518252602085015160208301526040850151612a93604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a0850151610100612ae08185018380518252602090810151910152565b60c08701519150610140612b008186018480518252602090810151910152565b60e08801519250610180612b208187018580518252602090810151910152565b9188015192506101c091612b408684018580518252602090810151910152565b6101208901519350610200612b618188018680518252602090810151910152565b91890151935061024091612b818784018680518252602090810151910152565b6101608a01519450610280612ba28189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612c79610500830185612859565b612c876105e083018461287c565b949350505050565b600060208284031215612ca157600080fd5b81518015158114611ea957600080fd5b6001600160401b03828116828216039080821115612cd157612cd161281a565b5092915050565b60006001600160401b03808316818103612cf457612cf461281a565b6001019392505050565b600060208284031215612d1057600080fd5b5051919050565b600081612d2657612d2661281a565b506000190190565b60008251612d40818460208701612690565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a" diff --git a/contract-bindings/artifacts/LightClient_bytecode.json b/contract-bindings/artifacts/LightClient_bytecode.json index f717416065..656720cbea 100644 --- a/contract-bindings/artifacts/LightClient_bytecode.json +++ b/contract-bindings/artifacts/LightClient_bytecode.json @@ -1 +1 @@ -"0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6080516129ea62000104600039600081816110b0015281816110d9015261125801526129ea6000f3fe6080604052600436106101405760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610468578063c23b9e9e146104a6578063d24d933d146104df578063e03033011461050f578063f2fde38b1461052f578063f9e50d191461054f57600080fd5b8063826e41fc1461032c5780638584d23f146103585780638da5cb5b1461039557806396c1ca61146103d25780639baa3cc9146103f25780639fdb54a71461041257600080fd5b8063313df7b111610108578063313df7b114610251578063426d3194146102895780634f1ef286146102cc57806352d1902d146102df57806369cc6a0414610302578063715018a61461031757600080fd5b8063013fa5fc1461014557806302b592f3146101675780630d8e6e2c146101c55780632063d4f7146101f25780632f79889d14610212575b600080fd5b34801561015157600080fd5b50610165610160366004611f70565b610564565b005b34801561017357600080fd5b50610187610182366004611f8b565b610617565b6040516101bc94939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101d157600080fd5b506040805160018152600060208201819052918101919091526060016101bc565b3480156101fe57600080fd5b5061016561020d3660046120df565b610662565b34801561021e57600080fd5b5060085461023990600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101bc565b34801561025d57600080fd5b50600854610271906001600160a01b031681565b6040516001600160a01b0390911681526020016101bc565b34801561029557600080fd5b506000546001546002546003546102ac9392919084565b6040805194855260208501939093529183015260608201526080016101bc565b6101656102da366004612293565b6107b7565b3480156102eb57600080fd5b506102f46107d6565b6040519081526020016101bc565b34801561030e57600080fd5b506101656107f3565b34801561032357600080fd5b50610165610862565b34801561033857600080fd5b506008546001600160a01b031615155b60405190151581526020016101bc565b34801561036457600080fd5b50610378610373366004611f8b565b610874565b604080519283526001600160401b039091166020830152016101bc565b3480156103a157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610271565b3480156103de57600080fd5b506101656103ed36600461234c565b6109a7565b3480156103fe57600080fd5b5061016561040d366004612367565b610a30565b34801561041e57600080fd5b50600654600754610442916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101bc565b34801561047457600080fd5b50610499604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101bc9190612438565b3480156104b257600080fd5b506008546104ca90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101bc565b3480156104eb57600080fd5b50600454600554610442916001600160401b0380821692600160401b909204169083565b34801561051b57600080fd5b5061034861052a36600461246b565b610b54565b34801561053b57600080fd5b5061016561054a366004611f70565b610cb3565b34801561055b57600080fd5b506009546102f4565b61056c610cf6565b6001600160a01b0381166105935760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105c25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061062757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b03161515801561068757506008546001600160a01b03163314155b156106a5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106de575060065460208301516001600160401b03600160401b9092048216911611155b156106fc5760405163051c46ef60e01b815260040160405180910390fd5b6107098260400151610d51565b6107138282610dc1565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561075a434284610eb9565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107ab91815260200190565b60405180910390a35050565b6107bf6110a5565b6107c88261114a565b6107d2828261118b565b5050565b60006107e061124d565b506000805160206129be83398151915290565b6107fb610cf6565b6008546001600160a01b03161561084757600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b61086a610cf6565b6108606000611296565b600980546000918291906108896001836124a3565b81548110610899576108996124b6565b6000918252602090912060029091020154600160801b90046001600160401b03168411156108da57604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b818110156109a057846009828154811061090a5761090a6124b6565b6000918252602090912060029091020154600160801b90046001600160401b0316106109985760098181548110610943576109436124b6565b90600052602060002090600202016001015460098281548110610968576109686124b6565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b6001016108ee565b5050915091565b6109af610cf6565b610e108163ffffffff1610806109ce57506301e133808163ffffffff16115b806109ec575060085463ffffffff600160a01b909104811690821611155b15610a0a576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610a755750825b90506000826001600160401b03166001148015610a915750303b155b905081158015610a9f575080155b15610abd5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610ae757845460ff60401b1916600160401b1785555b610af086611307565b610af8611318565b610b03898989611320565b8315610b4957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b60095460009043841180610b66575080155b80610bb15750600854600980549091600160c01b90046001600160401b0316908110610b9457610b946124b6565b60009182526020909120600290910201546001600160401b031684105b15610bcf5760405163b0b4387760e01b815260040160405180910390fd5b60008080610bde6001856124a3565b90505b81610c7c57600854600160c01b90046001600160401b03168110610c7c578660098281548110610c1357610c136124b6565b60009182526020909120600290910201546001600160401b031611610c6a576001915060098181548110610c4957610c496124b6565b60009182526020909120600290910201546001600160401b03169250610c7c565b80610c74816124cc565b915050610be1565b81610c9a5760405163b0b4387760e01b815260040160405180910390fd5b85610ca584896124a3565b119450505050505b92915050565b610cbb610cf6565b6001600160a01b038116610cea57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610cf381611296565b50565b33610d287f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146108605760405163118cdaa760e01b8152336004820152602401610ce1565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806107d25760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610ce1565b6000610dcb611451565b9050610dd5611ca9565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273__$5c5c07cf4f55be9472c2b47d897172e765$__9063ce537a7790610e55908590859088906004016126ea565b602060405180830381865af4158015610e72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e969190612919565b610eb3576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590610f2f575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610ef957610ef96124b6565b6000918252602090912060029091020154610f2490600160401b90046001600160401b03168461293b565b6001600160401b0316115b15610fc357600854600980549091600160c01b90046001600160401b0316908110610f5c57610f5c6124b6565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b0316906018610f9d83612962565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061112c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111206000805160206129be833981519152546001600160a01b031690565b6001600160a01b031614155b156108605760405163703e46dd60e11b815260040160405180910390fd5b611152610cf6565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161060c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156111e5575060408051601f3d908101601f191682019092526111e291810190612988565b60015b61120d57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610ce1565b6000805160206129be833981519152811461123e57604051632a87526960e21b815260048101829052602401610ce1565b6112488383611a80565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108605760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61130f611ad6565b610cf381611b1f565b610860611ad6565b82516001600160401b0316151580611344575060208301516001600160401b031615155b8061135157506020820151155b8061135e57506040820151155b8061136b57506060820151155b8061137557508151155b806113875750610e108163ffffffff16105b8061139b57506301e133808163ffffffff16115b156113b9576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b031993841691909516908117851790935560408088015160058190558751600055918701516001558601516002556060860151600355600680549092169092179092179091556007556008805463ffffffff8316600160a01b0263ffffffff60a01b19909116179055611248434285610eb9565b611459611cc7565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611a8982611b27565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611ace576112488282611b8c565b6107d2611c02565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661086057604051631afcd79f60e31b815260040160405180910390fd5b610cbb611ad6565b806001600160a01b03163b600003611b5d57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610ce1565b6000805160206129be83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611ba991906129a1565b600060405180830381855af49150503d8060008114611be4576040519150601f19603f3d011682016040523d82523d6000602084013e611be9565b606091505b5091509150611bf9858383611c21565b95945050505050565b34156108605760405163b398979f60e01b815260040160405180910390fd5b606082611c3657611c3182611c80565b611c79565b8151158015611c4d57506001600160a01b0384163b155b15611c7657604051639996b31560e01b81526001600160a01b0385166004820152602401610ce1565b50805b9392505050565b805115611c905780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611cfe604051806040016040528060008152602001600081525090565b8152602001611d20604051806040016040528060008152602001600081525090565b8152602001611d42604051806040016040528060008152602001600081525090565b8152602001611d64604051806040016040528060008152602001600081525090565b8152602001611d86604051806040016040528060008152602001600081525090565b8152602001611da8604051806040016040528060008152602001600081525090565b8152602001611dca604051806040016040528060008152602001600081525090565b8152602001611dec604051806040016040528060008152602001600081525090565b8152602001611e0e604051806040016040528060008152602001600081525090565b8152602001611e30604051806040016040528060008152602001600081525090565b8152602001611e52604051806040016040528060008152602001600081525090565b8152602001611e74604051806040016040528060008152602001600081525090565b8152602001611e96604051806040016040528060008152602001600081525090565b8152602001611eb8604051806040016040528060008152602001600081525090565b8152602001611eda604051806040016040528060008152602001600081525090565b8152602001611efc604051806040016040528060008152602001600081525090565b8152602001611f1e604051806040016040528060008152602001600081525090565b8152602001611f40604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b0381168114611f6b57600080fd5b919050565b600060208284031215611f8257600080fd5b611c7982611f54565b600060208284031215611f9d57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b0381118282101715611fdd57611fdd611fa4565b60405290565b604051601f8201601f191681016001600160401b038111828210171561200b5761200b611fa4565b604052919050565b80356001600160401b0381168114611f6b57600080fd5b60006060828403121561203c57600080fd5b604051606081018181106001600160401b038211171561205e5761205e611fa4565b60405290508061206d83612013565b815261207b60208401612013565b6020820152604083013560408201525092915050565b6000604082840312156120a357600080fd5b604051604081018181106001600160401b03821117156120c5576120c5611fa4565b604052823581526020928301359281019290925250919050565b6000808284036104e08112156120f457600080fd5b6120fe858561202a565b925061048080605f198301121561211457600080fd5b61211c611fba565b915061212b8660608701612091565b825261213a8660a08701612091565b602083015261214c8660e08701612091565b604083015261012061216087828801612091565b606084015261016061217488828901612091565b60808501526101a061218889828a01612091565b60a08601526101e061219c8a828b01612091565b60c08701526102206121b08b828c01612091565b60e08801526102606121c48c828d01612091565b6101008901526102a06121d98d828e01612091565b878a01526121eb8d6102e08e01612091565b6101408a01526121ff8d6103208e01612091565b868a01526122118d6103608e01612091565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b600080604083850312156122a657600080fd5b6122af83611f54565b91506020808401356001600160401b03808211156122cc57600080fd5b818601915086601f8301126122e057600080fd5b8135818111156122f2576122f2611fa4565b612304601f8201601f19168501611fe3565b9150808252878482850101111561231a57600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff81168114611f6b57600080fd5b60006020828403121561235e57600080fd5b611c7982612338565b60008060008084860361012081121561237f57600080fd5b612389878761202a565b94506080605f198201121561239d57600080fd5b50604051608081018181106001600160401b03821117156123c0576123c0611fa4565b8060405250606086013581526080860135602082015260a0860135604082015260c08601356060820152809350506123fa60e08601612338565b91506124096101008601611f54565b905092959194509250565b60005b8381101561242f578181015183820152602001612417565b50506000910152565b6020815260008251806020840152612457816040850160208701612414565b601f01601f19169190910160400192915050565b6000806040838503121561247e57600080fd5b50508035926020909101359150565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cad57610cad61248d565b634e487b7160e01b600052603260045260246000fd5b6000816124db576124db61248d565b506000190190565b8060005b6007811015610eb35781518452602093840193909101906001016124e7565b61251b82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061257e8185018380518252602090810151910152565b60a0830151915061014061259e8186018480518252602090810151910152565b60c084015192506101806125be8187018580518252602090810151910152565b60e085015193506101c06125de8188018680518252602090810151910152565b928501519350610200926125fe8785018680518252602090810151910152565b610120860151945061024061261f8189018780518252602090810151910152565b9286015194506102809261263f8885018780518252602090810151910152565b61016087015195506102c0612660818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a60820190508451825260208501516020830152604085015161271d604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061276a8185018380518252602090810151910152565b60c0870151915061014061278a8186018480518252602090810151910152565b60e088015192506101806127aa8187018580518252602090810151910152565b9188015192506101c0916127ca8684018580518252602090810151910152565b61012089015193506102006127eb8188018680518252602090810151910152565b9189015193506102409161280b8784018680518252602090810151910152565b6101608a0151945061028061282c8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e08301526129036105008301856124e3565b6129116105e0830184612506565b949350505050565b60006020828403121561292b57600080fd5b81518015158114611c7957600080fd5b6001600160401b0382811682821603908082111561295b5761295b61248d565b5092915050565b60006001600160401b0380831681810361297e5761297e61248d565b6001019392505050565b60006020828403121561299a57600080fd5b5051919050565b600082516129b3818460208701612414565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a" +"0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612a0a62000104600039600081816110d0015281816110f901526112780152612a0a6000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610482578063c23b9e9e146104c0578063d24d933d146104f9578063e030330114610529578063f2fde38b14610549578063f9e50d191461056957600080fd5b8063826e41fc146103465780638584d23f146103725780638da5cb5b146103af57806396c1ca61146103ec5780639baa3cc91461040c5780639fdb54a71461042c57600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b15780634f1ef286146102f457806352d1902d1461030757806369cc6a041461031c578063715018a61461033157600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b366004611f90565b61057e565b005b34801561017e57600080fd5b5061019261018d366004611fab565b610631565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b506101706102183660046120ff565b61067c565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b50435b6040519081526020016101c7565b3480156102bd57600080fd5b506000546001546002546003546102d49392919084565b6040805194855260208501939093529183015260608201526080016101c7565b6101706103023660046122b3565b6107d7565b34801561031357600080fd5b506102a36107f6565b34801561032857600080fd5b50610170610813565b34801561033d57600080fd5b50610170610882565b34801561035257600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561037e57600080fd5b5061039261038d366004611fab565b610894565b604080519283526001600160401b039091166020830152016101c7565b3480156103bb57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103f857600080fd5b5061017061040736600461236c565b6109c7565b34801561041857600080fd5b50610170610427366004612387565b610a50565b34801561043857600080fd5b5060065460075461045c916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561048e57600080fd5b506104b3604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c79190612458565b3480156104cc57600080fd5b506008546104e490600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050557600080fd5b5060045460055461045c916001600160401b0380821692600160401b909204169083565b34801561053557600080fd5b5061036261054436600461248b565b610b74565b34801561055557600080fd5b50610170610564366004611f90565b610cd3565b34801561057557600080fd5b506009546102a3565b610586610d16565b6001600160a01b0381166105ad5760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105dc5760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064157600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a157506008546001600160a01b03163314155b156106bf576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106f8575060065460208301516001600160401b03600160401b9092048216911611155b156107165760405163051c46ef60e01b815260040160405180910390fd5b6107238260400151610d71565b61072d8282610de1565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561077a6107734390565b4284610ed9565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107cb91815260200190565b60405180910390a35050565b6107df6110c5565b6107e88261116a565b6107f282826111ab565b5050565b600061080061126d565b506000805160206129de83398151915290565b61081b610d16565b6008546001600160a01b03161561086757600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b61088a610d16565b61088060006112b6565b600980546000918291906108a96001836124c3565b815481106108b9576108b96124d6565b6000918252602090912060029091020154600160801b90046001600160401b03168411156108fa57604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b818110156109c057846009828154811061092a5761092a6124d6565b6000918252602090912060029091020154600160801b90046001600160401b0316106109b85760098181548110610963576109636124d6565b90600052602060002090600202016001015460098281548110610988576109886124d6565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b60010161090e565b5050915091565b6109cf610d16565b610e108163ffffffff1610806109ee57506301e133808163ffffffff16115b80610a0c575060085463ffffffff600160a01b909104811690821611155b15610a2a576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610a955750825b90506000826001600160401b03166001148015610ab15750303b155b905081158015610abf575080155b15610add5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b0757845460ff60401b1916600160401b1785555b610b1086611327565b610b18611338565b610b23898989611340565b8315610b6957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b60095460009043841180610b86575080155b80610bd15750600854600980549091600160c01b90046001600160401b0316908110610bb457610bb46124d6565b60009182526020909120600290910201546001600160401b031684105b15610bef5760405163b0b4387760e01b815260040160405180910390fd5b60008080610bfe6001856124c3565b90505b81610c9c57600854600160c01b90046001600160401b03168110610c9c578660098281548110610c3357610c336124d6565b60009182526020909120600290910201546001600160401b031611610c8a576001915060098181548110610c6957610c696124d6565b60009182526020909120600290910201546001600160401b03169250610c9c565b80610c94816124ec565b915050610c01565b81610cba5760405163b0b4387760e01b815260040160405180910390fd5b85610cc584896124c3565b119450505050505b92915050565b610cdb610d16565b6001600160a01b038116610d0a57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d13816112b6565b50565b33610d487f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146108805760405163118cdaa760e01b8152336004820152602401610d01565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806107f25760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610d01565b6000610deb611471565b9050610df5611cc9565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273__$5c5c07cf4f55be9472c2b47d897172e765$__9063ce537a7790610e759085908590889060040161270a565b602060405180830381865af4158015610e92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb69190612939565b610ed3576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590610f4f575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610f1957610f196124d6565b6000918252602090912060029091020154610f4490600160401b90046001600160401b03168461295b565b6001600160401b0316115b15610fe357600854600980549091600160c01b90046001600160401b0316908110610f7c57610f7c6124d6565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b0316906018610fbd83612982565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061114c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111406000805160206129de833981519152546001600160a01b031690565b6001600160a01b031614155b156108805760405163703e46dd60e11b815260040160405180910390fd5b611172610d16565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d90602001610626565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611205575060408051601f3d908101601f19168201909252611202918101906129a8565b60015b61122d57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d01565b6000805160206129de833981519152811461125e57604051632a87526960e21b815260048101829052602401610d01565b6112688383611aa0565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108805760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61132f611af6565b610d1381611b3f565b610880611af6565b82516001600160401b0316151580611364575060208301516001600160401b031615155b8061137157506020820151155b8061137e57506040820151155b8061138b57506060820151155b8061139557508151155b806113a75750610e108163ffffffff16105b806113bb57506301e133808163ffffffff16115b156113d9576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b039485166001600160801b03199384168117600160401b9690921695909502908117909355604080880151600581905587516000559187015160015586015160025560608601516003556006805490921690931790911790556007556008805463ffffffff60a01b1916600160a01b63ffffffff841602179055611268434285610ed9565b611479611ce7565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611aa982611b47565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611aee576112688282611bac565b6107f2611c22565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661088057604051631afcd79f60e31b815260040160405180910390fd5b610cdb611af6565b806001600160a01b03163b600003611b7d57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d01565b6000805160206129de83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611bc991906129c1565b600060405180830381855af49150503d8060008114611c04576040519150601f19603f3d011682016040523d82523d6000602084013e611c09565b606091505b5091509150611c19858383611c41565b95945050505050565b34156108805760405163b398979f60e01b815260040160405180910390fd5b606082611c5657611c5182611ca0565b611c99565b8151158015611c6d57506001600160a01b0384163b155b15611c9657604051639996b31560e01b81526001600160a01b0385166004820152602401610d01565b50805b9392505050565b805115611cb05780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611d1e604051806040016040528060008152602001600081525090565b8152602001611d40604051806040016040528060008152602001600081525090565b8152602001611d62604051806040016040528060008152602001600081525090565b8152602001611d84604051806040016040528060008152602001600081525090565b8152602001611da6604051806040016040528060008152602001600081525090565b8152602001611dc8604051806040016040528060008152602001600081525090565b8152602001611dea604051806040016040528060008152602001600081525090565b8152602001611e0c604051806040016040528060008152602001600081525090565b8152602001611e2e604051806040016040528060008152602001600081525090565b8152602001611e50604051806040016040528060008152602001600081525090565b8152602001611e72604051806040016040528060008152602001600081525090565b8152602001611e94604051806040016040528060008152602001600081525090565b8152602001611eb6604051806040016040528060008152602001600081525090565b8152602001611ed8604051806040016040528060008152602001600081525090565b8152602001611efa604051806040016040528060008152602001600081525090565b8152602001611f1c604051806040016040528060008152602001600081525090565b8152602001611f3e604051806040016040528060008152602001600081525090565b8152602001611f60604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b0381168114611f8b57600080fd5b919050565b600060208284031215611fa257600080fd5b611c9982611f74565b600060208284031215611fbd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b0381118282101715611ffd57611ffd611fc4565b60405290565b604051601f8201601f191681016001600160401b038111828210171561202b5761202b611fc4565b604052919050565b80356001600160401b0381168114611f8b57600080fd5b60006060828403121561205c57600080fd5b604051606081018181106001600160401b038211171561207e5761207e611fc4565b60405290508061208d83612033565b815261209b60208401612033565b6020820152604083013560408201525092915050565b6000604082840312156120c357600080fd5b604051604081018181106001600160401b03821117156120e5576120e5611fc4565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561211457600080fd5b61211e858561204a565b925061048080605f198301121561213457600080fd5b61213c611fda565b915061214b86606087016120b1565b825261215a8660a087016120b1565b602083015261216c8660e087016120b1565b6040830152610120612180878288016120b1565b6060840152610160612194888289016120b1565b60808501526101a06121a889828a016120b1565b60a08601526101e06121bc8a828b016120b1565b60c08701526102206121d08b828c016120b1565b60e08801526102606121e48c828d016120b1565b6101008901526102a06121f98d828e016120b1565b878a015261220b8d6102e08e016120b1565b6101408a015261221f8d6103208e016120b1565b868a01526122318d6103608e016120b1565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b600080604083850312156122c657600080fd5b6122cf83611f74565b91506020808401356001600160401b03808211156122ec57600080fd5b818601915086601f83011261230057600080fd5b81358181111561231257612312611fc4565b612324601f8201601f19168501612003565b9150808252878482850101111561233a57600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff81168114611f8b57600080fd5b60006020828403121561237e57600080fd5b611c9982612358565b60008060008084860361012081121561239f57600080fd5b6123a9878761204a565b94506080605f19820112156123bd57600080fd5b50604051608081018181106001600160401b03821117156123e0576123e0611fc4565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061241a60e08601612358565b91506124296101008601611f74565b905092959194509250565b60005b8381101561244f578181015183820152602001612437565b50506000910152565b6020815260008251806020840152612477816040850160208701612434565b601f01601f19169190910160400192915050565b6000806040838503121561249e57600080fd5b50508035926020909101359150565b634e487b7160e01b600052601160045260246000fd5b81810381811115610ccd57610ccd6124ad565b634e487b7160e01b600052603260045260246000fd5b6000816124fb576124fb6124ad565b506000190190565b8060005b6007811015610ed3578151845260209384019390910190600101612507565b61253b82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061259e8185018380518252602090810151910152565b60a083015191506101406125be8186018480518252602090810151910152565b60c084015192506101806125de8187018580518252602090810151910152565b60e085015193506101c06125fe8188018680518252602090810151910152565b9285015193506102009261261e8785018680518252602090810151910152565b610120860151945061024061263f8189018780518252602090810151910152565b9286015194506102809261265f8885018780518252602090810151910152565b61016087015195506102c0612680818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a60820190508451825260208501516020830152604085015161273d604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061278a8185018380518252602090810151910152565b60c087015191506101406127aa8186018480518252602090810151910152565b60e088015192506101806127ca8187018580518252602090810151910152565b9188015192506101c0916127ea8684018580518252602090810151910152565b610120890151935061020061280b8188018680518252602090810151910152565b9189015193506102409161282b8784018680518252602090810151910152565b6101608a0151945061028061284c8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612923610500830185612503565b6129316105e0830184612526565b949350505050565b60006020828403121561294b57600080fd5b81518015158114611c9957600080fd5b6001600160401b0382811682821603908082111561297b5761297b6124ad565b5092915050565b60006001600160401b0380831681810361299e5761299e6124ad565b6001019392505050565b6000602082840312156129ba57600080fd5b5051919050565b600082516129d3818460208701612434565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a" diff --git a/contract-bindings/src/light_client.rs b/contract-bindings/src/light_client.rs index e8783660e6..32daa6fc12 100644 --- a/contract-bindings/src/light_client.rs +++ b/contract-bindings/src/light_client.rs @@ -34,6 +34,22 @@ pub mod light_client { state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, },], ), + ( + ::std::borrow::ToOwned::to_owned("currentBlockNumber"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("currentBlockNumber"), + inputs: ::std::vec![], + outputs: ::std::vec![::ethers::core::abi::ethabi::Param { + name: ::std::string::String::new(), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint256"), + ), + },], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, + },], + ), ( ::std::borrow::ToOwned::to_owned("disablePermissionedProverMode"), ::std::vec![::ethers::core::abi::ethabi::Function { @@ -959,6 +975,14 @@ pub mod light_client { .method_hash([173, 60, 177, 204], ()) .expect("method not found (this should never happen)") } + ///Calls the contract's `currentBlockNumber` (0x378ec23b) function + pub fn current_block_number( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([55, 142, 194, 59], ()) + .expect("method not found (this should never happen)") + } ///Calls the contract's `disablePermissionedProverMode` (0x69cc6a04) function pub fn disable_permissioned_prover_mode( &self, @@ -2214,6 +2238,21 @@ pub mod light_client { abi = "UPGRADE_INTERFACE_VERSION()" )] pub struct UpgradeInterfaceVersionCall; + ///Container type for all input parameters for the `currentBlockNumber` function with signature `currentBlockNumber()` and selector `0x378ec23b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethcall(name = "currentBlockNumber", abi = "currentBlockNumber()")] + pub struct CurrentBlockNumberCall; ///Container type for all input parameters for the `disablePermissionedProverMode` function with signature `disablePermissionedProverMode()` and selector `0x69cc6a04` #[derive( Clone, @@ -2589,6 +2628,7 @@ pub mod light_client { #[derive(Clone, ::ethers::contract::EthAbiType, serde::Serialize, serde::Deserialize)] pub enum LightClientCalls { UpgradeInterfaceVersion(UpgradeInterfaceVersionCall), + CurrentBlockNumber(CurrentBlockNumberCall), DisablePermissionedProverMode(DisablePermissionedProverModeCall), FinalizedState(FinalizedStateCall), GenesisStakeTableState(GenesisStakeTableStateCall), @@ -2622,6 +2662,11 @@ pub mod light_client { { return Ok(Self::UpgradeInterfaceVersion(decoded)); } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::CurrentBlockNumber(decoded)); + } if let Ok(decoded) = ::decode(data) { @@ -2733,6 +2778,9 @@ pub mod light_client { Self::UpgradeInterfaceVersion(element) => { ::ethers::core::abi::AbiEncode::encode(element) } + Self::CurrentBlockNumber(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } Self::DisablePermissionedProverMode(element) => { ::ethers::core::abi::AbiEncode::encode(element) } @@ -2786,6 +2834,7 @@ pub mod light_client { fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { match self { Self::UpgradeInterfaceVersion(element) => ::core::fmt::Display::fmt(element, f), + Self::CurrentBlockNumber(element) => ::core::fmt::Display::fmt(element, f), Self::DisablePermissionedProverMode(element) => { ::core::fmt::Display::fmt(element, f) } @@ -2820,6 +2869,11 @@ pub mod light_client { Self::UpgradeInterfaceVersion(value) } } + impl ::core::convert::From for LightClientCalls { + fn from(value: CurrentBlockNumberCall) -> Self { + Self::CurrentBlockNumber(value) + } + } impl ::core::convert::From for LightClientCalls { fn from(value: DisablePermissionedProverModeCall) -> Self { Self::DisablePermissionedProverMode(value) @@ -2944,6 +2998,20 @@ pub mod light_client { Hash, )] pub struct UpgradeInterfaceVersionReturn(pub ::std::string::String); + ///Container type for all return fields from the `currentBlockNumber` function with signature `currentBlockNumber()` and selector `0x378ec23b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + pub struct CurrentBlockNumberReturn(pub ::ethers::core::types::U256); ///Container type for all return fields from the `finalizedState` function with signature `finalizedState()` and selector `0x9fdb54a7` #[derive( Clone, diff --git a/contract-bindings/src/light_client_mock.rs b/contract-bindings/src/light_client_mock.rs index 3542508696..951f036d38 100644 --- a/contract-bindings/src/light_client_mock.rs +++ b/contract-bindings/src/light_client_mock.rs @@ -65,6 +65,22 @@ pub mod light_client_mock { state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, },], ), + ( + ::std::borrow::ToOwned::to_owned("currentBlockNumber"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("currentBlockNumber"), + inputs: ::std::vec![], + outputs: ::std::vec![::ethers::core::abi::ethabi::Param { + name: ::std::string::String::new(), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint256"), + ), + },], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, + },], + ), ( ::std::borrow::ToOwned::to_owned("disablePermissionedProverMode"), ::std::vec![::ethers::core::abi::ethabi::Function { @@ -1065,6 +1081,14 @@ pub mod light_client_mock { .method_hash([173, 60, 177, 204], ()) .expect("method not found (this should never happen)") } + ///Calls the contract's `currentBlockNumber` (0x378ec23b) function + pub fn current_block_number( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([55, 142, 194, 59], ()) + .expect("method not found (this should never happen)") + } ///Calls the contract's `disablePermissionedProverMode` (0x69cc6a04) function pub fn disable_permissioned_prover_mode( &self, @@ -2357,6 +2381,21 @@ pub mod light_client_mock { abi = "UPGRADE_INTERFACE_VERSION()" )] pub struct UpgradeInterfaceVersionCall; + ///Container type for all input parameters for the `currentBlockNumber` function with signature `currentBlockNumber()` and selector `0x378ec23b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethcall(name = "currentBlockNumber", abi = "currentBlockNumber()")] + pub struct CurrentBlockNumberCall; ///Container type for all input parameters for the `disablePermissionedProverMode` function with signature `disablePermissionedProverMode()` and selector `0x69cc6a04` #[derive( Clone, @@ -2804,6 +2843,7 @@ pub mod light_client_mock { #[derive(Clone, ::ethers::contract::EthAbiType, serde::Serialize, serde::Deserialize)] pub enum LightClientMockCalls { UpgradeInterfaceVersion(UpgradeInterfaceVersionCall), + CurrentBlockNumber(CurrentBlockNumberCall), DisablePermissionedProverMode(DisablePermissionedProverModeCall), FinalizedState(FinalizedStateCall), GenesisStakeTableState(GenesisStakeTableStateCall), @@ -2841,6 +2881,11 @@ pub mod light_client_mock { { return Ok(Self::UpgradeInterfaceVersion(decoded)); } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::CurrentBlockNumber(decoded)); + } if let Ok(decoded) = ::decode(data) { @@ -2971,6 +3016,9 @@ pub mod light_client_mock { Self::UpgradeInterfaceVersion(element) => { ::ethers::core::abi::AbiEncode::encode(element) } + Self::CurrentBlockNumber(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } Self::DisablePermissionedProverMode(element) => { ::ethers::core::abi::AbiEncode::encode(element) } @@ -3030,6 +3078,7 @@ pub mod light_client_mock { fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { match self { Self::UpgradeInterfaceVersion(element) => ::core::fmt::Display::fmt(element, f), + Self::CurrentBlockNumber(element) => ::core::fmt::Display::fmt(element, f), Self::DisablePermissionedProverMode(element) => { ::core::fmt::Display::fmt(element, f) } @@ -3068,6 +3117,11 @@ pub mod light_client_mock { Self::UpgradeInterfaceVersion(value) } } + impl ::core::convert::From for LightClientMockCalls { + fn from(value: CurrentBlockNumberCall) -> Self { + Self::CurrentBlockNumber(value) + } + } impl ::core::convert::From for LightClientMockCalls { fn from(value: DisablePermissionedProverModeCall) -> Self { Self::DisablePermissionedProverMode(value) @@ -3212,6 +3266,20 @@ pub mod light_client_mock { Hash, )] pub struct UpgradeInterfaceVersionReturn(pub ::std::string::String); + ///Container type for all return fields from the `currentBlockNumber` function with signature `currentBlockNumber()` and selector `0x378ec23b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + pub struct CurrentBlockNumberReturn(pub ::ethers::core::types::U256); ///Container type for all return fields from the `finalizedState` function with signature `finalizedState()` and selector `0x9fdb54a7` #[derive( Clone, diff --git a/contracts/src/LightClient.sol b/contracts/src/LightClient.sol index e893f82994..944ed5f9fb 100644 --- a/contracts/src/LightClient.sol +++ b/contracts/src/LightClient.sol @@ -2,9 +2,11 @@ pragma solidity ^0.8.0; -import { OwnableUpgradeable } from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; +import { OwnableUpgradeable } from + "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; import { Initializable } from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; -import { UUPSUpgradeable } from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; +import { UUPSUpgradeable } from + "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; import { BN254 } from "bn254/BN254.sol"; import { IPlonkVerifier } from "./interfaces/IPlonkVerifier.sol"; @@ -26,416 +28,448 @@ import { LightClientStateUpdateVK as VkLib } from "./libraries/LightClientStateU /// @dev You can use this contract to keep track of its finalized states in safe, /// authenticated ways. contract LightClient is Initializable, OwnableUpgradeable, UUPSUpgradeable { - // === Events === - // - /// @notice upgrade event when the proxy updates the implementation it's pointing to - event Upgrade(address implementation); - - /// @notice when a permissioned prover is set, this event is emitted. - event PermissionedProverRequired(address permissionedProver); - - /// @notice when the permissioned prover is unset, this event is emitted. - event PermissionedProverNotRequired(); - - // === System Parameters === - // - // === Storage === - // - /// @notice genesis stake commitment - StakeTableState public genesisStakeTableState; - - /// @notice genesis block commitment - LightClientState public genesisState; - - /// @notice Finalized HotShot's light client state - LightClientState public finalizedState; - - /// @notice the address of the prover that can call the newFinalizedState function when the - /// contract is in permissioned prover mode. This address is address(0) when the contract is - /// not in permissioned prover mode - address public permissionedProver; - - /// @notice Max number of seconds worth of state commitments to record based on this block - /// timestamp - uint32 public stateHistoryRetentionPeriod; - - /// @notice index of first block in block state series - ///@dev use this instead of index 0 since old states would be set to zero to keep storage costs - /// constant to stateHistoryRetentionPeriod - uint64 public stateHistoryFirstIndex; - - /// @notice an array to store the L1 block heights, HotShot Block Heights and their respective - /// state history - /// commitments - StateHistoryCommitment[] public stateHistoryCommitments; - - // === Data Structure === - // - /// @notice The finalized HotShot state (as the digest of the entire HotShot state) - /// @param viewNum The latest view number of the finalized HotShot chain - /// @param blockHeight The block height of the latest finalized block - /// @param blockCommRoot The merkle root of historical block commitments (BN254::ScalarField) - struct LightClientState { - uint64 viewNum; - uint64 blockHeight; - BN254.ScalarField blockCommRoot; - } - - /// @notice The finalized HotShot Stake state (as the digest of the entire HotShot state) - /// @param threshold The (stake-weighted) quorum threshold for a QC to be considered as valid - /// @param blsKeyComm The commitment to the BlsVerKey column of the stake table - /// @param schnorrKeyComm The commitment to the SchnorrVerKey column of the table - /// @param amountComm The commitment to the stake amount column of the stake table - struct StakeTableState { - uint256 threshold; - BN254.ScalarField blsKeyComm; - BN254.ScalarField schnorrKeyComm; - BN254.ScalarField amountComm; - } - - /// @notice Simplified HotShot commitment struct - /// @param l1BlockHeight the block height of l1 when this state update was stored - /// @param l1BlockTimestamp the block timestamp of l1 when this state update was stored - /// @param hotShotBlockHeight The block height of the latest finalized HotShot block - /// @param hotShotBlockCommRoot The merkle root of historical block commitments - /// (BN254::ScalarField) - struct StateHistoryCommitment { - uint64 l1BlockHeight; - uint64 l1BlockTimestamp; - uint64 hotShotBlockHeight; - BN254.ScalarField hotShotBlockCommRoot; - } - - /// @notice Event that a new finalized state has been successfully verified and updated - event NewState(uint64 indexed viewNum, uint64 indexed blockHeight, BN254.ScalarField blockCommRoot); - - /// @notice The state is outdated and older than currently known `finalizedState` - error OutdatedState(); - /// @notice Invalid user inputs: wrong format or non-sensible arguments - error InvalidArgs(); - /// @notice Wrong plonk proof or public inputs. - error InvalidProof(); - /// @notice Wrong stake table used, should match `finalizedState` - error WrongStakeTableUsed(); - /// @notice Invalid address - error InvalidAddress(); - /// @notice Only a permissioned prover can perform this action - error ProverNotPermissioned(); - /// @notice If the same mode or prover is sent to the function, then no change is required - error NoChangeRequired(); - /// @notice Invalid L1 Block for checking Light Client Updates, premature or in the future - error InsufficientSnapshotHistory(); - /// @notice Invalid HotShot Block for checking HotShot commitments, premature or in the future - error InvalidHotShotBlockForCommitmentCheck(); - /// @notice Invalid Max Block States - error InvalidMaxStateHistory(); - - /// @notice Constructor disables initializers to prevent the implementation contract from being - /// initialized - /// @dev This is standard practice for OpenZeppelin upgradeable contracts. Storage is on the - /// proxy contract - /// since it calls this cnotract via delegatecall - /// @custom:oz-upgrades-unsafe-allow constructor - constructor() { - _disableInitializers(); - } - - /// @notice This contract is called by the proxy when you deploy this contract - /// @param _genesis The initial state of the light client - /// @param _stateHistoryRetentionPeriod The maximum retention period (in seconds) for the state - /// history. the min retention period allowed is 1 hour and max 365 days - /// @param owner The address of the contract owner - function initialize( - LightClientState memory _genesis, - StakeTableState memory _genesisStakeTableState, - uint32 _stateHistoryRetentionPeriod, - address owner - ) public initializer { - __Ownable_init(owner); //sets owner of the contract - __UUPSUpgradeable_init(); - _initializeState(_genesis, _genesisStakeTableState, _stateHistoryRetentionPeriod); - } - - /// @notice returns the current block number - function currentBlockNumber() public view virtual returns (uint256) { - return block.number; - } - - /// @notice Use this to get the implementation contract version - /// @return majorVersion The major version of the contract - /// @return minorVersion The minor version of the contract - /// @return patchVersion The patch version of the contract - function getVersion() public pure virtual returns (uint8 majorVersion, uint8 minorVersion, uint8 patchVersion) { - return (1, 0, 0); - } - - /// @notice only the owner can authorize an upgrade - function _authorizeUpgrade(address newImplementation) internal virtual override onlyOwner { - emit Upgrade(newImplementation); - } - - /// @dev Initialization of contract variables happens in this method because the LightClient - /// contract is upgradable and thus has its constructor method disabled. - /// @param _genesis The initial state of the light client - /// @param _genesisStakeTableState The initial stake table state of the light client - /// @param _stateHistoryRetentionPeriod The maximum retention period (in seconds) for the state - /// history. The min retention period allowed is 1 hour and the max is 365 days. - function _initializeState( - LightClientState memory _genesis, - StakeTableState memory _genesisStakeTableState, - uint32 _stateHistoryRetentionPeriod - ) internal { - // The viewNum and blockHeight in the genesis state must be zero to indicate that this is - // the initial state. Stake table commitments and threshold cannot be zero, otherwise it's - // impossible to generate valid proof to move finalized state forward. The - // stateHistoryRetentionPeriod must be at least 1 hour and no more than 365 days - // to ensure proper state retention. - if ( - _genesis.viewNum != 0 || - _genesis.blockHeight != 0 || - BN254.ScalarField.unwrap(_genesisStakeTableState.blsKeyComm) == 0 || - BN254.ScalarField.unwrap(_genesisStakeTableState.schnorrKeyComm) == 0 || - BN254.ScalarField.unwrap(_genesisStakeTableState.amountComm) == 0 || - _genesisStakeTableState.threshold == 0 || - _stateHistoryRetentionPeriod < 1 hours || - _stateHistoryRetentionPeriod > 365 days - ) { - revert InvalidArgs(); + // === Events === + // + /// @notice upgrade event when the proxy updates the implementation it's pointing to + event Upgrade(address implementation); + + /// @notice when a permissioned prover is set, this event is emitted. + event PermissionedProverRequired(address permissionedProver); + + /// @notice when the permissioned prover is unset, this event is emitted. + event PermissionedProverNotRequired(); + + // === System Parameters === + // + // === Storage === + // + /// @notice genesis stake commitment + StakeTableState public genesisStakeTableState; + + /// @notice genesis block commitment + LightClientState public genesisState; + + /// @notice Finalized HotShot's light client state + LightClientState public finalizedState; + + /// @notice the address of the prover that can call the newFinalizedState function when the + /// contract is in permissioned prover mode. This address is address(0) when the contract is + /// not in permissioned prover mode + address public permissionedProver; + + /// @notice Max number of seconds worth of state commitments to record based on this block + /// timestamp + uint32 public stateHistoryRetentionPeriod; + + /// @notice index of first block in block state series + ///@dev use this instead of index 0 since old states would be set to zero to keep storage costs + /// constant to stateHistoryRetentionPeriod + uint64 public stateHistoryFirstIndex; + + /// @notice an array to store the L1 block heights, HotShot Block Heights and their respective + /// state history + /// commitments + StateHistoryCommitment[] public stateHistoryCommitments; + + // === Data Structure === + // + /// @notice The finalized HotShot state (as the digest of the entire HotShot state) + /// @param viewNum The latest view number of the finalized HotShot chain + /// @param blockHeight The block height of the latest finalized block + /// @param blockCommRoot The merkle root of historical block commitments (BN254::ScalarField) + struct LightClientState { + uint64 viewNum; + uint64 blockHeight; + BN254.ScalarField blockCommRoot; } - genesisState = _genesis; - genesisStakeTableState = _genesisStakeTableState; - finalizedState = _genesis; - - stateHistoryRetentionPeriod = _stateHistoryRetentionPeriod; - - updateStateHistory(uint64(currentBlockNumber()), uint64(block.timestamp), _genesis); - } - - // === State Modifying APIs === - // - /// @notice Update the latest finalized light client state. It must be updated - /// periodically, especially an update for the last block for every - /// period has to be submitted - /// before any newer state can be accepted since the stake table commitments of that block - /// become the snapshots used for vote verifications later on. - /// @dev if the permissionedProver is set, only the permissionedProver can call this function - /// @dev the state history for `stateHistoryRetentionPeriod` L1 blocks are also recorded in the - /// `stateHistoryCommitments` array - /// @notice While `newState.stakeTable*` refers to the (possibly) new stake table states, - /// the entire `newState` needs to be signed by stakers in `finalizedState` - /// @param newState new light client state - /// @param proof PlonkProof - function newFinalizedState( - LightClientState memory newState, - IPlonkVerifier.PlonkProof memory proof - ) external virtual { - //revert if we're in permissionedProver mode and the permissioned prover has not been set - if (isPermissionedProverEnabled() && msg.sender != permissionedProver) { - revert ProverNotPermissioned(); + /// @notice The finalized HotShot Stake state (as the digest of the entire HotShot state) + /// @param threshold The (stake-weighted) quorum threshold for a QC to be considered as valid + /// @param blsKeyComm The commitment to the BlsVerKey column of the stake table + /// @param schnorrKeyComm The commitment to the SchnorrVerKey column of the table + /// @param amountComm The commitment to the stake amount column of the stake table + struct StakeTableState { + uint256 threshold; + BN254.ScalarField blsKeyComm; + BN254.ScalarField schnorrKeyComm; + BN254.ScalarField amountComm; } - if (newState.viewNum <= finalizedState.viewNum || newState.blockHeight <= finalizedState.blockHeight) { - revert OutdatedState(); + /// @notice Simplified HotShot commitment struct + /// @param l1BlockHeight the block height of l1 when this state update was stored + /// @param l1BlockTimestamp the block timestamp of l1 when this state update was stored + /// @param hotShotBlockHeight The block height of the latest finalized HotShot block + /// @param hotShotBlockCommRoot The merkle root of historical block commitments + /// (BN254::ScalarField) + struct StateHistoryCommitment { + uint64 l1BlockHeight; + uint64 l1BlockTimestamp; + uint64 hotShotBlockHeight; + BN254.ScalarField hotShotBlockCommRoot; } - // format validity check - BN254.validateScalarField(newState.blockCommRoot); - // check plonk proof - verifyProof(newState, proof); - - // upon successful verification, update the latest finalized state - finalizedState = newState; - - updateStateHistory(uint64(currentBlockNumber()), uint64(block.timestamp), newState); + /// @notice Event that a new finalized state has been successfully verified and updated + event NewState( + uint64 indexed viewNum, uint64 indexed blockHeight, BN254.ScalarField blockCommRoot + ); - emit NewState(newState.viewNum, newState.blockHeight, newState.blockCommRoot); - } + /// @notice The state is outdated and older than currently known `finalizedState` + error OutdatedState(); + /// @notice Invalid user inputs: wrong format or non-sensible arguments + error InvalidArgs(); + /// @notice Wrong plonk proof or public inputs. + error InvalidProof(); + /// @notice Wrong stake table used, should match `finalizedState` + error WrongStakeTableUsed(); + /// @notice Invalid address + error InvalidAddress(); + /// @notice Only a permissioned prover can perform this action + error ProverNotPermissioned(); + /// @notice If the same mode or prover is sent to the function, then no change is required + error NoChangeRequired(); + /// @notice Invalid L1 Block for checking Light Client Updates, premature or in the future + error InsufficientSnapshotHistory(); + /// @notice Invalid HotShot Block for checking HotShot commitments, premature or in the future + error InvalidHotShotBlockForCommitmentCheck(); + /// @notice Invalid Max Block States + error InvalidMaxStateHistory(); + + /// @notice Constructor disables initializers to prevent the implementation contract from being + /// initialized + /// @dev This is standard practice for OpenZeppelin upgradeable contracts. Storage is on the + /// proxy contract + /// since it calls this cnotract via delegatecall + /// @custom:oz-upgrades-unsafe-allow constructor + constructor() { + _disableInitializers(); + } - /// @notice Verify the Plonk proof, marked as `virtual` for easier testing as we can swap VK - /// used in inherited contracts. - function verifyProof(LightClientState memory state, IPlonkVerifier.PlonkProof memory proof) internal virtual { - IPlonkVerifier.VerifyingKey memory vk = VkLib.getVk(); + /// @notice This contract is called by the proxy when you deploy this contract + /// @param _genesis The initial state of the light client + /// @param _stateHistoryRetentionPeriod The maximum retention period (in seconds) for the state + /// history. the min retention period allowed is 1 hour and max 365 days + /// @param owner The address of the contract owner + function initialize( + LightClientState memory _genesis, + StakeTableState memory _genesisStakeTableState, + uint32 _stateHistoryRetentionPeriod, + address owner + ) public initializer { + __Ownable_init(owner); //sets owner of the contract + __UUPSUpgradeable_init(); + _initializeState(_genesis, _genesisStakeTableState, _stateHistoryRetentionPeriod); + } - // Prepare the public input - uint256[7] memory publicInput; - publicInput[0] = uint256(state.viewNum); - publicInput[1] = uint256(state.blockHeight); - publicInput[2] = BN254.ScalarField.unwrap(state.blockCommRoot); - publicInput[3] = BN254.ScalarField.unwrap(genesisStakeTableState.blsKeyComm); - publicInput[4] = BN254.ScalarField.unwrap(genesisStakeTableState.schnorrKeyComm); - publicInput[5] = BN254.ScalarField.unwrap(genesisStakeTableState.amountComm); - publicInput[6] = genesisStakeTableState.threshold; + /// @notice returns the current block number + function currentBlockNumber() public view virtual returns (uint256) { + return block.number; + } - if (!PlonkVerifier.verify(vk, publicInput, proof)) { - revert InvalidProof(); + /// @notice Use this to get the implementation contract version + /// @return majorVersion The major version of the contract + /// @return minorVersion The minor version of the contract + /// @return patchVersion The patch version of the contract + function getVersion() + public + pure + virtual + returns (uint8 majorVersion, uint8 minorVersion, uint8 patchVersion) + { + return (1, 0, 0); } - } - - /// @notice set the permissionedProver to the non-zero address provided - /// @dev this function can also be used to update the permissioned prover once it's a different - /// address to the current permissioned prover - function setPermissionedProver(address prover) public virtual onlyOwner { - if (prover == address(0)) { - revert InvalidAddress(); + + /// @notice only the owner can authorize an upgrade + function _authorizeUpgrade(address newImplementation) internal virtual override onlyOwner { + emit Upgrade(newImplementation); } - if (prover == permissionedProver) { - revert NoChangeRequired(); + + /// @dev Initialization of contract variables happens in this method because the LightClient + /// contract is upgradable and thus has its constructor method disabled. + /// @param _genesis The initial state of the light client + /// @param _genesisStakeTableState The initial stake table state of the light client + /// @param _stateHistoryRetentionPeriod The maximum retention period (in seconds) for the state + /// history. The min retention period allowed is 1 hour and the max is 365 days. + function _initializeState( + LightClientState memory _genesis, + StakeTableState memory _genesisStakeTableState, + uint32 _stateHistoryRetentionPeriod + ) internal { + // The viewNum and blockHeight in the genesis state must be zero to indicate that this is + // the initial state. Stake table commitments and threshold cannot be zero, otherwise it's + // impossible to generate valid proof to move finalized state forward. The + // stateHistoryRetentionPeriod must be at least 1 hour and no more than 365 days + // to ensure proper state retention. + if ( + _genesis.viewNum != 0 || _genesis.blockHeight != 0 + || BN254.ScalarField.unwrap(_genesisStakeTableState.blsKeyComm) == 0 + || BN254.ScalarField.unwrap(_genesisStakeTableState.schnorrKeyComm) == 0 + || BN254.ScalarField.unwrap(_genesisStakeTableState.amountComm) == 0 + || _genesisStakeTableState.threshold == 0 || _stateHistoryRetentionPeriod < 1 hours + || _stateHistoryRetentionPeriod > 365 days + ) { + revert InvalidArgs(); + } + + genesisState = _genesis; + genesisStakeTableState = _genesisStakeTableState; + finalizedState = _genesis; + + stateHistoryRetentionPeriod = _stateHistoryRetentionPeriod; + + updateStateHistory(uint64(currentBlockNumber()), uint64(block.timestamp), _genesis); } - permissionedProver = prover; - emit PermissionedProverRequired(permissionedProver); - } - - /// @notice set the permissionedProver to address(0) - /// @dev if it was already disabled, then revert with the error, NoChangeRequired - function disablePermissionedProverMode() public virtual onlyOwner { - if (isPermissionedProverEnabled()) { - permissionedProver = address(0); - emit PermissionedProverNotRequired(); - } else { - revert NoChangeRequired(); + + // === State Modifying APIs === + // + /// @notice Update the latest finalized light client state. It must be updated + /// periodically, especially an update for the last block for every + /// period has to be submitted + /// before any newer state can be accepted since the stake table commitments of that block + /// become the snapshots used for vote verifications later on. + /// @dev if the permissionedProver is set, only the permissionedProver can call this function + /// @dev the state history for `stateHistoryRetentionPeriod` L1 blocks are also recorded in the + /// `stateHistoryCommitments` array + /// @notice While `newState.stakeTable*` refers to the (possibly) new stake table states, + /// the entire `newState` needs to be signed by stakers in `finalizedState` + /// @param newState new light client state + /// @param proof PlonkProof + function newFinalizedState( + LightClientState memory newState, + IPlonkVerifier.PlonkProof memory proof + ) external virtual { + //revert if we're in permissionedProver mode and the permissioned prover has not been set + if (isPermissionedProverEnabled() && msg.sender != permissionedProver) { + revert ProverNotPermissioned(); + } + + if ( + newState.viewNum <= finalizedState.viewNum + || newState.blockHeight <= finalizedState.blockHeight + ) { + revert OutdatedState(); + } + // format validity check + BN254.validateScalarField(newState.blockCommRoot); + + // check plonk proof + verifyProof(newState, proof); + + // upon successful verification, update the latest finalized state + finalizedState = newState; + + updateStateHistory(uint64(currentBlockNumber()), uint64(block.timestamp), newState); + + emit NewState(newState.viewNum, newState.blockHeight, newState.blockCommRoot); } - } - - /// @notice Updates the `stateHistoryCommitments` array when a new finalized state is added - /// and prunes the most outdated element starting from the first element if they fall outside - /// the - /// `stateHistoryRetentionPeriod`. - /// @dev the block timestamp is used to determine if the stateHistoryCommitments array - /// should be pruned, based on the stateHistoryRetentionPeriod (seconds). - /// @dev A FIFO approach is used to remove the most outdated element from the start of the - /// array. - /// However, only one outdated element is removed per invocation of this function, even if - /// multiple elements exceed the retention period. As a result, some outdated elements may - /// remain in the array temporarily until subsequent invocations of this function. - /// @dev the `delete` method does not reduce the array length but resets the value at the - /// specified index to zero. the stateHistoryFirstIndex variable acts as an offset to indicate - /// the starting point for reading the array, since the length of the array is not reduced - /// even after deletion. - /// @param blockNumber The block number of the new finalized state. - /// @param blockTimestamp The block timestamp used to check the retention period. - /// @param state The new `LightClientState` being added to the array. - function updateStateHistory(uint64 blockNumber, uint64 blockTimestamp, LightClientState memory state) internal { - if ( - stateHistoryCommitments.length != 0 && - blockTimestamp - stateHistoryCommitments[stateHistoryFirstIndex].l1BlockTimestamp > stateHistoryRetentionPeriod - ) { - // The stateHistoryCommitments array has reached the maximum retention period - // delete the oldest (first) non-empty element to maintain the FIFO structure. - delete stateHistoryCommitments[stateHistoryFirstIndex]; - - // increment the offset to the first non-zero element in the stateHistoryCommitments - // array - stateHistoryFirstIndex++; + + /// @notice Verify the Plonk proof, marked as `virtual` for easier testing as we can swap VK + /// used in inherited contracts. + function verifyProof(LightClientState memory state, IPlonkVerifier.PlonkProof memory proof) + internal + virtual + { + IPlonkVerifier.VerifyingKey memory vk = VkLib.getVk(); + + // Prepare the public input + uint256[7] memory publicInput; + publicInput[0] = uint256(state.viewNum); + publicInput[1] = uint256(state.blockHeight); + publicInput[2] = BN254.ScalarField.unwrap(state.blockCommRoot); + publicInput[3] = BN254.ScalarField.unwrap(genesisStakeTableState.blsKeyComm); + publicInput[4] = BN254.ScalarField.unwrap(genesisStakeTableState.schnorrKeyComm); + publicInput[5] = BN254.ScalarField.unwrap(genesisStakeTableState.amountComm); + publicInput[6] = genesisStakeTableState.threshold; + + if (!PlonkVerifier.verify(vk, publicInput, proof)) { + revert InvalidProof(); + } } - // add the L1 Block & HotShot commitment to the stateHistoryCommitments - stateHistoryCommitments.push( - StateHistoryCommitment(blockNumber, blockTimestamp, state.blockHeight, state.blockCommRoot) - ); - } - - /// @notice checks if the state updates lag behind the specified block threshold based on the - /// provided block number. - /// @dev Reverts if there isn't enough state history to make an accurate comparison. - /// Reverts if the blockThreshold is zero - /// @param blockNumber The block number to compare against the latest state updates. - /// @param blockThreshold The number of blocks updates this contract is allowed to lag behind. - /// @return bool returns true if the lag exceeds the blockThreshold; otherwise, false. - function lagOverEscapeHatchThreshold(uint256 blockNumber, uint256 blockThreshold) public view virtual returns (bool) { - uint256 updatesCount = stateHistoryCommitments.length; - - // Edge Case Handling: - // 1. Provided block number is greater than the current block (invalid) - // 2. No updates have occurred (i.e., state history is empty) - // 3. Provided block number is earlier than the first recorded state update - // the stateHistoryFirstIndex is used to check for the first nonZero element - if ( - blockNumber > currentBlockNumber() || - updatesCount == 0 || - blockNumber < stateHistoryCommitments[stateHistoryFirstIndex].l1BlockHeight - ) { - revert InsufficientSnapshotHistory(); + /// @notice set the permissionedProver to the non-zero address provided + /// @dev this function can also be used to update the permissioned prover once it's a different + /// address to the current permissioned prover + function setPermissionedProver(address prover) public virtual onlyOwner { + if (prover == address(0)) { + revert InvalidAddress(); + } + if (prover == permissionedProver) { + revert NoChangeRequired(); + } + permissionedProver = prover; + emit PermissionedProverRequired(permissionedProver); } - uint256 eligibleStateUpdateBlockNumber; // the eligibleStateUpdateBlockNumber is <= - // blockNumber - bool stateUpdateFound; // if an eligible block number is found in the state update history, - // then this variable is set to true - - // Search from the most recent state update back to find the first update <= blockNumber - uint256 i = updatesCount - 1; - while (!stateUpdateFound) { - // Stop searching if we've exhausted the recorded state history - if (i < stateHistoryFirstIndex) { - break; - } - - // Find the first update with a block height <= blockNumber - if (stateHistoryCommitments[i].l1BlockHeight <= blockNumber) { - stateUpdateFound = true; - eligibleStateUpdateBlockNumber = stateHistoryCommitments[i].l1BlockHeight; - break; - } - - i--; + /// @notice set the permissionedProver to address(0) + /// @dev if it was already disabled, then revert with the error, NoChangeRequired + function disablePermissionedProverMode() public virtual onlyOwner { + if (isPermissionedProverEnabled()) { + permissionedProver = address(0); + emit PermissionedProverNotRequired(); + } else { + revert NoChangeRequired(); + } } - // If no snapshot is found, we don't have enough history stored - // to tell whether HotShot was down. - if (!stateUpdateFound) { - revert InsufficientSnapshotHistory(); + /// @notice Updates the `stateHistoryCommitments` array when a new finalized state is added + /// and prunes the most outdated element starting from the first element if they fall outside + /// the + /// `stateHistoryRetentionPeriod`. + /// @dev the block timestamp is used to determine if the stateHistoryCommitments array + /// should be pruned, based on the stateHistoryRetentionPeriod (seconds). + /// @dev A FIFO approach is used to remove the most outdated element from the start of the + /// array. + /// However, only one outdated element is removed per invocation of this function, even if + /// multiple elements exceed the retention period. As a result, some outdated elements may + /// remain in the array temporarily until subsequent invocations of this function. + /// @dev the `delete` method does not reduce the array length but resets the value at the + /// specified index to zero. the stateHistoryFirstIndex variable acts as an offset to indicate + /// the starting point for reading the array, since the length of the array is not reduced + /// even after deletion. + /// @param blockNumber The block number of the new finalized state. + /// @param blockTimestamp The block timestamp used to check the retention period. + /// @param state The new `LightClientState` being added to the array. + function updateStateHistory( + uint64 blockNumber, + uint64 blockTimestamp, + LightClientState memory state + ) internal { + if ( + stateHistoryCommitments.length != 0 + && blockTimestamp - stateHistoryCommitments[stateHistoryFirstIndex].l1BlockTimestamp + > stateHistoryRetentionPeriod + ) { + // The stateHistoryCommitments array has reached the maximum retention period + // delete the oldest (first) non-empty element to maintain the FIFO structure. + delete stateHistoryCommitments[stateHistoryFirstIndex]; + + // increment the offset to the first non-zero element in the stateHistoryCommitments + // array + stateHistoryFirstIndex++; + } + + // add the L1 Block & HotShot commitment to the stateHistoryCommitments + stateHistoryCommitments.push( + StateHistoryCommitment( + blockNumber, blockTimestamp, state.blockHeight, state.blockCommRoot + ) + ); } - return blockNumber - eligibleStateUpdateBlockNumber > blockThreshold; - } - - /// @notice get the HotShot commitment that represents the Merkle root containing the leaf at - /// the provided hotShotBlockHeight where the block height in the array is greater than - // or equal to the provided hotShotBlockHeight. - /// @dev if the provided hotShotBlockHeight is greater than the latest commitment in the array, - /// the function reverts. - /// @param hotShotBlockHeight the HotShot block height - /// @return hotShotBlockCommRoot the HotShot commitment root - /// @return hotshotBlockHeight the HotShot block height for the corresponding commitment root - function getHotShotCommitment( - uint256 hotShotBlockHeight - ) public view virtual returns (BN254.ScalarField hotShotBlockCommRoot, uint64 hotshotBlockHeight) { - uint256 commitmentsHeight = stateHistoryCommitments.length; - if (hotShotBlockHeight > stateHistoryCommitments[commitmentsHeight - 1].hotShotBlockHeight) { - revert InvalidHotShotBlockForCommitmentCheck(); + /// @notice checks if the state updates lag behind the specified block threshold based on the + /// provided block number. + /// @dev Reverts if there isn't enough state history to make an accurate comparison. + /// Reverts if the blockThreshold is zero + /// @param blockNumber The block number to compare against the latest state updates. + /// @param blockThreshold The number of blocks updates this contract is allowed to lag behind. + /// @return bool returns true if the lag exceeds the blockThreshold; otherwise, false. + function lagOverEscapeHatchThreshold(uint256 blockNumber, uint256 blockThreshold) + public + view + virtual + returns (bool) + { + uint256 updatesCount = stateHistoryCommitments.length; + + // Edge Case Handling: + // 1. Provided block number is greater than the current block (invalid) + // 2. No updates have occurred (i.e., state history is empty) + // 3. Provided block number is earlier than the first recorded state update + // the stateHistoryFirstIndex is used to check for the first nonZero element + if ( + blockNumber > currentBlockNumber() || updatesCount == 0 + || blockNumber < stateHistoryCommitments[stateHistoryFirstIndex].l1BlockHeight + ) { + revert InsufficientSnapshotHistory(); + } + + uint256 eligibleStateUpdateBlockNumber; // the eligibleStateUpdateBlockNumber is <= + // blockNumber + bool stateUpdateFound; // if an eligible block number is found in the state update history, + // then this variable is set to true + + // Search from the most recent state update back to find the first update <= blockNumber + uint256 i = updatesCount - 1; + while (!stateUpdateFound) { + // Stop searching if we've exhausted the recorded state history + if (i < stateHistoryFirstIndex) { + break; + } + + // Find the first update with a block height <= blockNumber + if (stateHistoryCommitments[i].l1BlockHeight <= blockNumber) { + stateUpdateFound = true; + eligibleStateUpdateBlockNumber = stateHistoryCommitments[i].l1BlockHeight; + break; + } + + i--; + } + + // If no snapshot is found, we don't have enough history stored + // to tell whether HotShot was down. + if (!stateUpdateFound) { + revert InsufficientSnapshotHistory(); + } + + return blockNumber - eligibleStateUpdateBlockNumber > blockThreshold; } - for (uint256 i = stateHistoryFirstIndex; i < commitmentsHeight; i++) { - // Finds and returns the first HotShot commitment whose height is greater than - // or equal to the specified HotShot height. - if (stateHistoryCommitments[i].hotShotBlockHeight >= hotShotBlockHeight) { - return (stateHistoryCommitments[i].hotShotBlockCommRoot, stateHistoryCommitments[i].hotShotBlockHeight); - } + + /// @notice get the HotShot commitment that represents the Merkle root containing the leaf at + /// the provided hotShotBlockHeight where the block height in the array is greater than + // or equal to the provided hotShotBlockHeight. + /// @dev if the provided hotShotBlockHeight is greater than the latest commitment in the array, + /// the function reverts. + /// @param hotShotBlockHeight the HotShot block height + /// @return hotShotBlockCommRoot the HotShot commitment root + /// @return hotshotBlockHeight the HotShot block height for the corresponding commitment root + function getHotShotCommitment(uint256 hotShotBlockHeight) + public + view + virtual + returns (BN254.ScalarField hotShotBlockCommRoot, uint64 hotshotBlockHeight) + { + uint256 commitmentsHeight = stateHistoryCommitments.length; + if (hotShotBlockHeight > stateHistoryCommitments[commitmentsHeight - 1].hotShotBlockHeight) + { + revert InvalidHotShotBlockForCommitmentCheck(); + } + for (uint256 i = stateHistoryFirstIndex; i < commitmentsHeight; i++) { + // Finds and returns the first HotShot commitment whose height is greater than + // or equal to the specified HotShot height. + if (stateHistoryCommitments[i].hotShotBlockHeight >= hotShotBlockHeight) { + return ( + stateHistoryCommitments[i].hotShotBlockCommRoot, + stateHistoryCommitments[i].hotShotBlockHeight + ); + } + } } - } - - /// @notice get the number of state history commitments - /// @return uint256 The number of state history commitments - function getStateHistoryCount() public view returns (uint256) { - return stateHistoryCommitments.length; - } - - /// @notice sets the maximum retention period for storing block state history. - /// @param historySeconds The maximum number of seconds for which state history updates - /// will be stored, based on the block timestamp. It must be greater than or equal to - /// the current state history retention period and must be at least 1 hour and max 365 days. - /// @dev Reverts with `InvalidMaxStateHistory` if the provided value is less than 1 hour, - /// more than 365 days or less than or equal to the current state history retention period. - function setstateHistoryRetentionPeriod(uint32 historySeconds) public onlyOwner { - if (historySeconds < 1 hours || historySeconds > 365 days || historySeconds <= stateHistoryRetentionPeriod) { - revert InvalidMaxStateHistory(); + + /// @notice get the number of state history commitments + /// @return uint256 The number of state history commitments + function getStateHistoryCount() public view returns (uint256) { + return stateHistoryCommitments.length; } - stateHistoryRetentionPeriod = historySeconds; - } + /// @notice sets the maximum retention period for storing block state history. + /// @param historySeconds The maximum number of seconds for which state history updates + /// will be stored, based on the block timestamp. It must be greater than or equal to + /// the current state history retention period and must be at least 1 hour and max 365 days. + /// @dev Reverts with `InvalidMaxStateHistory` if the provided value is less than 1 hour, + /// more than 365 days or less than or equal to the current state history retention period. + function setstateHistoryRetentionPeriod(uint32 historySeconds) public onlyOwner { + if ( + historySeconds < 1 hours || historySeconds > 365 days + || historySeconds <= stateHistoryRetentionPeriod + ) { + revert InvalidMaxStateHistory(); + } + + stateHistoryRetentionPeriod = historySeconds; + } - /// @notice Check if permissioned prover is enabled - function isPermissionedProverEnabled() public view returns (bool) { - return (permissionedProver != address(0)); - } + /// @notice Check if permissioned prover is enabled + function isPermissionedProverEnabled() public view returns (bool) { + return (permissionedProver != address(0)); + } } diff --git a/contracts/src/LightClientArbitrum.sol b/contracts/src/LightClientArbitrum.sol index 175de46005..f173890b6a 100644 --- a/contracts/src/LightClientArbitrum.sol +++ b/contracts/src/LightClientArbitrum.sol @@ -5,11 +5,11 @@ pragma solidity ^0.8.0; import { LightClient } from "./LightClient.sol"; interface ArbSys { - function arbBlockNumber() external view returns (uint256); + function arbBlockNumber() external view returns (uint256); } contract LightClientArbitrum is LightClient { - function currentBlockNumber() public view virtual override returns (uint256) { - return ArbSys(address(uint160(100))).arbBlockNumber(); - } + function currentBlockNumber() public view virtual override returns (uint256) { + return ArbSys(address(uint160(100))).arbBlockNumber(); + } } From 61348dc25fcd0562273bd646e11693c3be339fa8 Mon Sep 17 00:00:00 2001 From: Alysia Huggins Date: Mon, 13 Jan 2025 14:35:38 -0500 Subject: [PATCH 4/8] adding foundry script for deploying the light client arb and removing the updateStateHistory from Lightclient during the initialization step as precompiles cannot be called during a forge script deployment --- .env.contracts.example | 1 + .../LightClientArbitrum_bytecode.json | 1 + .../artifacts/LightClientMock_bytecode.json | 2 +- .../artifacts/LightClient_bytecode.json | 2 +- contract-bindings/src/lib.rs | 1 + .../src/light_client_arbitrum.rs | 3240 +++++++++++++++++ .../421614/run-1736785553.json | 103 + .../421614/run-1736785957.json | 197 + .../421614/run-1736794002.json | 263 ++ .../421614/run-1736794243.json | 263 ++ .../421614/run-latest.json | 263 ++ .../421614/run-1736543852.json | 65 + .../421614/run-1736543918.json | 65 + .../421614/run-1736543987.json | 65 + .../421614/run-1736544036.json | 65 + .../421614/run-1736544114.json | 65 + .../421614/run-1736602963.json | 103 + .../421614/run-1736603058.json | 103 + .../421614/run-1736603225.json | 136 + .../421614/run-1736603316.json | 103 + .../421614/run-1736603559.json | 103 + .../421614/run-1736603691.json | 263 ++ .../421614/run-latest.json | 263 ++ .../421614/run-1736544341.json | 34 + .../421614/run-1736544438.json | 34 + .../421614/run-1736544485.json | 34 + .../421614/run-1736544842.json | 34 + .../421614/run-1736544888.json | 34 + .../421614/run-1736545062.json | 34 + .../421614/run-1736600901.json | 34 + .../421614/run-1736601342.json | 53 + .../421614/run-latest.json | 53 + contracts/script/LightClientArb.s.sol | 85 + contracts/script/PlonkVerifier.s.sol | 2 +- contracts/script/README.md | 19 + contracts/src/LightClient.sol | 4 +- contracts/src/LightClientArbitrum.sol | 12 +- contracts/test/LightClient.t.sol | 13 +- justfile | 3 +- sequencer/src/network/cdn.rs | 4 +- 40 files changed, 6208 insertions(+), 13 deletions(-) create mode 100644 contract-bindings/artifacts/LightClientArbitrum_bytecode.json create mode 100644 contract-bindings/src/light_client_arbitrum.rs create mode 100644 contracts/broadcast/LightClientArb.s.sol/421614/run-1736785553.json create mode 100644 contracts/broadcast/LightClientArb.s.sol/421614/run-1736785957.json create mode 100644 contracts/broadcast/LightClientArb.s.sol/421614/run-1736794002.json create mode 100644 contracts/broadcast/LightClientArb.s.sol/421614/run-1736794243.json create mode 100644 contracts/broadcast/LightClientArb.s.sol/421614/run-latest.json create mode 100644 contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736543852.json create mode 100644 contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736543918.json create mode 100644 contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736543987.json create mode 100644 contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736544036.json create mode 100644 contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736544114.json create mode 100644 contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736602963.json create mode 100644 contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603058.json create mode 100644 contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603225.json create mode 100644 contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603316.json create mode 100644 contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603559.json create mode 100644 contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603691.json create mode 100644 contracts/broadcast/LightClientArbitrum.s.sol/421614/run-latest.json create mode 100644 contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544341.json create mode 100644 contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544438.json create mode 100644 contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544485.json create mode 100644 contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544842.json create mode 100644 contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544888.json create mode 100644 contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736545062.json create mode 100644 contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736600901.json create mode 100644 contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736601342.json create mode 100644 contracts/broadcast/PlonkVerifier.s.sol/421614/run-latest.json create mode 100644 contracts/script/LightClientArb.s.sol diff --git a/.env.contracts.example b/.env.contracts.example index 5dfec790dc..78bdcfd450 100644 --- a/.env.contracts.example +++ b/.env.contracts.example @@ -31,6 +31,7 @@ export FEE_CONTRACT_ADDRESS= # The etherscan API key is needed to verify contracts on etherscan. export ETHERSCAN_API_KEY= export SOLC_VERSION= +export ARBISCAN_API_KEY= # foundry scripts export DEPLOYER_PRIVATE_KEY= #include the 0x prefix diff --git a/contract-bindings/artifacts/LightClientArbitrum_bytecode.json b/contract-bindings/artifacts/LightClientArbitrum_bytecode.json new file mode 100644 index 0000000000..4e648d05dd --- /dev/null +++ b/contract-bindings/artifacts/LightClientArbitrum_bytecode.json @@ -0,0 +1 @@ +"0x60a0604052306080523480156200001557600080fd5b506200002062000030565b6200002a62000030565b620000e4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000815760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000e15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612a7e6200010e600039600081816111480152818161117101526112f00152612a7e6000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b366004612004565b610584565b005b34801561017e57600080fd5b5061019261018d36600461201f565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612173565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b610170610308366004612327565b610848565b34801561031957600080fd5b506102a9610867565b34801561032e57600080fd5b50610170610884565b34801561034357600080fd5b506101706108f3565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b5061039861039336600461201f565b610905565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046123e0565b610a38565b34801561041e57600080fd5b5061017061042d3660046123fb565b610ac1565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906124cc565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046124ff565b610be5565b34801561055b57600080fd5b5061017061056a366004612004565b610d4b565b34801561057b57600080fd5b506009546102a9565b61058c610d8e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610de9565b6107338282610e59565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610f51565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b600060646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108439190612521565b905090565b61085061113d565b610859826111e2565b6108638282611223565b5050565b60006108716112e5565b50600080516020612a5283398151915290565b61088c610d8e565b6008546001600160a01b0316156108d857600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b6108fb610d8e565b6108f1600061132e565b6009805460009182919061091a600183612550565b8154811061092a5761092a612563565b6000918252602090912060029091020154600160801b90046001600160401b031684111561096b57604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610a3157846009828154811061099b5761099b612563565b6000918252602090912060029091020154600160801b90046001600160401b031610610a2957600981815481106109d4576109d4612563565b906000526020600020906002020160010154600982815481106109f9576109f9612563565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b60010161097f565b5050915091565b610a40610d8e565b610e108163ffffffff161080610a5f57506301e133808163ffffffff16115b80610a7d575060085463ffffffff600160a01b909104811690821611155b15610a9b576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b065750825b90506000826001600160401b03166001148015610b225750303b155b905081158015610b30575080155b15610b4e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b7857845460ff60401b1916600160401b1785555b610b818661139f565b610b896113b0565b610b948989896113b8565b8315610bda57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610bf36107de565b841180610bfe575080155b80610c495750600854600980549091600160c01b90046001600160401b0316908110610c2c57610c2c612563565b60009182526020909120600290910201546001600160401b031684105b15610c675760405163b0b4387760e01b815260040160405180910390fd5b60008080610c76600185612550565b90505b81610d1457600854600160c01b90046001600160401b03168110610d14578660098281548110610cab57610cab612563565b60009182526020909120600290910201546001600160401b031611610d02576001915060098181548110610ce157610ce1612563565b60009182526020909120600290910201546001600160401b03169250610d14565b80610d0c81612579565b915050610c79565b81610d325760405163b0b4387760e01b815260040160405180910390fd5b85610d3d8489612550565b119450505050505b92915050565b610d53610d8e565b6001600160a01b038116610d8257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d8b8161132e565b50565b33610dc07f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146108f15760405163118cdaa760e01b8152336004820152602401610d79565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108635760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610d79565b6000610e636114e5565b9050610e6d611d3d565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273__$5c5c07cf4f55be9472c2b47d897172e765$__9063ce537a7790610eed90859085908890600401612797565b602060405180830381865af4158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e91906129c6565b610f4b576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590610fc7575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610f9157610f91612563565b6000918252602090912060029091020154610fbc90600160401b90046001600160401b0316846129e8565b6001600160401b0316115b1561105b57600854600980549091600160c01b90046001600160401b0316908110610ff457610ff4612563565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b031690601861103583612a0f565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806111c457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111b8600080516020612a52833981519152546001600160a01b031690565b6001600160a01b031614155b156108f15760405163703e46dd60e11b815260040160405180910390fd5b6111ea610d8e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561127d575060408051601f3d908101601f1916820190925261127a91810190612521565b60015b6112a557604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d79565b600080516020612a5283398151915281146112d657604051632a87526960e21b815260048101829052602401610d79565b6112e08383611b14565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108f15760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6113a7611b6a565b610d8b81611bb3565b6108f1611b6a565b82516001600160401b03161515806113dc575060208301516001600160401b031615155b806113e957506020820151155b806113f657506040820151155b8061140357506060820151155b8061140d57508151155b8061141f5750610e108163ffffffff16105b8061143357506301e133808163ffffffff16115b15611451576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6114ed611d5b565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611b1d82611bbb565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611b62576112e08282611c20565b610863611c96565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166108f157604051631afcd79f60e31b815260040160405180910390fd5b610d53611b6a565b806001600160a01b03163b600003611bf157604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d79565b600080516020612a5283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611c3d9190612a35565b600060405180830381855af49150503d8060008114611c78576040519150601f19603f3d011682016040523d82523d6000602084013e611c7d565b606091505b5091509150611c8d858383611cb5565b95945050505050565b34156108f15760405163b398979f60e01b815260040160405180910390fd5b606082611cca57611cc582611d14565b611d0d565b8151158015611ce157506001600160a01b0384163b155b15611d0a57604051639996b31560e01b81526001600160a01b0385166004820152602401610d79565b50805b9392505050565b805115611d245780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611d92604051806040016040528060008152602001600081525090565b8152602001611db4604051806040016040528060008152602001600081525090565b8152602001611dd6604051806040016040528060008152602001600081525090565b8152602001611df8604051806040016040528060008152602001600081525090565b8152602001611e1a604051806040016040528060008152602001600081525090565b8152602001611e3c604051806040016040528060008152602001600081525090565b8152602001611e5e604051806040016040528060008152602001600081525090565b8152602001611e80604051806040016040528060008152602001600081525090565b8152602001611ea2604051806040016040528060008152602001600081525090565b8152602001611ec4604051806040016040528060008152602001600081525090565b8152602001611ee6604051806040016040528060008152602001600081525090565b8152602001611f08604051806040016040528060008152602001600081525090565b8152602001611f2a604051806040016040528060008152602001600081525090565b8152602001611f4c604051806040016040528060008152602001600081525090565b8152602001611f6e604051806040016040528060008152602001600081525090565b8152602001611f90604051806040016040528060008152602001600081525090565b8152602001611fb2604051806040016040528060008152602001600081525090565b8152602001611fd4604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b0381168114611fff57600080fd5b919050565b60006020828403121561201657600080fd5b611d0d82611fe8565b60006020828403121561203157600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b038111828210171561207157612071612038565b60405290565b604051601f8201601f191681016001600160401b038111828210171561209f5761209f612038565b604052919050565b80356001600160401b0381168114611fff57600080fd5b6000606082840312156120d057600080fd5b604051606081018181106001600160401b03821117156120f2576120f2612038565b604052905080612101836120a7565b815261210f602084016120a7565b6020820152604083013560408201525092915050565b60006040828403121561213757600080fd5b604051604081018181106001600160401b038211171561215957612159612038565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561218857600080fd5b61219285856120be565b925061048080605f19830112156121a857600080fd5b6121b061204e565b91506121bf8660608701612125565b82526121ce8660a08701612125565b60208301526121e08660e08701612125565b60408301526101206121f487828801612125565b606084015261016061220888828901612125565b60808501526101a061221c89828a01612125565b60a08601526101e06122308a828b01612125565b60c08701526102206122448b828c01612125565b60e08801526102606122588c828d01612125565b6101008901526102a061226d8d828e01612125565b878a015261227f8d6102e08e01612125565b6101408a01526122938d6103208e01612125565b868a01526122a58d6103608e01612125565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561233a57600080fd5b61234383611fe8565b91506020808401356001600160401b038082111561236057600080fd5b818601915086601f83011261237457600080fd5b81358181111561238657612386612038565b612398601f8201601f19168501612077565b915080825287848285010111156123ae57600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff81168114611fff57600080fd5b6000602082840312156123f257600080fd5b611d0d826123cc565b60008060008084860361012081121561241357600080fd5b61241d87876120be565b94506080605f198201121561243157600080fd5b50604051608081018181106001600160401b038211171561245457612454612038565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061248e60e086016123cc565b915061249d6101008601611fe8565b905092959194509250565b60005b838110156124c35781810151838201526020016124ab565b50506000910152565b60208152600082518060208401526124eb8160408501602087016124a8565b601f01601f19169190910160400192915050565b6000806040838503121561251257600080fd5b50508035926020909101359150565b60006020828403121561253357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610d4557610d4561253a565b634e487b7160e01b600052603260045260246000fd5b6000816125885761258861253a565b506000190190565b8060005b6007811015610f4b578151845260209384019390910190600101612594565b6125c882825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061262b8185018380518252602090810151910152565b60a0830151915061014061264b8186018480518252602090810151910152565b60c0840151925061018061266b8187018580518252602090810151910152565b60e085015193506101c061268b8188018680518252602090810151910152565b928501519350610200926126ab8785018680518252602090810151910152565b61012086015194506102406126cc8189018780518252602090810151910152565b928601519450610280926126ec8885018780518252602090810151910152565b61016087015195506102c061270d818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516127ca604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a08501516101006128178185018380518252602090810151910152565b60c087015191506101406128378186018480518252602090810151910152565b60e088015192506101806128578187018580518252602090810151910152565b9188015192506101c0916128778684018580518252602090810151910152565b61012089015193506102006128988188018680518252602090810151910152565b918901519350610240916128b88784018680518252602090810151910152565b6101608a015194506102806128d98189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e08301526129b0610500830185612590565b6129be6105e08301846125b3565b949350505050565b6000602082840312156129d857600080fd5b81518015158114611d0d57600080fd5b6001600160401b03828116828216039080821115612a0857612a0861253a565b5092915050565b60006001600160401b03808316818103612a2b57612a2b61253a565b6001019392505050565b60008251612a478184602087016124a8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a" diff --git a/contract-bindings/artifacts/LightClientMock_bytecode.json b/contract-bindings/artifacts/LightClientMock_bytecode.json index 2999f519ae..557ba7565b 100644 --- a/contract-bindings/artifacts/LightClientMock_bytecode.json +++ b/contract-bindings/artifacts/LightClientMock_bytecode.json @@ -1 +1 @@ -"0x60a0604052306080523480156200001557600080fd5b50604051620033cd380380620033cd8339810160408190526200003891620004ec565b6200004262000058565b6200004f8383836200010c565b5050506200062c565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000a95760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001095780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b82516001600160401b031615158062000131575060208301516001600160401b031615155b806200013f57506020820151155b806200014d57506040820151155b806200015b57506060820151155b806200016657508151155b80620001795750610e108163ffffffff16105b806200018e57506301e133808163ffffffff16115b15620001ad576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b039485166001600160801b03199384168117680100000000000000009690921695909502908117909355604080880151600581905587516000559187015160015586015160025560608601516003556006805490921690931790911790556007556008805463ffffffff60a01b1916600160a01b63ffffffff8416021790556200024c43428562000251565b505050565b60095415801590620002d2575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110620002955762000295620005a5565b6000918252602090912060029091020154620002c7906801000000000000000090046001600160401b031684620005d1565b6001600160401b0316115b156200036c57600854600980549091600160c01b90046001600160401b0316908110620003035762000303620005a5565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186200034683620005fb565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b02600160801b600160c01b031995881668010000000000000000026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b604051606081016001600160401b03811182821017156200048357634e487b7160e01b600052604160045260246000fd5b60405290565b604051608081016001600160401b03811182821017156200048357634e487b7160e01b600052604160045260246000fd5b80516001600160401b0381168114620004d257600080fd5b919050565b805163ffffffff81168114620004d257600080fd5b60008060008385036101008112156200050457600080fd5b60608112156200051357600080fd5b6200051d62000452565b6200052886620004ba565b81526200053860208701620004ba565b60208201526040868101519082015293506080605f19820112156200055c57600080fd5b506200056762000489565b60608581015182526080860151602083015260a0860151604083015260c08601519082015291506200059c60e08501620004d7565b90509250925092565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6001600160401b03828116828216039080821115620005f457620005f4620005bb565b5092915050565b60006001600160401b038281166002600160401b03198101620006225762000622620005bb565b6001019392505050565b608051612d776200065660003960008181611182015281816111ab015261132a0152612d776000f3fe6080604052600436106101b75760003560e01c80638584d23f116100ec578063c23b9e9e1161008a578063e030330111610064578063e030330114610636578063f2fde38b14610656578063f567616014610676578063f9e50d191461069657600080fd5b8063c23b9e9e146105b1578063c8e5e498146105ea578063d24d933d1461060657600080fd5b80639baa3cc9116100c65780639baa3cc9146104a55780639fdb54a7146104c5578063ad3cb1cc1461051b578063b5adea3c1461055957600080fd5b80638584d23f1461040b5780638da5cb5b1461044857806396c1ca611461048557600080fd5b8063378ec23b1161015957806352d1902d1161013357806352d1902d146103a057806369cc6a04146103b5578063715018a6146103ca578063826e41fc146103df57600080fd5b8063378ec23b1461032d578063426d31941461034a5780634f1ef2861461038d57600080fd5b80632063d4f7116101955780632063d4f7146102695780632d52aad6146102895780632f79889d146102b6578063313df7b1146102f557600080fd5b8063013fa5fc146101bc57806302b592f3146101de5780630d8e6e2c1461023c575b600080fd5b3480156101c857600080fd5b506101dc6101d73660046121eb565b6106ab565b005b3480156101ea57600080fd5b506101fe6101f9366004612206565b61075e565b60405161023394939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b34801561024857600080fd5b50604080516001815260006020820181905291810191909152606001610233565b34801561027557600080fd5b506101dc61028436600461237c565b6107a9565b34801561029557600080fd5b506101dc6102a4366004612206565b600a805460ff19166001179055600b55565b3480156102c257600080fd5b506008546102dd90600160c01b90046001600160401b031681565b6040516001600160401b039091168152602001610233565b34801561030157600080fd5b50600854610315906001600160a01b031681565b6040516001600160a01b039091168152602001610233565b34801561033957600080fd5b50435b604051908152602001610233565b34801561035657600080fd5b5060005460015460025460035461036d9392919084565b604080519485526020850193909352918301526060820152608001610233565b6101dc61039b366004612530565b610904565b3480156103ac57600080fd5b5061033c610923565b3480156103c157600080fd5b506101dc610940565b3480156103d657600080fd5b506101dc6109af565b3480156103eb57600080fd5b506008546001600160a01b031615155b6040519015158152602001610233565b34801561041757600080fd5b5061042b610426366004612206565b6109c1565b604080519283526001600160401b03909116602083015201610233565b34801561045457600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610315565b34801561049157600080fd5b506101dc6104a03660046125e9565b610af4565b3480156104b157600080fd5b506101dc6104c0366004612604565b610b7d565b3480156104d157600080fd5b506006546007546104f5916001600160401b0380821692600160401b909204169083565b604080516001600160401b03948516815293909216602084015290820152606001610233565b34801561052757600080fd5b5061054c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161023391906126b4565b34801561056557600080fd5b506101dc6105743660046126e7565b80516006805460208401516001600160401b03908116600160401b026001600160801b031990921693169290921791909117905560400151600755565b3480156105bd57600080fd5b506008546105d590600160a01b900463ffffffff1681565b60405163ffffffff9091168152602001610233565b3480156105f657600080fd5b506101dc600a805460ff19169055565b34801561061257600080fd5b506004546005546104f5916001600160401b0380821692600160401b909204169083565b34801561064257600080fd5b506103fb610651366004612703565b610ca1565b34801561066257600080fd5b506101dc6106713660046121eb565b610cd7565b34801561068257600080fd5b506101dc610691366004612725565b610d1a565b3480156106a257600080fd5b5060095461033c565b6106b3610dc8565b6001600160a01b0381166106da5760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036107095760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061076e57600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156107ce57506008546001600160a01b03163314155b156107ec576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b039182169116111580610825575060065460208301516001600160401b03600160401b9092048216911611155b156108435760405163051c46ef60e01b815260040160405180910390fd5b6108508260400151610e23565b61085a8282610e93565b81516006805460208501516001600160401b03908116600160401b026001600160801b031990921693169290921791909117905560408201516007556108a76108a04390565b4284610f8b565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516108f891815260200190565b60405180910390a35050565b61090c611177565b6109158261121c565b61091f828261125d565b5050565b600061092d61131f565b50600080516020612d4b83398151915290565b610948610dc8565b6008546001600160a01b03161561099457600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b6109b7610dc8565b6109ad6000611368565b600980546000918291906109d6600183612830565b815481106109e6576109e6612843565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a2757604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610aed578460098281548110610a5757610a57612843565b6000918252602090912060029091020154600160801b90046001600160401b031610610ae55760098181548110610a9057610a90612843565b90600052602060002090600202016001015460098281548110610ab557610ab5612843565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a3b565b5050915091565b610afc610dc8565b610e108163ffffffff161080610b1b57506301e133808163ffffffff16115b80610b39575060085463ffffffff600160a01b909104811690821611155b15610b57576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610bc25750825b90506000826001600160401b03166001148015610bde5750303b155b905081158015610bec575080155b15610c0a5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c3457845460ff60401b1916600160401b1785555b610c3d866113d9565b610c456113ea565b610c508989896113f2565b8315610c9657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600a5460009060ff16610cbd57610cb88383611523565b610cce565b81600b5484610ccc9190612830565b115b90505b92915050565b610cdf610dc8565b6001600160a01b038116610d0e57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d1781611368565b50565b610d2660096000611ed9565b60005b815181101561091f576009828281518110610d4657610d46612843565b602090810291909101810151825460018181018555600094855293839020825160029092020180549383015160408401516001600160401b03908116600160801b0267ffffffffffffffff60801b19928216600160401b026001600160801b031990971691909416179490941793909316178255606001519082015501610d29565b33610dfa7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109ad5760405163118cdaa760e01b8152336004820152602401610d05565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181108061091f5760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610d05565b6000610e9d611680565b9050610ea7611efa565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273__$5c5c07cf4f55be9472c2b47d897172e765$__9063ce537a7790610f2790859085908890600401612a60565b602060405180830381865af4158015610f44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f689190612c8f565b610f85576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611001575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610fcb57610fcb612843565b6000918252602090912060029091020154610ff690600160401b90046001600160401b031684612cb1565b6001600160401b0316115b1561109557600854600980549091600160c01b90046001600160401b031690811061102e5761102e612843565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b031690601861106f83612cd8565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806111fe57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111f2600080516020612d4b833981519152546001600160a01b031690565b6001600160a01b031614155b156109ad5760405163703e46dd60e11b815260040160405180910390fd5b611224610dc8565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d90602001610753565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156112b7575060408051601f3d908101601f191682019092526112b491810190612cfe565b60015b6112df57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d05565b600080516020612d4b833981519152811461131057604051632a87526960e21b815260048101829052602401610d05565b61131a8383611cb0565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109ad5760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6113e1611d06565b610d1781611d4f565b6109ad611d06565b82516001600160401b0316151580611416575060208301516001600160401b031615155b8061142357506020820151155b8061143057506040820151155b8061143d57506060820151155b8061144757508151155b806114595750610e108163ffffffff16105b8061146d57506301e133808163ffffffff16115b1561148b576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b039485166001600160801b03199384168117600160401b9690921695909502908117909355604080880151600581905587516000559187015160015586015160025560608601516003556006805490921690931790911790556007556008805463ffffffff60a01b1916600160a01b63ffffffff84160217905561131a434285610f8b565b60095460009043841180611535575080155b806115805750600854600980549091600160c01b90046001600160401b031690811061156357611563612843565b60009182526020909120600290910201546001600160401b031684105b1561159e5760405163b0b4387760e01b815260040160405180910390fd5b600080806115ad600185612830565b90505b8161164b57600854600160c01b90046001600160401b0316811061164b5786600982815481106115e2576115e2612843565b60009182526020909120600290910201546001600160401b03161161163957600191506009818154811061161857611618612843565b60009182526020909120600290910201546001600160401b0316925061164b565b8061164381612d17565b9150506115b0565b816116695760405163b0b4387760e01b815260040160405180910390fd5b856116748489612830565b11979650505050505050565b611688611f18565b620100008152600760208201527f1369aa78dc50135ad756d62c97a64a0edcd30066584168200d9d1facf82ca4f56040820151527f2cf23456d712b06f8e3aa5bf0acc3e46a3d094602a3a2b99d873bba05a4391476020604083015101527f08a35f379d2d2c490a51006697275e4db79b67b4a175c1477e262d29e25e42316060820151527f218828131bb7940ccc88c561b299755af4bf0b71ed930b129e8be0a1218139ea6020606083015101527f23a2172436c1145b36d5bc6d3b31fa1610c73a543ea443918aaa3ee175f9921b6080820151527f2502adf404d62877c310214ae9942e93c40b154d34c024bab48a3ca057e60a116020608083015101527f1bb88ada91ab7734882f7826b81275320081ac485f9cf8bfbc3ba54b6eb4dff360a0820151527f25c74a27e9a3b20114a3a91f31c20f01777e7ed913e0ef949f0285e2e7c2069b602060a083015101527f12b0ce76ac8b0dbd405ebc5dd0bae0f91aed50033c7ea36fc62aaba2b98333dc60c0820151527f185b42af49dd1cbe337a84f74b704172428e754a0bea024ab3eb2f996afb2c47602060c083015101527f21f53ad4538b45438bbf0521446070223920e3df6f9022a64cc16d7f94e85c0860e0820151527f2278ac3dedfdac7feb9725a022497175518eada52c8932fc40e6e75bea889fb8602060e083015101527f0876136f81c16298487bfb1be74d4a3487ec45645ab1d09dc2e5b865d62230df610100820151527f098c641c947ecd798dfd5e1b2fe428024cdf03061a53ff774ea8a9e3de9d3f2b602061010083015101527f15eaac2c6232d2268bf79dc47ed9666f992fb3d96ad23fb21690c21586c5472e610120820151527f0f10f1ffc54881287fda6f200bc85d8245b508d844a974098a41119867b325d0602061012083015101527f0895ceea40b085534e9739ca5442ba48b3a3592affde2b509df74521b47d8ab0610140820151527f2e12ec5800ac92fe2a8e7040bc5b435b9eb71e31380173fa7688bf81fcbba455602061014083015101527f2f5384eb5653e47576efe248e7903f463243414bfed5237dda750df3996bd918610160820151527f1c3cd6b11da8704cdc871ab4fa323d7ee57bd40ce165b49a56d5ef6489cd251a602061016083015101527f13579994957ce1554cc1e5b194fb63c9513707f627414f8442681ae736e36450610180820151527f26c9bdcd96d8e420b12974ade93ad9c312c4185213d2f6831a7c625a18890e95602061018083015101527f0cc70a1d542a9a1535ae5d9201696adc5c99c1bcebd9951dfa8afec79fa0b6446101a0820151527f10b043d9f1869181b96579d6616efc17a5df7b84c4d431d966c9094bf1e8815360206101a083015101527f198a65309d131a43b0ab1c47659d0336cfbf62b27f4727106b4fd971c73dd4036101c0820151527f23df99eac3c1947903b211b800efeb76f47d5e87b7414866543492e8c7798d1a60206101c083015101527f221cc5e47b81ce8dcfa72ef981916a8eddef12fcde59c56c62830c126ebef0de6101e0820151527f231f99340c35c9e09652a6df73c9cec5d88738cb71ff45716fdc9e9e45a4926e60206101e083015101527f2c9f1489fce0f263e03f3e97bf0a72273aafcca9325ff47786adb04a52a6d22c610200820151527f21f66e28f17e01e9fd593e16d022c4eca25bd5db96daec606d97b604cc414838602061020083015101527f2015745604a9571e226bd99043cfaf1f96267cc5de67f497563ff81100531d26610220820151527f206889ff4c58dd08ee1107191a2a5bc5dbae55c49d7d8397801799868d10f805602061022083015101527f21062ab8f8ecd8932b429a1eb8614b1e03db61bff6a5cd2d5d7ea193e90e9927610240820151527f217f9b27b934b88ffe555d682dfe6e8b6d503f86b14bbd96342bc48487a60b27602061024083015101527f1c9eda2d195cb731f903235ead6a4f7c66db49da713ecb27afee076f0eea7154610260820151527f2647c161c00b90258e1cefebb17481f8a5d91b5f9dca626e3e89a9215bcca16a602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611cb982611d57565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611cfe5761131a8282611dbc565b61091f611e32565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166109ad57604051631afcd79f60e31b815260040160405180910390fd5b610cdf611d06565b806001600160a01b03163b600003611d8d57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d05565b600080516020612d4b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611dd99190612d2e565b600060405180830381855af49150503d8060008114611e14576040519150601f19603f3d011682016040523d82523d6000602084013e611e19565b606091505b5091509150611e29858383611e51565b95945050505050565b34156109ad5760405163b398979f60e01b815260040160405180910390fd5b606082611e6657611e6182611eb0565b611ea9565b8151158015611e7d57506001600160a01b0384163b155b15611ea657604051639996b31560e01b81526001600160a01b0385166004820152602401610d05565b50805b9392505050565b805115611ec05780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b5080546000825560020290600052602060002090810190610d1791906121a5565b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611f4f604051806040016040528060008152602001600081525090565b8152602001611f71604051806040016040528060008152602001600081525090565b8152602001611f93604051806040016040528060008152602001600081525090565b8152602001611fb5604051806040016040528060008152602001600081525090565b8152602001611fd7604051806040016040528060008152602001600081525090565b8152602001611ff9604051806040016040528060008152602001600081525090565b815260200161201b604051806040016040528060008152602001600081525090565b815260200161203d604051806040016040528060008152602001600081525090565b815260200161205f604051806040016040528060008152602001600081525090565b8152602001612081604051806040016040528060008152602001600081525090565b81526020016120a3604051806040016040528060008152602001600081525090565b81526020016120c5604051806040016040528060008152602001600081525090565b81526020016120e7604051806040016040528060008152602001600081525090565b8152602001612109604051806040016040528060008152602001600081525090565b815260200161212b604051806040016040528060008152602001600081525090565b815260200161214d604051806040016040528060008152602001600081525090565b815260200161216f604051806040016040528060008152602001600081525090565b8152602001612191604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b5b808211156121cb5780546001600160c01b0319168155600060018201556002016121a6565b5090565b80356001600160a01b03811681146121e657600080fd5b919050565b6000602082840312156121fd57600080fd5b610cce826121cf565b60006020828403121561221857600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156122585761225861221f565b60405290565b604051608081016001600160401b03811182821017156122585761225861221f565b604051601f8201601f191681016001600160401b03811182821017156122a8576122a861221f565b604052919050565b80356001600160401b03811681146121e657600080fd5b6000606082840312156122d957600080fd5b604051606081018181106001600160401b03821117156122fb576122fb61221f565b60405290508061230a836122b0565b8152612318602084016122b0565b6020820152604083013560408201525092915050565b60006040828403121561234057600080fd5b604051604081018181106001600160401b03821117156123625761236261221f565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561239157600080fd5b61239b85856122c7565b925061048080605f19830112156123b157600080fd5b6123b9612235565b91506123c8866060870161232e565b82526123d78660a0870161232e565b60208301526123e98660e0870161232e565b60408301526101206123fd8782880161232e565b60608401526101606124118882890161232e565b60808501526101a061242589828a0161232e565b60a08601526101e06124398a828b0161232e565b60c087015261022061244d8b828c0161232e565b60e08801526102606124618c828d0161232e565b6101008901526102a06124768d828e0161232e565b878a01526124888d6102e08e0161232e565b6101408a015261249c8d6103208e0161232e565b868a01526124ae8d6103608e0161232e565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561254357600080fd5b61254c836121cf565b91506020808401356001600160401b038082111561256957600080fd5b818601915086601f83011261257d57600080fd5b81358181111561258f5761258f61221f565b6125a1601f8201601f19168501612280565b915080825287848285010111156125b757600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146121e657600080fd5b6000602082840312156125fb57600080fd5b610cce826125d5565b60008060008084860361012081121561261c57600080fd5b61262687876122c7565b94506080605f198201121561263a57600080fd5b5061264361225e565b60608681013582526080870135602083015260a0870135604083015260c087013590820152925061267660e086016125d5565b915061268561010086016121cf565b905092959194509250565b60005b838110156126ab578181015183820152602001612693565b50506000910152565b60208152600082518060208401526126d3816040850160208701612690565b601f01601f19169190910160400192915050565b6000606082840312156126f957600080fd5b610cce83836122c7565b6000806040838503121561271657600080fd5b50508035926020909101359150565b6000602080838503121561273857600080fd5b82356001600160401b038082111561274f57600080fd5b818501915085601f83011261276357600080fd5b8135818111156127755761277561221f565b612783848260051b01612280565b818152848101925060079190911b8301840190878211156127a357600080fd5b928401925b8184101561280f57608084890312156127c15760008081fd5b6127c961225e565b6127d2856122b0565b81526127df8686016122b0565b8682015260406127f08187016122b0565b90820152606085810135908201528352608090930192918401916127a8565b979650505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cd157610cd161281a565b634e487b7160e01b600052603260045260246000fd5b8060005b6007811015610f8557815184526020938401939091019060010161285d565b61289182825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e08401525060808101516101006128f48185018380518252602090810151910152565b60a083015191506101406129148186018480518252602090810151910152565b60c084015192506101806129348187018580518252602090810151910152565b60e085015193506101c06129548188018680518252602090810151910152565b928501519350610200926129748785018680518252602090810151910152565b61012086015194506102406129958189018780518252602090810151910152565b928601519450610280926129b58885018780518252602090810151910152565b61016087015195506102c06129d6818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a608201905084518252602085015160208301526040850151612a93604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a0850151610100612ae08185018380518252602090810151910152565b60c08701519150610140612b008186018480518252602090810151910152565b60e08801519250610180612b208187018580518252602090810151910152565b9188015192506101c091612b408684018580518252602090810151910152565b6101208901519350610200612b618188018680518252602090810151910152565b91890151935061024091612b818784018680518252602090810151910152565b6101608a01519450610280612ba28189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612c79610500830185612859565b612c876105e083018461287c565b949350505050565b600060208284031215612ca157600080fd5b81518015158114611ea957600080fd5b6001600160401b03828116828216039080821115612cd157612cd161281a565b5092915050565b60006001600160401b03808316818103612cf457612cf461281a565b6001019392505050565b600060208284031215612d1057600080fd5b5051919050565b600081612d2657612d2661281a565b506000190190565b60008251612d40818460208701612690565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a" +"0x60a0604052306080523480156200001557600080fd5b5060405162003136380380620031368339810160408190526200003891620002e0565b6200004262000058565b6200004f8383836200010c565b50505062000399565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000a95760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001095780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b82516001600160401b031615158062000131575060208301516001600160401b031615155b806200013f57506020820151155b806200014d57506040820151155b806200015b57506060820151155b806200016657508151155b80620001795750610e108163ffffffff16105b806200018e57506301e133808163ffffffff16115b15620001ad576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b0390811668010000000000000000026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b604051606081016001600160401b03811182821017156200027757634e487b7160e01b600052604160045260246000fd5b60405290565b604051608081016001600160401b03811182821017156200027757634e487b7160e01b600052604160045260246000fd5b80516001600160401b0381168114620002c657600080fd5b919050565b805163ffffffff81168114620002c657600080fd5b6000806000838503610100811215620002f857600080fd5b60608112156200030757600080fd5b6200031162000246565b6200031c86620002ae565b81526200032c60208701620002ae565b60208201526040868101519082015293506080605f19820112156200035057600080fd5b506200035b6200027d565b60608581015182526080860151602083015260a0860151604083015260c08601519082015291506200039060e08501620002cb565b90509250925092565b608051612d73620003c360003960008181611182015281816111ab015261132a0152612d736000f3fe6080604052600436106101b75760003560e01c80638584d23f116100ec578063c23b9e9e1161008a578063e030330111610064578063e030330114610636578063f2fde38b14610656578063f567616014610676578063f9e50d191461069657600080fd5b8063c23b9e9e146105b1578063c8e5e498146105ea578063d24d933d1461060657600080fd5b80639baa3cc9116100c65780639baa3cc9146104a55780639fdb54a7146104c5578063ad3cb1cc1461051b578063b5adea3c1461055957600080fd5b80638584d23f1461040b5780638da5cb5b1461044857806396c1ca611461048557600080fd5b8063378ec23b1161015957806352d1902d1161013357806352d1902d146103a057806369cc6a04146103b5578063715018a6146103ca578063826e41fc146103df57600080fd5b8063378ec23b1461032d578063426d31941461034a5780634f1ef2861461038d57600080fd5b80632063d4f7116101955780632063d4f7146102695780632d52aad6146102895780632f79889d146102b6578063313df7b1146102f557600080fd5b8063013fa5fc146101bc57806302b592f3146101de5780630d8e6e2c1461023c575b600080fd5b3480156101c857600080fd5b506101dc6101d73660046121e7565b6106ab565b005b3480156101ea57600080fd5b506101fe6101f9366004612202565b61075e565b60405161023394939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b34801561024857600080fd5b50604080516001815260006020820181905291810191909152606001610233565b34801561027557600080fd5b506101dc610284366004612378565b6107a9565b34801561029557600080fd5b506101dc6102a4366004612202565b600a805460ff19166001179055600b55565b3480156102c257600080fd5b506008546102dd90600160c01b90046001600160401b031681565b6040516001600160401b039091168152602001610233565b34801561030157600080fd5b50600854610315906001600160a01b031681565b6040516001600160a01b039091168152602001610233565b34801561033957600080fd5b50435b604051908152602001610233565b34801561035657600080fd5b5060005460015460025460035461036d9392919084565b604080519485526020850193909352918301526060820152608001610233565b6101dc61039b36600461252c565b610904565b3480156103ac57600080fd5b5061033c610923565b3480156103c157600080fd5b506101dc610940565b3480156103d657600080fd5b506101dc6109af565b3480156103eb57600080fd5b506008546001600160a01b031615155b6040519015158152602001610233565b34801561041757600080fd5b5061042b610426366004612202565b6109c1565b604080519283526001600160401b03909116602083015201610233565b34801561045457600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610315565b34801561049157600080fd5b506101dc6104a03660046125e5565b610af4565b3480156104b157600080fd5b506101dc6104c0366004612600565b610b7d565b3480156104d157600080fd5b506006546007546104f5916001600160401b0380821692600160401b909204169083565b604080516001600160401b03948516815293909216602084015290820152606001610233565b34801561052757600080fd5b5061054c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161023391906126b0565b34801561056557600080fd5b506101dc6105743660046126e3565b80516006805460208401516001600160401b03908116600160401b026001600160801b031990921693169290921791909117905560400151600755565b3480156105bd57600080fd5b506008546105d590600160a01b900463ffffffff1681565b60405163ffffffff9091168152602001610233565b3480156105f657600080fd5b506101dc600a805460ff19169055565b34801561061257600080fd5b506004546005546104f5916001600160401b0380821692600160401b909204169083565b34801561064257600080fd5b506103fb6106513660046126ff565b610ca1565b34801561066257600080fd5b506101dc6106713660046121e7565b610cd7565b34801561068257600080fd5b506101dc610691366004612721565b610d1a565b3480156106a257600080fd5b5060095461033c565b6106b3610dc8565b6001600160a01b0381166106da5760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036107095760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061076e57600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156107ce57506008546001600160a01b03163314155b156107ec576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b039182169116111580610825575060065460208301516001600160401b03600160401b9092048216911611155b156108435760405163051c46ef60e01b815260040160405180910390fd5b6108508260400151610e23565b61085a8282610e93565b81516006805460208501516001600160401b03908116600160401b026001600160801b031990921693169290921791909117905560408201516007556108a76108a04390565b4284610f8b565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516108f891815260200190565b60405180910390a35050565b61090c611177565b6109158261121c565b61091f828261125d565b5050565b600061092d61131f565b50600080516020612d4783398151915290565b610948610dc8565b6008546001600160a01b03161561099457600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b6109b7610dc8565b6109ad6000611368565b600980546000918291906109d660018361282c565b815481106109e6576109e661283f565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a2757604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610aed578460098281548110610a5757610a5761283f565b6000918252602090912060029091020154600160801b90046001600160401b031610610ae55760098181548110610a9057610a9061283f565b90600052602060002090600202016001015460098281548110610ab557610ab561283f565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a3b565b5050915091565b610afc610dc8565b610e108163ffffffff161080610b1b57506301e133808163ffffffff16115b80610b39575060085463ffffffff600160a01b909104811690821611155b15610b57576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610bc25750825b90506000826001600160401b03166001148015610bde5750303b155b905081158015610bec575080155b15610c0a5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c3457845460ff60401b1916600160401b1785555b610c3d866113d9565b610c456113ea565b610c508989896113f2565b8315610c9657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600a5460009060ff16610cbd57610cb8838361151f565b610cce565b81600b5484610ccc919061282c565b115b90505b92915050565b610cdf610dc8565b6001600160a01b038116610d0e57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d1781611368565b50565b610d2660096000611ed5565b60005b815181101561091f576009828281518110610d4657610d4661283f565b602090810291909101810151825460018181018555600094855293839020825160029092020180549383015160408401516001600160401b03908116600160801b0267ffffffffffffffff60801b19928216600160401b026001600160801b031990971691909416179490941793909316178255606001519082015501610d29565b33610dfa7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109ad5760405163118cdaa760e01b8152336004820152602401610d05565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181108061091f5760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610d05565b6000610e9d61167c565b9050610ea7611ef6565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273__$5c5c07cf4f55be9472c2b47d897172e765$__9063ce537a7790610f2790859085908890600401612a5c565b602060405180830381865af4158015610f44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f689190612c8b565b610f85576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611001575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610fcb57610fcb61283f565b6000918252602090912060029091020154610ff690600160401b90046001600160401b031684612cad565b6001600160401b0316115b1561109557600854600980549091600160c01b90046001600160401b031690811061102e5761102e61283f565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b031690601861106f83612cd4565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806111fe57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111f2600080516020612d47833981519152546001600160a01b031690565b6001600160a01b031614155b156109ad5760405163703e46dd60e11b815260040160405180910390fd5b611224610dc8565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d90602001610753565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156112b7575060408051601f3d908101601f191682019092526112b491810190612cfa565b60015b6112df57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d05565b600080516020612d47833981519152811461131057604051632a87526960e21b815260048101829052602401610d05565b61131a8383611cac565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109ad5760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6113e1611d02565b610d1781611d4b565b6109ad611d02565b82516001600160401b0316151580611416575060208301516001600160401b031615155b8061142357506020820151155b8061143057506040820151155b8061143d57506060820151155b8061144757508151155b806114595750610e108163ffffffff16105b8061146d57506301e133808163ffffffff16115b1561148b576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b60095460009043841180611531575080155b8061157c5750600854600980549091600160c01b90046001600160401b031690811061155f5761155f61283f565b60009182526020909120600290910201546001600160401b031684105b1561159a5760405163b0b4387760e01b815260040160405180910390fd5b600080806115a960018561282c565b90505b8161164757600854600160c01b90046001600160401b031681106116475786600982815481106115de576115de61283f565b60009182526020909120600290910201546001600160401b0316116116355760019150600981815481106116145761161461283f565b60009182526020909120600290910201546001600160401b03169250611647565b8061163f81612d13565b9150506115ac565b816116655760405163b0b4387760e01b815260040160405180910390fd5b85611670848961282c565b11979650505050505050565b611684611f14565b620100008152600760208201527f1369aa78dc50135ad756d62c97a64a0edcd30066584168200d9d1facf82ca4f56040820151527f2cf23456d712b06f8e3aa5bf0acc3e46a3d094602a3a2b99d873bba05a4391476020604083015101527f08a35f379d2d2c490a51006697275e4db79b67b4a175c1477e262d29e25e42316060820151527f218828131bb7940ccc88c561b299755af4bf0b71ed930b129e8be0a1218139ea6020606083015101527f23a2172436c1145b36d5bc6d3b31fa1610c73a543ea443918aaa3ee175f9921b6080820151527f2502adf404d62877c310214ae9942e93c40b154d34c024bab48a3ca057e60a116020608083015101527f1bb88ada91ab7734882f7826b81275320081ac485f9cf8bfbc3ba54b6eb4dff360a0820151527f25c74a27e9a3b20114a3a91f31c20f01777e7ed913e0ef949f0285e2e7c2069b602060a083015101527f12b0ce76ac8b0dbd405ebc5dd0bae0f91aed50033c7ea36fc62aaba2b98333dc60c0820151527f185b42af49dd1cbe337a84f74b704172428e754a0bea024ab3eb2f996afb2c47602060c083015101527f21f53ad4538b45438bbf0521446070223920e3df6f9022a64cc16d7f94e85c0860e0820151527f2278ac3dedfdac7feb9725a022497175518eada52c8932fc40e6e75bea889fb8602060e083015101527f0876136f81c16298487bfb1be74d4a3487ec45645ab1d09dc2e5b865d62230df610100820151527f098c641c947ecd798dfd5e1b2fe428024cdf03061a53ff774ea8a9e3de9d3f2b602061010083015101527f15eaac2c6232d2268bf79dc47ed9666f992fb3d96ad23fb21690c21586c5472e610120820151527f0f10f1ffc54881287fda6f200bc85d8245b508d844a974098a41119867b325d0602061012083015101527f0895ceea40b085534e9739ca5442ba48b3a3592affde2b509df74521b47d8ab0610140820151527f2e12ec5800ac92fe2a8e7040bc5b435b9eb71e31380173fa7688bf81fcbba455602061014083015101527f2f5384eb5653e47576efe248e7903f463243414bfed5237dda750df3996bd918610160820151527f1c3cd6b11da8704cdc871ab4fa323d7ee57bd40ce165b49a56d5ef6489cd251a602061016083015101527f13579994957ce1554cc1e5b194fb63c9513707f627414f8442681ae736e36450610180820151527f26c9bdcd96d8e420b12974ade93ad9c312c4185213d2f6831a7c625a18890e95602061018083015101527f0cc70a1d542a9a1535ae5d9201696adc5c99c1bcebd9951dfa8afec79fa0b6446101a0820151527f10b043d9f1869181b96579d6616efc17a5df7b84c4d431d966c9094bf1e8815360206101a083015101527f198a65309d131a43b0ab1c47659d0336cfbf62b27f4727106b4fd971c73dd4036101c0820151527f23df99eac3c1947903b211b800efeb76f47d5e87b7414866543492e8c7798d1a60206101c083015101527f221cc5e47b81ce8dcfa72ef981916a8eddef12fcde59c56c62830c126ebef0de6101e0820151527f231f99340c35c9e09652a6df73c9cec5d88738cb71ff45716fdc9e9e45a4926e60206101e083015101527f2c9f1489fce0f263e03f3e97bf0a72273aafcca9325ff47786adb04a52a6d22c610200820151527f21f66e28f17e01e9fd593e16d022c4eca25bd5db96daec606d97b604cc414838602061020083015101527f2015745604a9571e226bd99043cfaf1f96267cc5de67f497563ff81100531d26610220820151527f206889ff4c58dd08ee1107191a2a5bc5dbae55c49d7d8397801799868d10f805602061022083015101527f21062ab8f8ecd8932b429a1eb8614b1e03db61bff6a5cd2d5d7ea193e90e9927610240820151527f217f9b27b934b88ffe555d682dfe6e8b6d503f86b14bbd96342bc48487a60b27602061024083015101527f1c9eda2d195cb731f903235ead6a4f7c66db49da713ecb27afee076f0eea7154610260820151527f2647c161c00b90258e1cefebb17481f8a5d91b5f9dca626e3e89a9215bcca16a602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611cb582611d53565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611cfa5761131a8282611db8565b61091f611e2e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166109ad57604051631afcd79f60e31b815260040160405180910390fd5b610cdf611d02565b806001600160a01b03163b600003611d8957604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d05565b600080516020612d4783398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611dd59190612d2a565b600060405180830381855af49150503d8060008114611e10576040519150601f19603f3d011682016040523d82523d6000602084013e611e15565b606091505b5091509150611e25858383611e4d565b95945050505050565b34156109ad5760405163b398979f60e01b815260040160405180910390fd5b606082611e6257611e5d82611eac565b611ea5565b8151158015611e7957506001600160a01b0384163b155b15611ea257604051639996b31560e01b81526001600160a01b0385166004820152602401610d05565b50805b9392505050565b805115611ebc5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b5080546000825560020290600052602060002090810190610d1791906121a1565b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611f4b604051806040016040528060008152602001600081525090565b8152602001611f6d604051806040016040528060008152602001600081525090565b8152602001611f8f604051806040016040528060008152602001600081525090565b8152602001611fb1604051806040016040528060008152602001600081525090565b8152602001611fd3604051806040016040528060008152602001600081525090565b8152602001611ff5604051806040016040528060008152602001600081525090565b8152602001612017604051806040016040528060008152602001600081525090565b8152602001612039604051806040016040528060008152602001600081525090565b815260200161205b604051806040016040528060008152602001600081525090565b815260200161207d604051806040016040528060008152602001600081525090565b815260200161209f604051806040016040528060008152602001600081525090565b81526020016120c1604051806040016040528060008152602001600081525090565b81526020016120e3604051806040016040528060008152602001600081525090565b8152602001612105604051806040016040528060008152602001600081525090565b8152602001612127604051806040016040528060008152602001600081525090565b8152602001612149604051806040016040528060008152602001600081525090565b815260200161216b604051806040016040528060008152602001600081525090565b815260200161218d604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b5b808211156121c75780546001600160c01b0319168155600060018201556002016121a2565b5090565b80356001600160a01b03811681146121e257600080fd5b919050565b6000602082840312156121f957600080fd5b610cce826121cb565b60006020828403121561221457600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156122545761225461221b565b60405290565b604051608081016001600160401b03811182821017156122545761225461221b565b604051601f8201601f191681016001600160401b03811182821017156122a4576122a461221b565b604052919050565b80356001600160401b03811681146121e257600080fd5b6000606082840312156122d557600080fd5b604051606081018181106001600160401b03821117156122f7576122f761221b565b604052905080612306836122ac565b8152612314602084016122ac565b6020820152604083013560408201525092915050565b60006040828403121561233c57600080fd5b604051604081018181106001600160401b038211171561235e5761235e61221b565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561238d57600080fd5b61239785856122c3565b925061048080605f19830112156123ad57600080fd5b6123b5612231565b91506123c4866060870161232a565b82526123d38660a0870161232a565b60208301526123e58660e0870161232a565b60408301526101206123f98782880161232a565b606084015261016061240d8882890161232a565b60808501526101a061242189828a0161232a565b60a08601526101e06124358a828b0161232a565b60c08701526102206124498b828c0161232a565b60e088015261026061245d8c828d0161232a565b6101008901526102a06124728d828e0161232a565b878a01526124848d6102e08e0161232a565b6101408a01526124988d6103208e0161232a565b868a01526124aa8d6103608e0161232a565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561253f57600080fd5b612548836121cb565b91506020808401356001600160401b038082111561256557600080fd5b818601915086601f83011261257957600080fd5b81358181111561258b5761258b61221b565b61259d601f8201601f1916850161227c565b915080825287848285010111156125b357600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146121e257600080fd5b6000602082840312156125f757600080fd5b610cce826125d1565b60008060008084860361012081121561261857600080fd5b61262287876122c3565b94506080605f198201121561263657600080fd5b5061263f61225a565b60608681013582526080870135602083015260a0870135604083015260c087013590820152925061267260e086016125d1565b915061268161010086016121cb565b905092959194509250565b60005b838110156126a757818101518382015260200161268f565b50506000910152565b60208152600082518060208401526126cf81604085016020870161268c565b601f01601f19169190910160400192915050565b6000606082840312156126f557600080fd5b610cce83836122c3565b6000806040838503121561271257600080fd5b50508035926020909101359150565b6000602080838503121561273457600080fd5b82356001600160401b038082111561274b57600080fd5b818501915085601f83011261275f57600080fd5b8135818111156127715761277161221b565b61277f848260051b0161227c565b818152848101925060079190911b83018401908782111561279f57600080fd5b928401925b8184101561280b57608084890312156127bd5760008081fd5b6127c561225a565b6127ce856122ac565b81526127db8686016122ac565b8682015260406127ec8187016122ac565b90820152606085810135908201528352608090930192918401916127a4565b979650505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cd157610cd1612816565b634e487b7160e01b600052603260045260246000fd5b8060005b6007811015610f85578151845260209384019390910190600101612859565b61288d82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e08401525060808101516101006128f08185018380518252602090810151910152565b60a083015191506101406129108186018480518252602090810151910152565b60c084015192506101806129308187018580518252602090810151910152565b60e085015193506101c06129508188018680518252602090810151910152565b928501519350610200926129708785018680518252602090810151910152565b61012086015194506102406129918189018780518252602090810151910152565b928601519450610280926129b18885018780518252602090810151910152565b61016087015195506102c06129d2818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a608201905084518252602085015160208301526040850151612a8f604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a0850151610100612adc8185018380518252602090810151910152565b60c08701519150610140612afc8186018480518252602090810151910152565b60e08801519250610180612b1c8187018580518252602090810151910152565b9188015192506101c091612b3c8684018580518252602090810151910152565b6101208901519350610200612b5d8188018680518252602090810151910152565b91890151935061024091612b7d8784018680518252602090810151910152565b6101608a01519450610280612b9e8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612c75610500830185612855565b612c836105e0830184612878565b949350505050565b600060208284031215612c9d57600080fd5b81518015158114611ea557600080fd5b6001600160401b03828116828216039080821115612ccd57612ccd612816565b5092915050565b60006001600160401b03808316818103612cf057612cf0612816565b6001019392505050565b600060208284031215612d0c57600080fd5b5051919050565b600081612d2257612d22612816565b506000190190565b60008251612d3c81846020870161268c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a" diff --git a/contract-bindings/artifacts/LightClient_bytecode.json b/contract-bindings/artifacts/LightClient_bytecode.json index 656720cbea..659973104a 100644 --- a/contract-bindings/artifacts/LightClient_bytecode.json +++ b/contract-bindings/artifacts/LightClient_bytecode.json @@ -1 +1 @@ -"0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612a0a62000104600039600081816110d0015281816110f901526112780152612a0a6000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610482578063c23b9e9e146104c0578063d24d933d146104f9578063e030330114610529578063f2fde38b14610549578063f9e50d191461056957600080fd5b8063826e41fc146103465780638584d23f146103725780638da5cb5b146103af57806396c1ca61146103ec5780639baa3cc91461040c5780639fdb54a71461042c57600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b15780634f1ef286146102f457806352d1902d1461030757806369cc6a041461031c578063715018a61461033157600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b366004611f90565b61057e565b005b34801561017e57600080fd5b5061019261018d366004611fab565b610631565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b506101706102183660046120ff565b61067c565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b50435b6040519081526020016101c7565b3480156102bd57600080fd5b506000546001546002546003546102d49392919084565b6040805194855260208501939093529183015260608201526080016101c7565b6101706103023660046122b3565b6107d7565b34801561031357600080fd5b506102a36107f6565b34801561032857600080fd5b50610170610813565b34801561033d57600080fd5b50610170610882565b34801561035257600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561037e57600080fd5b5061039261038d366004611fab565b610894565b604080519283526001600160401b039091166020830152016101c7565b3480156103bb57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103f857600080fd5b5061017061040736600461236c565b6109c7565b34801561041857600080fd5b50610170610427366004612387565b610a50565b34801561043857600080fd5b5060065460075461045c916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561048e57600080fd5b506104b3604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c79190612458565b3480156104cc57600080fd5b506008546104e490600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050557600080fd5b5060045460055461045c916001600160401b0380821692600160401b909204169083565b34801561053557600080fd5b5061036261054436600461248b565b610b74565b34801561055557600080fd5b50610170610564366004611f90565b610cd3565b34801561057557600080fd5b506009546102a3565b610586610d16565b6001600160a01b0381166105ad5760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105dc5760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064157600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a157506008546001600160a01b03163314155b156106bf576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106f8575060065460208301516001600160401b03600160401b9092048216911611155b156107165760405163051c46ef60e01b815260040160405180910390fd5b6107238260400151610d71565b61072d8282610de1565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561077a6107734390565b4284610ed9565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107cb91815260200190565b60405180910390a35050565b6107df6110c5565b6107e88261116a565b6107f282826111ab565b5050565b600061080061126d565b506000805160206129de83398151915290565b61081b610d16565b6008546001600160a01b03161561086757600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b61088a610d16565b61088060006112b6565b600980546000918291906108a96001836124c3565b815481106108b9576108b96124d6565b6000918252602090912060029091020154600160801b90046001600160401b03168411156108fa57604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b818110156109c057846009828154811061092a5761092a6124d6565b6000918252602090912060029091020154600160801b90046001600160401b0316106109b85760098181548110610963576109636124d6565b90600052602060002090600202016001015460098281548110610988576109886124d6565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b60010161090e565b5050915091565b6109cf610d16565b610e108163ffffffff1610806109ee57506301e133808163ffffffff16115b80610a0c575060085463ffffffff600160a01b909104811690821611155b15610a2a576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610a955750825b90506000826001600160401b03166001148015610ab15750303b155b905081158015610abf575080155b15610add5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b0757845460ff60401b1916600160401b1785555b610b1086611327565b610b18611338565b610b23898989611340565b8315610b6957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b60095460009043841180610b86575080155b80610bd15750600854600980549091600160c01b90046001600160401b0316908110610bb457610bb46124d6565b60009182526020909120600290910201546001600160401b031684105b15610bef5760405163b0b4387760e01b815260040160405180910390fd5b60008080610bfe6001856124c3565b90505b81610c9c57600854600160c01b90046001600160401b03168110610c9c578660098281548110610c3357610c336124d6565b60009182526020909120600290910201546001600160401b031611610c8a576001915060098181548110610c6957610c696124d6565b60009182526020909120600290910201546001600160401b03169250610c9c565b80610c94816124ec565b915050610c01565b81610cba5760405163b0b4387760e01b815260040160405180910390fd5b85610cc584896124c3565b119450505050505b92915050565b610cdb610d16565b6001600160a01b038116610d0a57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d13816112b6565b50565b33610d487f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146108805760405163118cdaa760e01b8152336004820152602401610d01565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806107f25760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610d01565b6000610deb611471565b9050610df5611cc9565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273__$5c5c07cf4f55be9472c2b47d897172e765$__9063ce537a7790610e759085908590889060040161270a565b602060405180830381865af4158015610e92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb69190612939565b610ed3576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590610f4f575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610f1957610f196124d6565b6000918252602090912060029091020154610f4490600160401b90046001600160401b03168461295b565b6001600160401b0316115b15610fe357600854600980549091600160c01b90046001600160401b0316908110610f7c57610f7c6124d6565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b0316906018610fbd83612982565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061114c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111406000805160206129de833981519152546001600160a01b031690565b6001600160a01b031614155b156108805760405163703e46dd60e11b815260040160405180910390fd5b611172610d16565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d90602001610626565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611205575060408051601f3d908101601f19168201909252611202918101906129a8565b60015b61122d57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d01565b6000805160206129de833981519152811461125e57604051632a87526960e21b815260048101829052602401610d01565b6112688383611aa0565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108805760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61132f611af6565b610d1381611b3f565b610880611af6565b82516001600160401b0316151580611364575060208301516001600160401b031615155b8061137157506020820151155b8061137e57506040820151155b8061138b57506060820151155b8061139557508151155b806113a75750610e108163ffffffff16105b806113bb57506301e133808163ffffffff16115b156113d9576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b039485166001600160801b03199384168117600160401b9690921695909502908117909355604080880151600581905587516000559187015160015586015160025560608601516003556006805490921690931790911790556007556008805463ffffffff60a01b1916600160a01b63ffffffff841602179055611268434285610ed9565b611479611ce7565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611aa982611b47565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611aee576112688282611bac565b6107f2611c22565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661088057604051631afcd79f60e31b815260040160405180910390fd5b610cdb611af6565b806001600160a01b03163b600003611b7d57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d01565b6000805160206129de83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611bc991906129c1565b600060405180830381855af49150503d8060008114611c04576040519150601f19603f3d011682016040523d82523d6000602084013e611c09565b606091505b5091509150611c19858383611c41565b95945050505050565b34156108805760405163b398979f60e01b815260040160405180910390fd5b606082611c5657611c5182611ca0565b611c99565b8151158015611c6d57506001600160a01b0384163b155b15611c9657604051639996b31560e01b81526001600160a01b0385166004820152602401610d01565b50805b9392505050565b805115611cb05780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611d1e604051806040016040528060008152602001600081525090565b8152602001611d40604051806040016040528060008152602001600081525090565b8152602001611d62604051806040016040528060008152602001600081525090565b8152602001611d84604051806040016040528060008152602001600081525090565b8152602001611da6604051806040016040528060008152602001600081525090565b8152602001611dc8604051806040016040528060008152602001600081525090565b8152602001611dea604051806040016040528060008152602001600081525090565b8152602001611e0c604051806040016040528060008152602001600081525090565b8152602001611e2e604051806040016040528060008152602001600081525090565b8152602001611e50604051806040016040528060008152602001600081525090565b8152602001611e72604051806040016040528060008152602001600081525090565b8152602001611e94604051806040016040528060008152602001600081525090565b8152602001611eb6604051806040016040528060008152602001600081525090565b8152602001611ed8604051806040016040528060008152602001600081525090565b8152602001611efa604051806040016040528060008152602001600081525090565b8152602001611f1c604051806040016040528060008152602001600081525090565b8152602001611f3e604051806040016040528060008152602001600081525090565b8152602001611f60604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b0381168114611f8b57600080fd5b919050565b600060208284031215611fa257600080fd5b611c9982611f74565b600060208284031215611fbd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b0381118282101715611ffd57611ffd611fc4565b60405290565b604051601f8201601f191681016001600160401b038111828210171561202b5761202b611fc4565b604052919050565b80356001600160401b0381168114611f8b57600080fd5b60006060828403121561205c57600080fd5b604051606081018181106001600160401b038211171561207e5761207e611fc4565b60405290508061208d83612033565b815261209b60208401612033565b6020820152604083013560408201525092915050565b6000604082840312156120c357600080fd5b604051604081018181106001600160401b03821117156120e5576120e5611fc4565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561211457600080fd5b61211e858561204a565b925061048080605f198301121561213457600080fd5b61213c611fda565b915061214b86606087016120b1565b825261215a8660a087016120b1565b602083015261216c8660e087016120b1565b6040830152610120612180878288016120b1565b6060840152610160612194888289016120b1565b60808501526101a06121a889828a016120b1565b60a08601526101e06121bc8a828b016120b1565b60c08701526102206121d08b828c016120b1565b60e08801526102606121e48c828d016120b1565b6101008901526102a06121f98d828e016120b1565b878a015261220b8d6102e08e016120b1565b6101408a015261221f8d6103208e016120b1565b868a01526122318d6103608e016120b1565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b600080604083850312156122c657600080fd5b6122cf83611f74565b91506020808401356001600160401b03808211156122ec57600080fd5b818601915086601f83011261230057600080fd5b81358181111561231257612312611fc4565b612324601f8201601f19168501612003565b9150808252878482850101111561233a57600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff81168114611f8b57600080fd5b60006020828403121561237e57600080fd5b611c9982612358565b60008060008084860361012081121561239f57600080fd5b6123a9878761204a565b94506080605f19820112156123bd57600080fd5b50604051608081018181106001600160401b03821117156123e0576123e0611fc4565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061241a60e08601612358565b91506124296101008601611f74565b905092959194509250565b60005b8381101561244f578181015183820152602001612437565b50506000910152565b6020815260008251806020840152612477816040850160208701612434565b601f01601f19169190910160400192915050565b6000806040838503121561249e57600080fd5b50508035926020909101359150565b634e487b7160e01b600052601160045260246000fd5b81810381811115610ccd57610ccd6124ad565b634e487b7160e01b600052603260045260246000fd5b6000816124fb576124fb6124ad565b506000190190565b8060005b6007811015610ed3578151845260209384019390910190600101612507565b61253b82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061259e8185018380518252602090810151910152565b60a083015191506101406125be8186018480518252602090810151910152565b60c084015192506101806125de8187018580518252602090810151910152565b60e085015193506101c06125fe8188018680518252602090810151910152565b9285015193506102009261261e8785018680518252602090810151910152565b610120860151945061024061263f8189018780518252602090810151910152565b9286015194506102809261265f8885018780518252602090810151910152565b61016087015195506102c0612680818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a60820190508451825260208501516020830152604085015161273d604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061278a8185018380518252602090810151910152565b60c087015191506101406127aa8186018480518252602090810151910152565b60e088015192506101806127ca8187018580518252602090810151910152565b9188015192506101c0916127ea8684018580518252602090810151910152565b610120890151935061020061280b8188018680518252602090810151910152565b9189015193506102409161282b8784018680518252602090810151910152565b6101608a0151945061028061284c8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612923610500830185612503565b6129316105e0830184612526565b949350505050565b60006020828403121561294b57600080fd5b81518015158114611c9957600080fd5b6001600160401b0382811682821603908082111561297b5761297b6124ad565b5092915050565b60006001600160401b0380831681810361299e5761299e6124ad565b6001019392505050565b6000602082840312156129ba57600080fd5b5051919050565b600082516129d3818460208701612434565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a" +"0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612a0662000104600039600081816110d0015281816110f901526112780152612a066000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610482578063c23b9e9e146104c0578063d24d933d146104f9578063e030330114610529578063f2fde38b14610549578063f9e50d191461056957600080fd5b8063826e41fc146103465780638584d23f146103725780638da5cb5b146103af57806396c1ca61146103ec5780639baa3cc91461040c5780639fdb54a71461042c57600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b15780634f1ef286146102f457806352d1902d1461030757806369cc6a041461031c578063715018a61461033157600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b366004611f8c565b61057e565b005b34801561017e57600080fd5b5061019261018d366004611fa7565b610631565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b506101706102183660046120fb565b61067c565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b50435b6040519081526020016101c7565b3480156102bd57600080fd5b506000546001546002546003546102d49392919084565b6040805194855260208501939093529183015260608201526080016101c7565b6101706103023660046122af565b6107d7565b34801561031357600080fd5b506102a36107f6565b34801561032857600080fd5b50610170610813565b34801561033d57600080fd5b50610170610882565b34801561035257600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561037e57600080fd5b5061039261038d366004611fa7565b610894565b604080519283526001600160401b039091166020830152016101c7565b3480156103bb57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103f857600080fd5b50610170610407366004612368565b6109c7565b34801561041857600080fd5b50610170610427366004612383565b610a50565b34801561043857600080fd5b5060065460075461045c916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561048e57600080fd5b506104b3604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c79190612454565b3480156104cc57600080fd5b506008546104e490600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050557600080fd5b5060045460055461045c916001600160401b0380821692600160401b909204169083565b34801561053557600080fd5b50610362610544366004612487565b610b74565b34801561055557600080fd5b50610170610564366004611f8c565b610cd3565b34801561057557600080fd5b506009546102a3565b610586610d16565b6001600160a01b0381166105ad5760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105dc5760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064157600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a157506008546001600160a01b03163314155b156106bf576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106f8575060065460208301516001600160401b03600160401b9092048216911611155b156107165760405163051c46ef60e01b815260040160405180910390fd5b6107238260400151610d71565b61072d8282610de1565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561077a6107734390565b4284610ed9565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107cb91815260200190565b60405180910390a35050565b6107df6110c5565b6107e88261116a565b6107f282826111ab565b5050565b600061080061126d565b506000805160206129da83398151915290565b61081b610d16565b6008546001600160a01b03161561086757600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b61088a610d16565b61088060006112b6565b600980546000918291906108a96001836124bf565b815481106108b9576108b96124d2565b6000918252602090912060029091020154600160801b90046001600160401b03168411156108fa57604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b818110156109c057846009828154811061092a5761092a6124d2565b6000918252602090912060029091020154600160801b90046001600160401b0316106109b85760098181548110610963576109636124d2565b90600052602060002090600202016001015460098281548110610988576109886124d2565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b60010161090e565b5050915091565b6109cf610d16565b610e108163ffffffff1610806109ee57506301e133808163ffffffff16115b80610a0c575060085463ffffffff600160a01b909104811690821611155b15610a2a576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610a955750825b90506000826001600160401b03166001148015610ab15750303b155b905081158015610abf575080155b15610add5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b0757845460ff60401b1916600160401b1785555b610b1086611327565b610b18611338565b610b23898989611340565b8315610b6957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b60095460009043841180610b86575080155b80610bd15750600854600980549091600160c01b90046001600160401b0316908110610bb457610bb46124d2565b60009182526020909120600290910201546001600160401b031684105b15610bef5760405163b0b4387760e01b815260040160405180910390fd5b60008080610bfe6001856124bf565b90505b81610c9c57600854600160c01b90046001600160401b03168110610c9c578660098281548110610c3357610c336124d2565b60009182526020909120600290910201546001600160401b031611610c8a576001915060098181548110610c6957610c696124d2565b60009182526020909120600290910201546001600160401b03169250610c9c565b80610c94816124e8565b915050610c01565b81610cba5760405163b0b4387760e01b815260040160405180910390fd5b85610cc584896124bf565b119450505050505b92915050565b610cdb610d16565b6001600160a01b038116610d0a57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d13816112b6565b50565b33610d487f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146108805760405163118cdaa760e01b8152336004820152602401610d01565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806107f25760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610d01565b6000610deb61146d565b9050610df5611cc5565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273__$5c5c07cf4f55be9472c2b47d897172e765$__9063ce537a7790610e7590859085908890600401612706565b602060405180830381865af4158015610e92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb69190612935565b610ed3576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590610f4f575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610f1957610f196124d2565b6000918252602090912060029091020154610f4490600160401b90046001600160401b031684612957565b6001600160401b0316115b15610fe357600854600980549091600160c01b90046001600160401b0316908110610f7c57610f7c6124d2565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b0316906018610fbd8361297e565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061114c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111406000805160206129da833981519152546001600160a01b031690565b6001600160a01b031614155b156108805760405163703e46dd60e11b815260040160405180910390fd5b611172610d16565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d90602001610626565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611205575060408051601f3d908101601f19168201909252611202918101906129a4565b60015b61122d57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d01565b6000805160206129da833981519152811461125e57604051632a87526960e21b815260048101829052602401610d01565b6112688383611a9c565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108805760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61132f611af2565b610d1381611b3b565b610880611af2565b82516001600160401b0316151580611364575060208301516001600160401b031615155b8061137157506020820151155b8061137e57506040820151155b8061138b57506060820151155b8061139557508151155b806113a75750610e108163ffffffff16105b806113bb57506301e133808163ffffffff16115b156113d9576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b611475611ce3565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611aa582611b43565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611aea576112688282611ba8565b6107f2611c1e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661088057604051631afcd79f60e31b815260040160405180910390fd5b610cdb611af2565b806001600160a01b03163b600003611b7957604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d01565b6000805160206129da83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611bc591906129bd565b600060405180830381855af49150503d8060008114611c00576040519150601f19603f3d011682016040523d82523d6000602084013e611c05565b606091505b5091509150611c15858383611c3d565b95945050505050565b34156108805760405163b398979f60e01b815260040160405180910390fd5b606082611c5257611c4d82611c9c565b611c95565b8151158015611c6957506001600160a01b0384163b155b15611c9257604051639996b31560e01b81526001600160a01b0385166004820152602401610d01565b50805b9392505050565b805115611cac5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611d1a604051806040016040528060008152602001600081525090565b8152602001611d3c604051806040016040528060008152602001600081525090565b8152602001611d5e604051806040016040528060008152602001600081525090565b8152602001611d80604051806040016040528060008152602001600081525090565b8152602001611da2604051806040016040528060008152602001600081525090565b8152602001611dc4604051806040016040528060008152602001600081525090565b8152602001611de6604051806040016040528060008152602001600081525090565b8152602001611e08604051806040016040528060008152602001600081525090565b8152602001611e2a604051806040016040528060008152602001600081525090565b8152602001611e4c604051806040016040528060008152602001600081525090565b8152602001611e6e604051806040016040528060008152602001600081525090565b8152602001611e90604051806040016040528060008152602001600081525090565b8152602001611eb2604051806040016040528060008152602001600081525090565b8152602001611ed4604051806040016040528060008152602001600081525090565b8152602001611ef6604051806040016040528060008152602001600081525090565b8152602001611f18604051806040016040528060008152602001600081525090565b8152602001611f3a604051806040016040528060008152602001600081525090565b8152602001611f5c604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b0381168114611f8757600080fd5b919050565b600060208284031215611f9e57600080fd5b611c9582611f70565b600060208284031215611fb957600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b0381118282101715611ff957611ff9611fc0565b60405290565b604051601f8201601f191681016001600160401b038111828210171561202757612027611fc0565b604052919050565b80356001600160401b0381168114611f8757600080fd5b60006060828403121561205857600080fd5b604051606081018181106001600160401b038211171561207a5761207a611fc0565b6040529050806120898361202f565b81526120976020840161202f565b6020820152604083013560408201525092915050565b6000604082840312156120bf57600080fd5b604051604081018181106001600160401b03821117156120e1576120e1611fc0565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561211057600080fd5b61211a8585612046565b925061048080605f198301121561213057600080fd5b612138611fd6565b915061214786606087016120ad565b82526121568660a087016120ad565b60208301526121688660e087016120ad565b604083015261012061217c878288016120ad565b6060840152610160612190888289016120ad565b60808501526101a06121a489828a016120ad565b60a08601526101e06121b88a828b016120ad565b60c08701526102206121cc8b828c016120ad565b60e08801526102606121e08c828d016120ad565b6101008901526102a06121f58d828e016120ad565b878a01526122078d6102e08e016120ad565b6101408a015261221b8d6103208e016120ad565b868a015261222d8d6103608e016120ad565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b600080604083850312156122c257600080fd5b6122cb83611f70565b91506020808401356001600160401b03808211156122e857600080fd5b818601915086601f8301126122fc57600080fd5b81358181111561230e5761230e611fc0565b612320601f8201601f19168501611fff565b9150808252878482850101111561233657600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff81168114611f8757600080fd5b60006020828403121561237a57600080fd5b611c9582612354565b60008060008084860361012081121561239b57600080fd5b6123a58787612046565b94506080605f19820112156123b957600080fd5b50604051608081018181106001600160401b03821117156123dc576123dc611fc0565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061241660e08601612354565b91506124256101008601611f70565b905092959194509250565b60005b8381101561244b578181015183820152602001612433565b50506000910152565b6020815260008251806020840152612473816040850160208701612430565b601f01601f19169190910160400192915050565b6000806040838503121561249a57600080fd5b50508035926020909101359150565b634e487b7160e01b600052601160045260246000fd5b81810381811115610ccd57610ccd6124a9565b634e487b7160e01b600052603260045260246000fd5b6000816124f7576124f76124a9565b506000190190565b8060005b6007811015610ed3578151845260209384019390910190600101612503565b61253782825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061259a8185018380518252602090810151910152565b60a083015191506101406125ba8186018480518252602090810151910152565b60c084015192506101806125da8187018580518252602090810151910152565b60e085015193506101c06125fa8188018680518252602090810151910152565b9285015193506102009261261a8785018680518252602090810151910152565b610120860151945061024061263b8189018780518252602090810151910152565b9286015194506102809261265b8885018780518252602090810151910152565b61016087015195506102c061267c818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a608201905084518252602085015160208301526040850151612739604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a08501516101006127868185018380518252602090810151910152565b60c087015191506101406127a68186018480518252602090810151910152565b60e088015192506101806127c68187018580518252602090810151910152565b9188015192506101c0916127e68684018580518252602090810151910152565b61012089015193506102006128078188018680518252602090810151910152565b918901519350610240916128278784018680518252602090810151910152565b6101608a015194506102806128488189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e083015261291f6105008301856124ff565b61292d6105e0830184612522565b949350505050565b60006020828403121561294757600080fd5b81518015158114611c9557600080fd5b6001600160401b03828116828216039080821115612977576129776124a9565b5092915050565b60006001600160401b0380831681810361299a5761299a6124a9565b6001019392505050565b6000602082840312156129b657600080fd5b5051919050565b600082516129cf818460208701612430565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a" diff --git a/contract-bindings/src/lib.rs b/contract-bindings/src/lib.rs index ee76dcf578..b7027bac63 100644 --- a/contract-bindings/src/lib.rs +++ b/contract-bindings/src/lib.rs @@ -7,6 +7,7 @@ pub mod erc1967_proxy; pub mod fee_contract; pub mod i_plonk_verifier; pub mod light_client; +pub mod light_client_arbitrum; pub mod light_client_mock; pub mod light_client_state_update_vk; pub mod light_client_state_update_vk_mock; diff --git a/contract-bindings/src/light_client_arbitrum.rs b/contract-bindings/src/light_client_arbitrum.rs new file mode 100644 index 0000000000..2e509b0a02 --- /dev/null +++ b/contract-bindings/src/light_client_arbitrum.rs @@ -0,0 +1,3240 @@ +pub use light_client_arbitrum::*; +/// This module was auto-generated with ethers-rs Abigen. +/// More information at: +#[allow( + clippy::enum_variant_names, + clippy::too_many_arguments, + clippy::upper_case_acronyms, + clippy::type_complexity, + dead_code, + non_camel_case_types +)] +pub mod light_client_arbitrum { + pub use super::super::shared_types::*; + #[allow(deprecated)] + fn __abi() -> ::ethers::core::abi::Abi { + ::ethers::core::abi::ethabi::Contract { + constructor: ::core::option::Option::Some(::ethers::core::abi::ethabi::Constructor { + inputs: ::std::vec![], + }), + functions: ::core::convert::From::from([ + ( + ::std::borrow::ToOwned::to_owned("UPGRADE_INTERFACE_VERSION"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("UPGRADE_INTERFACE_VERSION",), + inputs: ::std::vec![], + outputs: ::std::vec![::ethers::core::abi::ethabi::Param { + name: ::std::string::String::new(), + kind: ::ethers::core::abi::ethabi::ParamType::String, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("string"), + ), + },], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("currentBlockNumber"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("currentBlockNumber"), + inputs: ::std::vec![], + outputs: ::std::vec![::ethers::core::abi::ethabi::Param { + name: ::std::string::String::new(), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint256"), + ), + },], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("disablePermissionedProverMode"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("disablePermissionedProverMode",), + inputs: ::std::vec![], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("finalizedState"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("finalizedState"), + inputs: ::std::vec![], + outputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("viewNum"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint64"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("blockHeight"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint64"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("blockCommRoot"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("BN254.ScalarField"), + ), + }, + ], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("genesisStakeTableState"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("genesisStakeTableState",), + inputs: ::std::vec![], + outputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("threshold"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint256"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("blsKeyComm"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("BN254.ScalarField"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("schnorrKeyComm"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("BN254.ScalarField"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("amountComm"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("BN254.ScalarField"), + ), + }, + ], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("genesisState"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("genesisState"), + inputs: ::std::vec![], + outputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("viewNum"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint64"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("blockHeight"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint64"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("blockCommRoot"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("BN254.ScalarField"), + ), + }, + ], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("getHotShotCommitment"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("getHotShotCommitment",), + inputs: ::std::vec![::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("hotShotBlockHeight",), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint256"), + ), + },], + outputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("hotShotBlockCommRoot",), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("BN254.ScalarField"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("hotshotBlockHeight",), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint64"), + ), + }, + ], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("getStateHistoryCount"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("getStateHistoryCount",), + inputs: ::std::vec![], + outputs: ::std::vec![::ethers::core::abi::ethabi::Param { + name: ::std::string::String::new(), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint256"), + ), + },], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("getVersion"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("getVersion"), + inputs: ::std::vec![], + outputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("majorVersion"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint8"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("minorVersion"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint8"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("patchVersion"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(8usize), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint8"), + ), + }, + ], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::Pure, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("initialize"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("initialize"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("_genesis"), + kind: ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ],), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned( + "struct LightClient.LightClientState", + ), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("_genesisStakeTableState",), + kind: ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ],), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned( + "struct LightClient.StakeTableState", + ), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned( + "_stateHistoryRetentionPeriod", + ), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint32"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("owner"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address"), + ), + }, + ], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("isPermissionedProverEnabled"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("isPermissionedProverEnabled",), + inputs: ::std::vec![], + outputs: ::std::vec![::ethers::core::abi::ethabi::Param { + name: ::std::string::String::new(), + kind: ::ethers::core::abi::ethabi::ParamType::Bool, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("bool"), + ), + },], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("lagOverEscapeHatchThreshold"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("lagOverEscapeHatchThreshold",), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("blockNumber"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint256"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("blockThreshold"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint256"), + ), + }, + ], + outputs: ::std::vec![::ethers::core::abi::ethabi::Param { + name: ::std::string::String::new(), + kind: ::ethers::core::abi::ethabi::ParamType::Bool, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("bool"), + ), + },], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("newFinalizedState"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("newFinalizedState"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("newState"), + kind: ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ],), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned( + "struct LightClient.LightClientState", + ), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("proof"), + kind: ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ],), + ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ],), + ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ],), + ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ],), + ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ],), + ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ],), + ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ],), + ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ],), + ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ],), + ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ],), + ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ],), + ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ],), + ::ethers::core::abi::ethabi::ParamType::Tuple(::std::vec![ + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ],), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ::ethers::core::abi::ethabi::ParamType::Uint(256usize), + ],), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned( + "struct IPlonkVerifier.PlonkProof", + ), + ), + }, + ], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("owner"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("owner"), + inputs: ::std::vec![], + outputs: ::std::vec![::ethers::core::abi::ethabi::Param { + name: ::std::string::String::new(), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address"), + ), + },], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("permissionedProver"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("permissionedProver"), + inputs: ::std::vec![], + outputs: ::std::vec![::ethers::core::abi::ethabi::Param { + name: ::std::string::String::new(), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address"), + ), + },], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("proxiableUUID"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("proxiableUUID"), + inputs: ::std::vec![], + outputs: ::std::vec![::ethers::core::abi::ethabi::Param { + name: ::std::string::String::new(), + kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("bytes32"), + ), + },], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("renounceOwnership"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("renounceOwnership"), + inputs: ::std::vec![], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("setPermissionedProver"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("setPermissionedProver",), + inputs: ::std::vec![::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("prover"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address"), + ), + },], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("setstateHistoryRetentionPeriod"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("setstateHistoryRetentionPeriod",), + inputs: ::std::vec![::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("historySeconds"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint32"), + ), + },], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("stateHistoryCommitments"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("stateHistoryCommitments",), + inputs: ::std::vec![::ethers::core::abi::ethabi::Param { + name: ::std::string::String::new(), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint256"), + ), + },], + outputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("l1BlockHeight"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint64"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("l1BlockTimestamp"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint64"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("hotShotBlockHeight",), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint64"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("hotShotBlockCommRoot",), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("BN254.ScalarField"), + ), + }, + ], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("stateHistoryFirstIndex"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("stateHistoryFirstIndex",), + inputs: ::std::vec![], + outputs: ::std::vec![::ethers::core::abi::ethabi::Param { + name: ::std::string::String::new(), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint64"), + ), + },], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("stateHistoryRetentionPeriod"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("stateHistoryRetentionPeriod",), + inputs: ::std::vec![], + outputs: ::std::vec![::ethers::core::abi::ethabi::Param { + name: ::std::string::String::new(), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(32usize), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("uint32"), + ), + },], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::View, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("transferOwnership"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("transferOwnership"), + inputs: ::std::vec![::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("newOwner"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address"), + ), + },], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("upgradeToAndCall"), + ::std::vec![::ethers::core::abi::ethabi::Function { + name: ::std::borrow::ToOwned::to_owned("upgradeToAndCall"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("newImplementation"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address"), + ), + }, + ::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("data"), + kind: ::ethers::core::abi::ethabi::ParamType::Bytes, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("bytes"), + ), + }, + ], + outputs: ::std::vec![], + constant: ::core::option::Option::None, + state_mutability: ::ethers::core::abi::ethabi::StateMutability::Payable, + },], + ), + ]), + events: ::core::convert::From::from([ + ( + ::std::borrow::ToOwned::to_owned("Initialized"), + ::std::vec![::ethers::core::abi::ethabi::Event { + name: ::std::borrow::ToOwned::to_owned("Initialized"), + inputs: ::std::vec![::ethers::core::abi::ethabi::EventParam { + name: ::std::borrow::ToOwned::to_owned("version"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + indexed: false, + },], + anonymous: false, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("NewState"), + ::std::vec![::ethers::core::abi::ethabi::Event { + name: ::std::borrow::ToOwned::to_owned("NewState"), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::EventParam { + name: ::std::borrow::ToOwned::to_owned("viewNum"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + indexed: true, + }, + ::ethers::core::abi::ethabi::EventParam { + name: ::std::borrow::ToOwned::to_owned("blockHeight"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(64usize), + indexed: true, + }, + ::ethers::core::abi::ethabi::EventParam { + name: ::std::borrow::ToOwned::to_owned("blockCommRoot"), + kind: ::ethers::core::abi::ethabi::ParamType::Uint(256usize,), + indexed: false, + }, + ], + anonymous: false, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("OwnershipTransferred"), + ::std::vec![::ethers::core::abi::ethabi::Event { + name: ::std::borrow::ToOwned::to_owned("OwnershipTransferred",), + inputs: ::std::vec![ + ::ethers::core::abi::ethabi::EventParam { + name: ::std::borrow::ToOwned::to_owned("previousOwner"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + indexed: true, + }, + ::ethers::core::abi::ethabi::EventParam { + name: ::std::borrow::ToOwned::to_owned("newOwner"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + indexed: true, + }, + ], + anonymous: false, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("PermissionedProverNotRequired"), + ::std::vec![::ethers::core::abi::ethabi::Event { + name: ::std::borrow::ToOwned::to_owned("PermissionedProverNotRequired",), + inputs: ::std::vec![], + anonymous: false, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("PermissionedProverRequired"), + ::std::vec![::ethers::core::abi::ethabi::Event { + name: ::std::borrow::ToOwned::to_owned("PermissionedProverRequired",), + inputs: ::std::vec![::ethers::core::abi::ethabi::EventParam { + name: ::std::borrow::ToOwned::to_owned("permissionedProver",), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + indexed: false, + },], + anonymous: false, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("Upgrade"), + ::std::vec![::ethers::core::abi::ethabi::Event { + name: ::std::borrow::ToOwned::to_owned("Upgrade"), + inputs: ::std::vec![::ethers::core::abi::ethabi::EventParam { + name: ::std::borrow::ToOwned::to_owned("implementation"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + indexed: false, + },], + anonymous: false, + },], + ), + ( + ::std::borrow::ToOwned::to_owned("Upgraded"), + ::std::vec![::ethers::core::abi::ethabi::Event { + name: ::std::borrow::ToOwned::to_owned("Upgraded"), + inputs: ::std::vec![::ethers::core::abi::ethabi::EventParam { + name: ::std::borrow::ToOwned::to_owned("implementation"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + indexed: true, + },], + anonymous: false, + },], + ), + ]), + errors: ::core::convert::From::from([ + ( + ::std::borrow::ToOwned::to_owned("AddressEmptyCode"), + ::std::vec![::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("AddressEmptyCode"), + inputs: ::std::vec![::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("target"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address"), + ), + },], + },], + ), + ( + ::std::borrow::ToOwned::to_owned("ERC1967InvalidImplementation"), + ::std::vec![::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("ERC1967InvalidImplementation",), + inputs: ::std::vec![::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("implementation"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address"), + ), + },], + },], + ), + ( + ::std::borrow::ToOwned::to_owned("ERC1967NonPayable"), + ::std::vec![::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("ERC1967NonPayable"), + inputs: ::std::vec![], + },], + ), + ( + ::std::borrow::ToOwned::to_owned("FailedInnerCall"), + ::std::vec![::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("FailedInnerCall"), + inputs: ::std::vec![], + },], + ), + ( + ::std::borrow::ToOwned::to_owned("InsufficientSnapshotHistory"), + ::std::vec![::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("InsufficientSnapshotHistory",), + inputs: ::std::vec![], + },], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidAddress"), + ::std::vec![::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("InvalidAddress"), + inputs: ::std::vec![], + },], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidArgs"), + ::std::vec![::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("InvalidArgs"), + inputs: ::std::vec![], + },], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidHotShotBlockForCommitmentCheck"), + ::std::vec![::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned( + "InvalidHotShotBlockForCommitmentCheck", + ), + inputs: ::std::vec![], + },], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidInitialization"), + ::std::vec![::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("InvalidInitialization",), + inputs: ::std::vec![], + },], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidMaxStateHistory"), + ::std::vec![::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("InvalidMaxStateHistory",), + inputs: ::std::vec![], + },], + ), + ( + ::std::borrow::ToOwned::to_owned("InvalidProof"), + ::std::vec![::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("InvalidProof"), + inputs: ::std::vec![], + },], + ), + ( + ::std::borrow::ToOwned::to_owned("NoChangeRequired"), + ::std::vec![::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("NoChangeRequired"), + inputs: ::std::vec![], + },], + ), + ( + ::std::borrow::ToOwned::to_owned("NotInitializing"), + ::std::vec![::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("NotInitializing"), + inputs: ::std::vec![], + },], + ), + ( + ::std::borrow::ToOwned::to_owned("OutdatedState"), + ::std::vec![::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("OutdatedState"), + inputs: ::std::vec![], + },], + ), + ( + ::std::borrow::ToOwned::to_owned("OwnableInvalidOwner"), + ::std::vec![::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("OwnableInvalidOwner",), + inputs: ::std::vec![::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("owner"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address"), + ), + },], + },], + ), + ( + ::std::borrow::ToOwned::to_owned("OwnableUnauthorizedAccount"), + ::std::vec![::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("OwnableUnauthorizedAccount",), + inputs: ::std::vec![::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("account"), + kind: ::ethers::core::abi::ethabi::ParamType::Address, + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("address"), + ), + },], + },], + ), + ( + ::std::borrow::ToOwned::to_owned("ProverNotPermissioned"), + ::std::vec![::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("ProverNotPermissioned",), + inputs: ::std::vec![], + },], + ), + ( + ::std::borrow::ToOwned::to_owned("UUPSUnauthorizedCallContext"), + ::std::vec![::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("UUPSUnauthorizedCallContext",), + inputs: ::std::vec![], + },], + ), + ( + ::std::borrow::ToOwned::to_owned("UUPSUnsupportedProxiableUUID"), + ::std::vec![::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("UUPSUnsupportedProxiableUUID",), + inputs: ::std::vec![::ethers::core::abi::ethabi::Param { + name: ::std::borrow::ToOwned::to_owned("slot"), + kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(32usize,), + internal_type: ::core::option::Option::Some( + ::std::borrow::ToOwned::to_owned("bytes32"), + ), + },], + },], + ), + ( + ::std::borrow::ToOwned::to_owned("WrongStakeTableUsed"), + ::std::vec![::ethers::core::abi::ethabi::AbiError { + name: ::std::borrow::ToOwned::to_owned("WrongStakeTableUsed",), + inputs: ::std::vec![], + },], + ), + ]), + receive: false, + fallback: false, + } + } + ///The parsed JSON ABI of the contract. + pub static LIGHTCLIENTARBITRUM_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = + ::ethers::contract::Lazy::new(__abi); + pub struct LightClientArbitrum(::ethers::contract::Contract); + impl ::core::clone::Clone for LightClientArbitrum { + fn clone(&self) -> Self { + Self(::core::clone::Clone::clone(&self.0)) + } + } + impl ::core::ops::Deref for LightClientArbitrum { + type Target = ::ethers::contract::Contract; + fn deref(&self) -> &Self::Target { + &self.0 + } + } + impl ::core::ops::DerefMut for LightClientArbitrum { + fn deref_mut(&mut self) -> &mut Self::Target { + &mut self.0 + } + } + impl ::core::fmt::Debug for LightClientArbitrum { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + f.debug_tuple(::core::stringify!(LightClientArbitrum)) + .field(&self.address()) + .finish() + } + } + impl LightClientArbitrum { + /// Creates a new contract instance with the specified `ethers` client at + /// `address`. The contract derefs to a `ethers::Contract` object. + pub fn new>( + address: T, + client: ::std::sync::Arc, + ) -> Self { + Self(::ethers::contract::Contract::new( + address.into(), + LIGHTCLIENTARBITRUM_ABI.clone(), + client, + )) + } + ///Calls the contract's `UPGRADE_INTERFACE_VERSION` (0xad3cb1cc) function + pub fn upgrade_interface_version( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([173, 60, 177, 204], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `currentBlockNumber` (0x378ec23b) function + pub fn current_block_number( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([55, 142, 194, 59], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `disablePermissionedProverMode` (0x69cc6a04) function + pub fn disable_permissioned_prover_mode( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([105, 204, 106, 4], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `finalizedState` (0x9fdb54a7) function + pub fn finalized_state( + &self, + ) -> ::ethers::contract::builders::ContractCall + { + self.0 + .method_hash([159, 219, 84, 167], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `genesisStakeTableState` (0x426d3194) function + pub fn genesis_stake_table_state( + &self, + ) -> ::ethers::contract::builders::ContractCall< + M, + ( + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ::ethers::core::types::U256, + ), + > { + self.0 + .method_hash([66, 109, 49, 148], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `genesisState` (0xd24d933d) function + pub fn genesis_state( + &self, + ) -> ::ethers::contract::builders::ContractCall + { + self.0 + .method_hash([210, 77, 147, 61], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getHotShotCommitment` (0x8584d23f) function + pub fn get_hot_shot_commitment( + &self, + hot_shot_block_height: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall + { + self.0 + .method_hash([133, 132, 210, 63], hot_shot_block_height) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getStateHistoryCount` (0xf9e50d19) function + pub fn get_state_history_count( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([249, 229, 13, 25], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `getVersion` (0x0d8e6e2c) function + pub fn get_version(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([13, 142, 110, 44], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `initialize` (0x9baa3cc9) function + pub fn initialize( + &self, + genesis: LightClientState, + genesis_stake_table_state: StakeTableState, + state_history_retention_period: u32, + owner: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash( + [155, 170, 60, 201], + ( + genesis, + genesis_stake_table_state, + state_history_retention_period, + owner, + ), + ) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `isPermissionedProverEnabled` (0x826e41fc) function + pub fn is_permissioned_prover_enabled( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([130, 110, 65, 252], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `lagOverEscapeHatchThreshold` (0xe0303301) function + pub fn lag_over_escape_hatch_threshold( + &self, + block_number: ::ethers::core::types::U256, + block_threshold: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([224, 48, 51, 1], (block_number, block_threshold)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `newFinalizedState` (0x2063d4f7) function + pub fn new_finalized_state( + &self, + new_state: LightClientState, + proof: PlonkProof, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([32, 99, 212, 247], (new_state, proof)) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `owner` (0x8da5cb5b) function + pub fn owner( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([141, 165, 203, 91], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `permissionedProver` (0x313df7b1) function + pub fn permissioned_prover( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([49, 61, 247, 177], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `proxiableUUID` (0x52d1902d) function + pub fn proxiable_uuid(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([82, 209, 144, 45], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `renounceOwnership` (0x715018a6) function + pub fn renounce_ownership(&self) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([113, 80, 24, 166], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setPermissionedProver` (0x013fa5fc) function + pub fn set_permissioned_prover( + &self, + prover: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([1, 63, 165, 252], prover) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `setstateHistoryRetentionPeriod` (0x96c1ca61) function + pub fn setstate_history_retention_period( + &self, + history_seconds: u32, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([150, 193, 202, 97], history_seconds) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `stateHistoryCommitments` (0x02b592f3) function + pub fn state_history_commitments( + &self, + p0: ::ethers::core::types::U256, + ) -> ::ethers::contract::builders::ContractCall< + M, + (u64, u64, u64, ::ethers::core::types::U256), + > { + self.0 + .method_hash([2, 181, 146, 243], p0) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `stateHistoryFirstIndex` (0x2f79889d) function + pub fn state_history_first_index( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([47, 121, 136, 157], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `stateHistoryRetentionPeriod` (0xc23b9e9e) function + pub fn state_history_retention_period( + &self, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([194, 59, 158, 158], ()) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `transferOwnership` (0xf2fde38b) function + pub fn transfer_ownership( + &self, + new_owner: ::ethers::core::types::Address, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([242, 253, 227, 139], new_owner) + .expect("method not found (this should never happen)") + } + ///Calls the contract's `upgradeToAndCall` (0x4f1ef286) function + pub fn upgrade_to_and_call( + &self, + new_implementation: ::ethers::core::types::Address, + data: ::ethers::core::types::Bytes, + ) -> ::ethers::contract::builders::ContractCall { + self.0 + .method_hash([79, 30, 242, 134], (new_implementation, data)) + .expect("method not found (this should never happen)") + } + ///Gets the contract's `Initialized` event + pub fn initialized_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, InitializedFilter> + { + self.0.event() + } + ///Gets the contract's `NewState` event + pub fn new_state_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, NewStateFilter> { + self.0.event() + } + ///Gets the contract's `OwnershipTransferred` event + pub fn ownership_transferred_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, OwnershipTransferredFilter> + { + self.0.event() + } + ///Gets the contract's `PermissionedProverNotRequired` event + pub fn permissioned_prover_not_required_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + PermissionedProverNotRequiredFilter, + > { + self.0.event() + } + ///Gets the contract's `PermissionedProverRequired` event + pub fn permissioned_prover_required_filter( + &self, + ) -> ::ethers::contract::builders::Event< + ::std::sync::Arc, + M, + PermissionedProverRequiredFilter, + > { + self.0.event() + } + ///Gets the contract's `Upgrade` event + pub fn upgrade_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, UpgradeFilter> { + self.0.event() + } + ///Gets the contract's `Upgraded` event + pub fn upgraded_filter( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, UpgradedFilter> { + self.0.event() + } + /// Returns an `Event` builder for all the events of this contract. + pub fn events( + &self, + ) -> ::ethers::contract::builders::Event<::std::sync::Arc, M, LightClientArbitrumEvents> + { + self.0 + .event_with_filter(::core::default::Default::default()) + } + } + impl From<::ethers::contract::Contract> + for LightClientArbitrum + { + fn from(contract: ::ethers::contract::Contract) -> Self { + Self::new(contract.address(), contract.client()) + } + } + ///Custom Error type `AddressEmptyCode` with signature `AddressEmptyCode(address)` and selector `0x9996b315` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[etherror(name = "AddressEmptyCode", abi = "AddressEmptyCode(address)")] + pub struct AddressEmptyCode { + pub target: ::ethers::core::types::Address, + } + ///Custom Error type `ERC1967InvalidImplementation` with signature `ERC1967InvalidImplementation(address)` and selector `0x4c9c8ce3` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[etherror( + name = "ERC1967InvalidImplementation", + abi = "ERC1967InvalidImplementation(address)" + )] + pub struct ERC1967InvalidImplementation { + pub implementation: ::ethers::core::types::Address, + } + ///Custom Error type `ERC1967NonPayable` with signature `ERC1967NonPayable()` and selector `0xb398979f` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[etherror(name = "ERC1967NonPayable", abi = "ERC1967NonPayable()")] + pub struct ERC1967NonPayable; + ///Custom Error type `FailedInnerCall` with signature `FailedInnerCall()` and selector `0x1425ea42` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[etherror(name = "FailedInnerCall", abi = "FailedInnerCall()")] + pub struct FailedInnerCall; + ///Custom Error type `InsufficientSnapshotHistory` with signature `InsufficientSnapshotHistory()` and selector `0xb0b43877` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[etherror( + name = "InsufficientSnapshotHistory", + abi = "InsufficientSnapshotHistory()" + )] + pub struct InsufficientSnapshotHistory; + ///Custom Error type `InvalidAddress` with signature `InvalidAddress()` and selector `0xe6c4247b` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[etherror(name = "InvalidAddress", abi = "InvalidAddress()")] + pub struct InvalidAddress; + ///Custom Error type `InvalidArgs` with signature `InvalidArgs()` and selector `0xa1ba07ee` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[etherror(name = "InvalidArgs", abi = "InvalidArgs()")] + pub struct InvalidArgs; + ///Custom Error type `InvalidHotShotBlockForCommitmentCheck` with signature `InvalidHotShotBlockForCommitmentCheck()` and selector `0x615a9264` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[etherror( + name = "InvalidHotShotBlockForCommitmentCheck", + abi = "InvalidHotShotBlockForCommitmentCheck()" + )] + pub struct InvalidHotShotBlockForCommitmentCheck; + ///Custom Error type `InvalidInitialization` with signature `InvalidInitialization()` and selector `0xf92ee8a9` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[etherror(name = "InvalidInitialization", abi = "InvalidInitialization()")] + pub struct InvalidInitialization; + ///Custom Error type `InvalidMaxStateHistory` with signature `InvalidMaxStateHistory()` and selector `0xf4a0eee0` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[etherror(name = "InvalidMaxStateHistory", abi = "InvalidMaxStateHistory()")] + pub struct InvalidMaxStateHistory; + ///Custom Error type `InvalidProof` with signature `InvalidProof()` and selector `0x09bde339` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[etherror(name = "InvalidProof", abi = "InvalidProof()")] + pub struct InvalidProof; + ///Custom Error type `NoChangeRequired` with signature `NoChangeRequired()` and selector `0xa863aec9` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[etherror(name = "NoChangeRequired", abi = "NoChangeRequired()")] + pub struct NoChangeRequired; + ///Custom Error type `NotInitializing` with signature `NotInitializing()` and selector `0xd7e6bcf8` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[etherror(name = "NotInitializing", abi = "NotInitializing()")] + pub struct NotInitializing; + ///Custom Error type `OutdatedState` with signature `OutdatedState()` and selector `0x051c46ef` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[etherror(name = "OutdatedState", abi = "OutdatedState()")] + pub struct OutdatedState; + ///Custom Error type `OwnableInvalidOwner` with signature `OwnableInvalidOwner(address)` and selector `0x1e4fbdf7` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[etherror(name = "OwnableInvalidOwner", abi = "OwnableInvalidOwner(address)")] + pub struct OwnableInvalidOwner { + pub owner: ::ethers::core::types::Address, + } + ///Custom Error type `OwnableUnauthorizedAccount` with signature `OwnableUnauthorizedAccount(address)` and selector `0x118cdaa7` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[etherror( + name = "OwnableUnauthorizedAccount", + abi = "OwnableUnauthorizedAccount(address)" + )] + pub struct OwnableUnauthorizedAccount { + pub account: ::ethers::core::types::Address, + } + ///Custom Error type `ProverNotPermissioned` with signature `ProverNotPermissioned()` and selector `0xa3a64780` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[etherror(name = "ProverNotPermissioned", abi = "ProverNotPermissioned()")] + pub struct ProverNotPermissioned; + ///Custom Error type `UUPSUnauthorizedCallContext` with signature `UUPSUnauthorizedCallContext()` and selector `0xe07c8dba` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[etherror( + name = "UUPSUnauthorizedCallContext", + abi = "UUPSUnauthorizedCallContext()" + )] + pub struct UUPSUnauthorizedCallContext; + ///Custom Error type `UUPSUnsupportedProxiableUUID` with signature `UUPSUnsupportedProxiableUUID(bytes32)` and selector `0xaa1d49a4` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[etherror( + name = "UUPSUnsupportedProxiableUUID", + abi = "UUPSUnsupportedProxiableUUID(bytes32)" + )] + pub struct UUPSUnsupportedProxiableUUID { + pub slot: [u8; 32], + } + ///Custom Error type `WrongStakeTableUsed` with signature `WrongStakeTableUsed()` and selector `0x51618089` + #[derive( + Clone, + ::ethers::contract::EthError, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[etherror(name = "WrongStakeTableUsed", abi = "WrongStakeTableUsed()")] + pub struct WrongStakeTableUsed; + ///Container type for all of the contract's custom errors + #[derive( + Clone, + ::ethers::contract::EthAbiType, + serde::Serialize, + serde::Deserialize, + Debug, + PartialEq, + Eq, + Hash, + )] + pub enum LightClientArbitrumErrors { + AddressEmptyCode(AddressEmptyCode), + ERC1967InvalidImplementation(ERC1967InvalidImplementation), + ERC1967NonPayable(ERC1967NonPayable), + FailedInnerCall(FailedInnerCall), + InsufficientSnapshotHistory(InsufficientSnapshotHistory), + InvalidAddress(InvalidAddress), + InvalidArgs(InvalidArgs), + InvalidHotShotBlockForCommitmentCheck(InvalidHotShotBlockForCommitmentCheck), + InvalidInitialization(InvalidInitialization), + InvalidMaxStateHistory(InvalidMaxStateHistory), + InvalidProof(InvalidProof), + NoChangeRequired(NoChangeRequired), + NotInitializing(NotInitializing), + OutdatedState(OutdatedState), + OwnableInvalidOwner(OwnableInvalidOwner), + OwnableUnauthorizedAccount(OwnableUnauthorizedAccount), + ProverNotPermissioned(ProverNotPermissioned), + UUPSUnauthorizedCallContext(UUPSUnauthorizedCallContext), + UUPSUnsupportedProxiableUUID(UUPSUnsupportedProxiableUUID), + WrongStakeTableUsed(WrongStakeTableUsed), + /// The standard solidity revert string, with selector + /// Error(string) -- 0x08c379a0 + RevertString(::std::string::String), + } + impl ::ethers::core::abi::AbiDecode for LightClientArbitrumErrors { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) = + <::std::string::String as ::ethers::core::abi::AbiDecode>::decode(data) + { + return Ok(Self::RevertString(decoded)); + } + if let Ok(decoded) = ::decode(data) + { + return Ok(Self::AddressEmptyCode(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::ERC1967InvalidImplementation(decoded)); + } + if let Ok(decoded) = ::decode(data) + { + return Ok(Self::ERC1967NonPayable(decoded)); + } + if let Ok(decoded) = ::decode(data) { + return Ok(Self::FailedInnerCall(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::InsufficientSnapshotHistory(decoded)); + } + if let Ok(decoded) = ::decode(data) { + return Ok(Self::InvalidAddress(decoded)); + } + if let Ok(decoded) = ::decode(data) { + return Ok(Self::InvalidArgs(decoded)); + } + if let Ok(decoded) = + ::decode( + data, + ) + { + return Ok(Self::InvalidHotShotBlockForCommitmentCheck(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::InvalidInitialization(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::InvalidMaxStateHistory(decoded)); + } + if let Ok(decoded) = ::decode(data) { + return Ok(Self::InvalidProof(decoded)); + } + if let Ok(decoded) = ::decode(data) + { + return Ok(Self::NoChangeRequired(decoded)); + } + if let Ok(decoded) = ::decode(data) { + return Ok(Self::NotInitializing(decoded)); + } + if let Ok(decoded) = ::decode(data) { + return Ok(Self::OutdatedState(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::OwnableInvalidOwner(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::OwnableUnauthorizedAccount(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::ProverNotPermissioned(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::UUPSUnauthorizedCallContext(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::UUPSUnsupportedProxiableUUID(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::WrongStakeTableUsed(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for LightClientArbitrumErrors { + fn encode(self) -> ::std::vec::Vec { + match self { + Self::AddressEmptyCode(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::ERC1967InvalidImplementation(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ERC1967NonPayable(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::FailedInnerCall(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::InsufficientSnapshotHistory(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidAddress(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::InvalidArgs(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::InvalidHotShotBlockForCommitmentCheck(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidInitialization(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidMaxStateHistory(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::InvalidProof(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::NoChangeRequired(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::NotInitializing(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::OutdatedState(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::OwnableInvalidOwner(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::OwnableUnauthorizedAccount(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ProverNotPermissioned(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::UUPSUnauthorizedCallContext(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::UUPSUnsupportedProxiableUUID(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::WrongStakeTableUsed(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::RevertString(s) => ::ethers::core::abi::AbiEncode::encode(s), + } + } + } + impl ::ethers::contract::ContractRevert for LightClientArbitrumErrors { + fn valid_selector(selector: [u8; 4]) -> bool { + match selector { + [0x08, 0xc3, 0x79, 0xa0] => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => true, + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ if selector + == ::selector() => { + true + } + _ => false, + } + } + } + impl ::core::fmt::Display for LightClientArbitrumErrors { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::AddressEmptyCode(element) => ::core::fmt::Display::fmt(element, f), + Self::ERC1967InvalidImplementation(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::ERC1967NonPayable(element) => ::core::fmt::Display::fmt(element, f), + Self::FailedInnerCall(element) => ::core::fmt::Display::fmt(element, f), + Self::InsufficientSnapshotHistory(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidAddress(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidArgs(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidHotShotBlockForCommitmentCheck(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::InvalidInitialization(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidMaxStateHistory(element) => ::core::fmt::Display::fmt(element, f), + Self::InvalidProof(element) => ::core::fmt::Display::fmt(element, f), + Self::NoChangeRequired(element) => ::core::fmt::Display::fmt(element, f), + Self::NotInitializing(element) => ::core::fmt::Display::fmt(element, f), + Self::OutdatedState(element) => ::core::fmt::Display::fmt(element, f), + Self::OwnableInvalidOwner(element) => ::core::fmt::Display::fmt(element, f), + Self::OwnableUnauthorizedAccount(element) => ::core::fmt::Display::fmt(element, f), + Self::ProverNotPermissioned(element) => ::core::fmt::Display::fmt(element, f), + Self::UUPSUnauthorizedCallContext(element) => ::core::fmt::Display::fmt(element, f), + Self::UUPSUnsupportedProxiableUUID(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::WrongStakeTableUsed(element) => ::core::fmt::Display::fmt(element, f), + Self::RevertString(s) => ::core::fmt::Display::fmt(s, f), + } + } + } + impl ::core::convert::From<::std::string::String> for LightClientArbitrumErrors { + fn from(value: String) -> Self { + Self::RevertString(value) + } + } + impl ::core::convert::From for LightClientArbitrumErrors { + fn from(value: AddressEmptyCode) -> Self { + Self::AddressEmptyCode(value) + } + } + impl ::core::convert::From for LightClientArbitrumErrors { + fn from(value: ERC1967InvalidImplementation) -> Self { + Self::ERC1967InvalidImplementation(value) + } + } + impl ::core::convert::From for LightClientArbitrumErrors { + fn from(value: ERC1967NonPayable) -> Self { + Self::ERC1967NonPayable(value) + } + } + impl ::core::convert::From for LightClientArbitrumErrors { + fn from(value: FailedInnerCall) -> Self { + Self::FailedInnerCall(value) + } + } + impl ::core::convert::From for LightClientArbitrumErrors { + fn from(value: InsufficientSnapshotHistory) -> Self { + Self::InsufficientSnapshotHistory(value) + } + } + impl ::core::convert::From for LightClientArbitrumErrors { + fn from(value: InvalidAddress) -> Self { + Self::InvalidAddress(value) + } + } + impl ::core::convert::From for LightClientArbitrumErrors { + fn from(value: InvalidArgs) -> Self { + Self::InvalidArgs(value) + } + } + impl ::core::convert::From for LightClientArbitrumErrors { + fn from(value: InvalidHotShotBlockForCommitmentCheck) -> Self { + Self::InvalidHotShotBlockForCommitmentCheck(value) + } + } + impl ::core::convert::From for LightClientArbitrumErrors { + fn from(value: InvalidInitialization) -> Self { + Self::InvalidInitialization(value) + } + } + impl ::core::convert::From for LightClientArbitrumErrors { + fn from(value: InvalidMaxStateHistory) -> Self { + Self::InvalidMaxStateHistory(value) + } + } + impl ::core::convert::From for LightClientArbitrumErrors { + fn from(value: InvalidProof) -> Self { + Self::InvalidProof(value) + } + } + impl ::core::convert::From for LightClientArbitrumErrors { + fn from(value: NoChangeRequired) -> Self { + Self::NoChangeRequired(value) + } + } + impl ::core::convert::From for LightClientArbitrumErrors { + fn from(value: NotInitializing) -> Self { + Self::NotInitializing(value) + } + } + impl ::core::convert::From for LightClientArbitrumErrors { + fn from(value: OutdatedState) -> Self { + Self::OutdatedState(value) + } + } + impl ::core::convert::From for LightClientArbitrumErrors { + fn from(value: OwnableInvalidOwner) -> Self { + Self::OwnableInvalidOwner(value) + } + } + impl ::core::convert::From for LightClientArbitrumErrors { + fn from(value: OwnableUnauthorizedAccount) -> Self { + Self::OwnableUnauthorizedAccount(value) + } + } + impl ::core::convert::From for LightClientArbitrumErrors { + fn from(value: ProverNotPermissioned) -> Self { + Self::ProverNotPermissioned(value) + } + } + impl ::core::convert::From for LightClientArbitrumErrors { + fn from(value: UUPSUnauthorizedCallContext) -> Self { + Self::UUPSUnauthorizedCallContext(value) + } + } + impl ::core::convert::From for LightClientArbitrumErrors { + fn from(value: UUPSUnsupportedProxiableUUID) -> Self { + Self::UUPSUnsupportedProxiableUUID(value) + } + } + impl ::core::convert::From for LightClientArbitrumErrors { + fn from(value: WrongStakeTableUsed) -> Self { + Self::WrongStakeTableUsed(value) + } + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethevent(name = "Initialized", abi = "Initialized(uint64)")] + pub struct InitializedFilter { + pub version: u64, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethevent(name = "NewState", abi = "NewState(uint64,uint64,uint256)")] + pub struct NewStateFilter { + #[ethevent(indexed)] + pub view_num: u64, + #[ethevent(indexed)] + pub block_height: u64, + pub block_comm_root: ::ethers::core::types::U256, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethevent( + name = "OwnershipTransferred", + abi = "OwnershipTransferred(address,address)" + )] + pub struct OwnershipTransferredFilter { + #[ethevent(indexed)] + pub previous_owner: ::ethers::core::types::Address, + #[ethevent(indexed)] + pub new_owner: ::ethers::core::types::Address, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethevent( + name = "PermissionedProverNotRequired", + abi = "PermissionedProverNotRequired()" + )] + pub struct PermissionedProverNotRequiredFilter; + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethevent( + name = "PermissionedProverRequired", + abi = "PermissionedProverRequired(address)" + )] + pub struct PermissionedProverRequiredFilter { + pub permissioned_prover: ::ethers::core::types::Address, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethevent(name = "Upgrade", abi = "Upgrade(address)")] + pub struct UpgradeFilter { + pub implementation: ::ethers::core::types::Address, + } + #[derive( + Clone, + ::ethers::contract::EthEvent, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethevent(name = "Upgraded", abi = "Upgraded(address)")] + pub struct UpgradedFilter { + #[ethevent(indexed)] + pub implementation: ::ethers::core::types::Address, + } + ///Container type for all of the contract's events + #[derive( + Clone, + ::ethers::contract::EthAbiType, + serde::Serialize, + serde::Deserialize, + Debug, + PartialEq, + Eq, + Hash, + )] + pub enum LightClientArbitrumEvents { + InitializedFilter(InitializedFilter), + NewStateFilter(NewStateFilter), + OwnershipTransferredFilter(OwnershipTransferredFilter), + PermissionedProverNotRequiredFilter(PermissionedProverNotRequiredFilter), + PermissionedProverRequiredFilter(PermissionedProverRequiredFilter), + UpgradeFilter(UpgradeFilter), + UpgradedFilter(UpgradedFilter), + } + impl ::ethers::contract::EthLogDecode for LightClientArbitrumEvents { + fn decode_log( + log: &::ethers::core::abi::RawLog, + ) -> ::core::result::Result { + if let Ok(decoded) = InitializedFilter::decode_log(log) { + return Ok(LightClientArbitrumEvents::InitializedFilter(decoded)); + } + if let Ok(decoded) = NewStateFilter::decode_log(log) { + return Ok(LightClientArbitrumEvents::NewStateFilter(decoded)); + } + if let Ok(decoded) = OwnershipTransferredFilter::decode_log(log) { + return Ok(LightClientArbitrumEvents::OwnershipTransferredFilter( + decoded, + )); + } + if let Ok(decoded) = PermissionedProverNotRequiredFilter::decode_log(log) { + return Ok(LightClientArbitrumEvents::PermissionedProverNotRequiredFilter(decoded)); + } + if let Ok(decoded) = PermissionedProverRequiredFilter::decode_log(log) { + return Ok(LightClientArbitrumEvents::PermissionedProverRequiredFilter( + decoded, + )); + } + if let Ok(decoded) = UpgradeFilter::decode_log(log) { + return Ok(LightClientArbitrumEvents::UpgradeFilter(decoded)); + } + if let Ok(decoded) = UpgradedFilter::decode_log(log) { + return Ok(LightClientArbitrumEvents::UpgradedFilter(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData) + } + } + impl ::core::fmt::Display for LightClientArbitrumEvents { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::InitializedFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::NewStateFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::OwnershipTransferredFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::PermissionedProverNotRequiredFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::PermissionedProverRequiredFilter(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::UpgradeFilter(element) => ::core::fmt::Display::fmt(element, f), + Self::UpgradedFilter(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for LightClientArbitrumEvents { + fn from(value: InitializedFilter) -> Self { + Self::InitializedFilter(value) + } + } + impl ::core::convert::From for LightClientArbitrumEvents { + fn from(value: NewStateFilter) -> Self { + Self::NewStateFilter(value) + } + } + impl ::core::convert::From for LightClientArbitrumEvents { + fn from(value: OwnershipTransferredFilter) -> Self { + Self::OwnershipTransferredFilter(value) + } + } + impl ::core::convert::From for LightClientArbitrumEvents { + fn from(value: PermissionedProverNotRequiredFilter) -> Self { + Self::PermissionedProverNotRequiredFilter(value) + } + } + impl ::core::convert::From for LightClientArbitrumEvents { + fn from(value: PermissionedProverRequiredFilter) -> Self { + Self::PermissionedProverRequiredFilter(value) + } + } + impl ::core::convert::From for LightClientArbitrumEvents { + fn from(value: UpgradeFilter) -> Self { + Self::UpgradeFilter(value) + } + } + impl ::core::convert::From for LightClientArbitrumEvents { + fn from(value: UpgradedFilter) -> Self { + Self::UpgradedFilter(value) + } + } + ///Container type for all input parameters for the `UPGRADE_INTERFACE_VERSION` function with signature `UPGRADE_INTERFACE_VERSION()` and selector `0xad3cb1cc` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethcall( + name = "UPGRADE_INTERFACE_VERSION", + abi = "UPGRADE_INTERFACE_VERSION()" + )] + pub struct UpgradeInterfaceVersionCall; + ///Container type for all input parameters for the `currentBlockNumber` function with signature `currentBlockNumber()` and selector `0x378ec23b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethcall(name = "currentBlockNumber", abi = "currentBlockNumber()")] + pub struct CurrentBlockNumberCall; + ///Container type for all input parameters for the `disablePermissionedProverMode` function with signature `disablePermissionedProverMode()` and selector `0x69cc6a04` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethcall( + name = "disablePermissionedProverMode", + abi = "disablePermissionedProverMode()" + )] + pub struct DisablePermissionedProverModeCall; + ///Container type for all input parameters for the `finalizedState` function with signature `finalizedState()` and selector `0x9fdb54a7` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethcall(name = "finalizedState", abi = "finalizedState()")] + pub struct FinalizedStateCall; + ///Container type for all input parameters for the `genesisStakeTableState` function with signature `genesisStakeTableState()` and selector `0x426d3194` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethcall(name = "genesisStakeTableState", abi = "genesisStakeTableState()")] + pub struct GenesisStakeTableStateCall; + ///Container type for all input parameters for the `genesisState` function with signature `genesisState()` and selector `0xd24d933d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethcall(name = "genesisState", abi = "genesisState()")] + pub struct GenesisStateCall; + ///Container type for all input parameters for the `getHotShotCommitment` function with signature `getHotShotCommitment(uint256)` and selector `0x8584d23f` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethcall(name = "getHotShotCommitment", abi = "getHotShotCommitment(uint256)")] + pub struct GetHotShotCommitmentCall { + pub hot_shot_block_height: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `getStateHistoryCount` function with signature `getStateHistoryCount()` and selector `0xf9e50d19` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethcall(name = "getStateHistoryCount", abi = "getStateHistoryCount()")] + pub struct GetStateHistoryCountCall; + ///Container type for all input parameters for the `getVersion` function with signature `getVersion()` and selector `0x0d8e6e2c` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethcall(name = "getVersion", abi = "getVersion()")] + pub struct GetVersionCall; + ///Container type for all input parameters for the `initialize` function with signature `initialize((uint64,uint64,uint256),(uint256,uint256,uint256,uint256),uint32,address)` and selector `0x9baa3cc9` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethcall( + name = "initialize", + abi = "initialize((uint64,uint64,uint256),(uint256,uint256,uint256,uint256),uint32,address)" + )] + pub struct InitializeCall { + pub genesis: LightClientState, + pub genesis_stake_table_state: StakeTableState, + pub state_history_retention_period: u32, + pub owner: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `isPermissionedProverEnabled` function with signature `isPermissionedProverEnabled()` and selector `0x826e41fc` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethcall( + name = "isPermissionedProverEnabled", + abi = "isPermissionedProverEnabled()" + )] + pub struct IsPermissionedProverEnabledCall; + ///Container type for all input parameters for the `lagOverEscapeHatchThreshold` function with signature `lagOverEscapeHatchThreshold(uint256,uint256)` and selector `0xe0303301` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethcall( + name = "lagOverEscapeHatchThreshold", + abi = "lagOverEscapeHatchThreshold(uint256,uint256)" + )] + pub struct LagOverEscapeHatchThresholdCall { + pub block_number: ::ethers::core::types::U256, + pub block_threshold: ::ethers::core::types::U256, + } + ///Container type for all input parameters for the `newFinalizedState` function with signature `newFinalizedState((uint64,uint64,uint256),((uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256))` and selector `0x2063d4f7` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + )] + #[ethcall( + name = "newFinalizedState", + abi = "newFinalizedState((uint64,uint64,uint256),((uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),(uint256,uint256),uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256))" + )] + pub struct NewFinalizedStateCall { + pub new_state: LightClientState, + pub proof: PlonkProof, + } + ///Container type for all input parameters for the `owner` function with signature `owner()` and selector `0x8da5cb5b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethcall(name = "owner", abi = "owner()")] + pub struct OwnerCall; + ///Container type for all input parameters for the `permissionedProver` function with signature `permissionedProver()` and selector `0x313df7b1` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethcall(name = "permissionedProver", abi = "permissionedProver()")] + pub struct PermissionedProverCall; + ///Container type for all input parameters for the `proxiableUUID` function with signature `proxiableUUID()` and selector `0x52d1902d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethcall(name = "proxiableUUID", abi = "proxiableUUID()")] + pub struct ProxiableUUIDCall; + ///Container type for all input parameters for the `renounceOwnership` function with signature `renounceOwnership()` and selector `0x715018a6` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethcall(name = "renounceOwnership", abi = "renounceOwnership()")] + pub struct RenounceOwnershipCall; + ///Container type for all input parameters for the `setPermissionedProver` function with signature `setPermissionedProver(address)` and selector `0x013fa5fc` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethcall(name = "setPermissionedProver", abi = "setPermissionedProver(address)")] + pub struct SetPermissionedProverCall { + pub prover: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `setstateHistoryRetentionPeriod` function with signature `setstateHistoryRetentionPeriod(uint32)` and selector `0x96c1ca61` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethcall( + name = "setstateHistoryRetentionPeriod", + abi = "setstateHistoryRetentionPeriod(uint32)" + )] + pub struct SetstateHistoryRetentionPeriodCall { + pub history_seconds: u32, + } + ///Container type for all input parameters for the `stateHistoryCommitments` function with signature `stateHistoryCommitments(uint256)` and selector `0x02b592f3` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethcall( + name = "stateHistoryCommitments", + abi = "stateHistoryCommitments(uint256)" + )] + pub struct StateHistoryCommitmentsCall(pub ::ethers::core::types::U256); + ///Container type for all input parameters for the `stateHistoryFirstIndex` function with signature `stateHistoryFirstIndex()` and selector `0x2f79889d` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethcall(name = "stateHistoryFirstIndex", abi = "stateHistoryFirstIndex()")] + pub struct StateHistoryFirstIndexCall; + ///Container type for all input parameters for the `stateHistoryRetentionPeriod` function with signature `stateHistoryRetentionPeriod()` and selector `0xc23b9e9e` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethcall( + name = "stateHistoryRetentionPeriod", + abi = "stateHistoryRetentionPeriod()" + )] + pub struct StateHistoryRetentionPeriodCall; + ///Container type for all input parameters for the `transferOwnership` function with signature `transferOwnership(address)` and selector `0xf2fde38b` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethcall(name = "transferOwnership", abi = "transferOwnership(address)")] + pub struct TransferOwnershipCall { + pub new_owner: ::ethers::core::types::Address, + } + ///Container type for all input parameters for the `upgradeToAndCall` function with signature `upgradeToAndCall(address,bytes)` and selector `0x4f1ef286` + #[derive( + Clone, + ::ethers::contract::EthCall, + ::ethers::contract::EthDisplay, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + #[ethcall(name = "upgradeToAndCall", abi = "upgradeToAndCall(address,bytes)")] + pub struct UpgradeToAndCallCall { + pub new_implementation: ::ethers::core::types::Address, + pub data: ::ethers::core::types::Bytes, + } + ///Container type for all of the contract's call + #[derive(Clone, ::ethers::contract::EthAbiType, serde::Serialize, serde::Deserialize)] + pub enum LightClientArbitrumCalls { + UpgradeInterfaceVersion(UpgradeInterfaceVersionCall), + CurrentBlockNumber(CurrentBlockNumberCall), + DisablePermissionedProverMode(DisablePermissionedProverModeCall), + FinalizedState(FinalizedStateCall), + GenesisStakeTableState(GenesisStakeTableStateCall), + GenesisState(GenesisStateCall), + GetHotShotCommitment(GetHotShotCommitmentCall), + GetStateHistoryCount(GetStateHistoryCountCall), + GetVersion(GetVersionCall), + Initialize(InitializeCall), + IsPermissionedProverEnabled(IsPermissionedProverEnabledCall), + LagOverEscapeHatchThreshold(LagOverEscapeHatchThresholdCall), + NewFinalizedState(NewFinalizedStateCall), + Owner(OwnerCall), + PermissionedProver(PermissionedProverCall), + ProxiableUUID(ProxiableUUIDCall), + RenounceOwnership(RenounceOwnershipCall), + SetPermissionedProver(SetPermissionedProverCall), + SetstateHistoryRetentionPeriod(SetstateHistoryRetentionPeriodCall), + StateHistoryCommitments(StateHistoryCommitmentsCall), + StateHistoryFirstIndex(StateHistoryFirstIndexCall), + StateHistoryRetentionPeriod(StateHistoryRetentionPeriodCall), + TransferOwnership(TransferOwnershipCall), + UpgradeToAndCall(UpgradeToAndCallCall), + } + impl ::ethers::core::abi::AbiDecode for LightClientArbitrumCalls { + fn decode( + data: impl AsRef<[u8]>, + ) -> ::core::result::Result { + let data = data.as_ref(); + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::UpgradeInterfaceVersion(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::CurrentBlockNumber(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::DisablePermissionedProverMode(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::FinalizedState(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::GenesisStakeTableState(decoded)); + } + if let Ok(decoded) = ::decode(data) + { + return Ok(Self::GenesisState(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::GetHotShotCommitment(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::GetStateHistoryCount(decoded)); + } + if let Ok(decoded) = ::decode(data) { + return Ok(Self::GetVersion(decoded)); + } + if let Ok(decoded) = ::decode(data) { + return Ok(Self::Initialize(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::IsPermissionedProverEnabled(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::LagOverEscapeHatchThreshold(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::NewFinalizedState(decoded)); + } + if let Ok(decoded) = ::decode(data) { + return Ok(Self::Owner(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::PermissionedProver(decoded)); + } + if let Ok(decoded) = ::decode(data) + { + return Ok(Self::ProxiableUUID(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::RenounceOwnership(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::SetPermissionedProver(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::SetstateHistoryRetentionPeriod(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::StateHistoryCommitments(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::StateHistoryFirstIndex(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::StateHistoryRetentionPeriod(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::TransferOwnership(decoded)); + } + if let Ok(decoded) = + ::decode(data) + { + return Ok(Self::UpgradeToAndCall(decoded)); + } + Err(::ethers::core::abi::Error::InvalidData.into()) + } + } + impl ::ethers::core::abi::AbiEncode for LightClientArbitrumCalls { + fn encode(self) -> Vec { + match self { + Self::UpgradeInterfaceVersion(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::CurrentBlockNumber(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::DisablePermissionedProverMode(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::FinalizedState(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::GenesisStakeTableState(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GenesisState(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::GetHotShotCommitment(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetStateHistoryCount(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::GetVersion(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Initialize(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::IsPermissionedProverEnabled(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::LagOverEscapeHatchThreshold(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::NewFinalizedState(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::Owner(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::PermissionedProver(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::ProxiableUUID(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::RenounceOwnership(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::SetPermissionedProver(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::SetstateHistoryRetentionPeriod(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::StateHistoryCommitments(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::StateHistoryFirstIndex(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::StateHistoryRetentionPeriod(element) => { + ::ethers::core::abi::AbiEncode::encode(element) + } + Self::TransferOwnership(element) => ::ethers::core::abi::AbiEncode::encode(element), + Self::UpgradeToAndCall(element) => ::ethers::core::abi::AbiEncode::encode(element), + } + } + } + impl ::core::fmt::Display for LightClientArbitrumCalls { + fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result { + match self { + Self::UpgradeInterfaceVersion(element) => ::core::fmt::Display::fmt(element, f), + Self::CurrentBlockNumber(element) => ::core::fmt::Display::fmt(element, f), + Self::DisablePermissionedProverMode(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::FinalizedState(element) => ::core::fmt::Display::fmt(element, f), + Self::GenesisStakeTableState(element) => ::core::fmt::Display::fmt(element, f), + Self::GenesisState(element) => ::core::fmt::Display::fmt(element, f), + Self::GetHotShotCommitment(element) => ::core::fmt::Display::fmt(element, f), + Self::GetStateHistoryCount(element) => ::core::fmt::Display::fmt(element, f), + Self::GetVersion(element) => ::core::fmt::Display::fmt(element, f), + Self::Initialize(element) => ::core::fmt::Display::fmt(element, f), + Self::IsPermissionedProverEnabled(element) => ::core::fmt::Display::fmt(element, f), + Self::LagOverEscapeHatchThreshold(element) => ::core::fmt::Display::fmt(element, f), + Self::NewFinalizedState(element) => ::core::fmt::Display::fmt(element, f), + Self::Owner(element) => ::core::fmt::Display::fmt(element, f), + Self::PermissionedProver(element) => ::core::fmt::Display::fmt(element, f), + Self::ProxiableUUID(element) => ::core::fmt::Display::fmt(element, f), + Self::RenounceOwnership(element) => ::core::fmt::Display::fmt(element, f), + Self::SetPermissionedProver(element) => ::core::fmt::Display::fmt(element, f), + Self::SetstateHistoryRetentionPeriod(element) => { + ::core::fmt::Display::fmt(element, f) + } + Self::StateHistoryCommitments(element) => ::core::fmt::Display::fmt(element, f), + Self::StateHistoryFirstIndex(element) => ::core::fmt::Display::fmt(element, f), + Self::StateHistoryRetentionPeriod(element) => ::core::fmt::Display::fmt(element, f), + Self::TransferOwnership(element) => ::core::fmt::Display::fmt(element, f), + Self::UpgradeToAndCall(element) => ::core::fmt::Display::fmt(element, f), + } + } + } + impl ::core::convert::From for LightClientArbitrumCalls { + fn from(value: UpgradeInterfaceVersionCall) -> Self { + Self::UpgradeInterfaceVersion(value) + } + } + impl ::core::convert::From for LightClientArbitrumCalls { + fn from(value: CurrentBlockNumberCall) -> Self { + Self::CurrentBlockNumber(value) + } + } + impl ::core::convert::From for LightClientArbitrumCalls { + fn from(value: DisablePermissionedProverModeCall) -> Self { + Self::DisablePermissionedProverMode(value) + } + } + impl ::core::convert::From for LightClientArbitrumCalls { + fn from(value: FinalizedStateCall) -> Self { + Self::FinalizedState(value) + } + } + impl ::core::convert::From for LightClientArbitrumCalls { + fn from(value: GenesisStakeTableStateCall) -> Self { + Self::GenesisStakeTableState(value) + } + } + impl ::core::convert::From for LightClientArbitrumCalls { + fn from(value: GenesisStateCall) -> Self { + Self::GenesisState(value) + } + } + impl ::core::convert::From for LightClientArbitrumCalls { + fn from(value: GetHotShotCommitmentCall) -> Self { + Self::GetHotShotCommitment(value) + } + } + impl ::core::convert::From for LightClientArbitrumCalls { + fn from(value: GetStateHistoryCountCall) -> Self { + Self::GetStateHistoryCount(value) + } + } + impl ::core::convert::From for LightClientArbitrumCalls { + fn from(value: GetVersionCall) -> Self { + Self::GetVersion(value) + } + } + impl ::core::convert::From for LightClientArbitrumCalls { + fn from(value: InitializeCall) -> Self { + Self::Initialize(value) + } + } + impl ::core::convert::From for LightClientArbitrumCalls { + fn from(value: IsPermissionedProverEnabledCall) -> Self { + Self::IsPermissionedProverEnabled(value) + } + } + impl ::core::convert::From for LightClientArbitrumCalls { + fn from(value: LagOverEscapeHatchThresholdCall) -> Self { + Self::LagOverEscapeHatchThreshold(value) + } + } + impl ::core::convert::From for LightClientArbitrumCalls { + fn from(value: NewFinalizedStateCall) -> Self { + Self::NewFinalizedState(value) + } + } + impl ::core::convert::From for LightClientArbitrumCalls { + fn from(value: OwnerCall) -> Self { + Self::Owner(value) + } + } + impl ::core::convert::From for LightClientArbitrumCalls { + fn from(value: PermissionedProverCall) -> Self { + Self::PermissionedProver(value) + } + } + impl ::core::convert::From for LightClientArbitrumCalls { + fn from(value: ProxiableUUIDCall) -> Self { + Self::ProxiableUUID(value) + } + } + impl ::core::convert::From for LightClientArbitrumCalls { + fn from(value: RenounceOwnershipCall) -> Self { + Self::RenounceOwnership(value) + } + } + impl ::core::convert::From for LightClientArbitrumCalls { + fn from(value: SetPermissionedProverCall) -> Self { + Self::SetPermissionedProver(value) + } + } + impl ::core::convert::From for LightClientArbitrumCalls { + fn from(value: SetstateHistoryRetentionPeriodCall) -> Self { + Self::SetstateHistoryRetentionPeriod(value) + } + } + impl ::core::convert::From for LightClientArbitrumCalls { + fn from(value: StateHistoryCommitmentsCall) -> Self { + Self::StateHistoryCommitments(value) + } + } + impl ::core::convert::From for LightClientArbitrumCalls { + fn from(value: StateHistoryFirstIndexCall) -> Self { + Self::StateHistoryFirstIndex(value) + } + } + impl ::core::convert::From for LightClientArbitrumCalls { + fn from(value: StateHistoryRetentionPeriodCall) -> Self { + Self::StateHistoryRetentionPeriod(value) + } + } + impl ::core::convert::From for LightClientArbitrumCalls { + fn from(value: TransferOwnershipCall) -> Self { + Self::TransferOwnership(value) + } + } + impl ::core::convert::From for LightClientArbitrumCalls { + fn from(value: UpgradeToAndCallCall) -> Self { + Self::UpgradeToAndCall(value) + } + } + ///Container type for all return fields from the `UPGRADE_INTERFACE_VERSION` function with signature `UPGRADE_INTERFACE_VERSION()` and selector `0xad3cb1cc` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + pub struct UpgradeInterfaceVersionReturn(pub ::std::string::String); + ///Container type for all return fields from the `currentBlockNumber` function with signature `currentBlockNumber()` and selector `0x378ec23b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + pub struct CurrentBlockNumberReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `finalizedState` function with signature `finalizedState()` and selector `0x9fdb54a7` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + pub struct FinalizedStateReturn { + pub view_num: u64, + pub block_height: u64, + pub block_comm_root: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `genesisStakeTableState` function with signature `genesisStakeTableState()` and selector `0x426d3194` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + pub struct GenesisStakeTableStateReturn { + pub threshold: ::ethers::core::types::U256, + pub bls_key_comm: ::ethers::core::types::U256, + pub schnorr_key_comm: ::ethers::core::types::U256, + pub amount_comm: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `genesisState` function with signature `genesisState()` and selector `0xd24d933d` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + pub struct GenesisStateReturn { + pub view_num: u64, + pub block_height: u64, + pub block_comm_root: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `getHotShotCommitment` function with signature `getHotShotCommitment(uint256)` and selector `0x8584d23f` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + pub struct GetHotShotCommitmentReturn { + pub hot_shot_block_comm_root: ::ethers::core::types::U256, + pub hotshot_block_height: u64, + } + ///Container type for all return fields from the `getStateHistoryCount` function with signature `getStateHistoryCount()` and selector `0xf9e50d19` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + pub struct GetStateHistoryCountReturn(pub ::ethers::core::types::U256); + ///Container type for all return fields from the `getVersion` function with signature `getVersion()` and selector `0x0d8e6e2c` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + pub struct GetVersionReturn { + pub major_version: u8, + pub minor_version: u8, + pub patch_version: u8, + } + ///Container type for all return fields from the `isPermissionedProverEnabled` function with signature `isPermissionedProverEnabled()` and selector `0x826e41fc` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + pub struct IsPermissionedProverEnabledReturn(pub bool); + ///Container type for all return fields from the `lagOverEscapeHatchThreshold` function with signature `lagOverEscapeHatchThreshold(uint256,uint256)` and selector `0xe0303301` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + pub struct LagOverEscapeHatchThresholdReturn(pub bool); + ///Container type for all return fields from the `owner` function with signature `owner()` and selector `0x8da5cb5b` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + pub struct OwnerReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `permissionedProver` function with signature `permissionedProver()` and selector `0x313df7b1` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + pub struct PermissionedProverReturn(pub ::ethers::core::types::Address); + ///Container type for all return fields from the `proxiableUUID` function with signature `proxiableUUID()` and selector `0x52d1902d` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + pub struct ProxiableUUIDReturn(pub [u8; 32]); + ///Container type for all return fields from the `stateHistoryCommitments` function with signature `stateHistoryCommitments(uint256)` and selector `0x02b592f3` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + pub struct StateHistoryCommitmentsReturn { + pub l_1_block_height: u64, + pub l_1_block_timestamp: u64, + pub hot_shot_block_height: u64, + pub hot_shot_block_comm_root: ::ethers::core::types::U256, + } + ///Container type for all return fields from the `stateHistoryFirstIndex` function with signature `stateHistoryFirstIndex()` and selector `0x2f79889d` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + pub struct StateHistoryFirstIndexReturn(pub u64); + ///Container type for all return fields from the `stateHistoryRetentionPeriod` function with signature `stateHistoryRetentionPeriod()` and selector `0xc23b9e9e` + #[derive( + Clone, + ::ethers::contract::EthAbiType, + ::ethers::contract::EthAbiCodec, + serde::Serialize, + serde::Deserialize, + Default, + Debug, + PartialEq, + Eq, + Hash, + )] + pub struct StateHistoryRetentionPeriodReturn(pub u32); +} diff --git a/contracts/broadcast/LightClientArb.s.sol/421614/run-1736785553.json b/contracts/broadcast/LightClientArb.s.sol/421614/run-1736785553.json new file mode 100644 index 0000000000..53b0de63cc --- /dev/null +++ b/contracts/broadcast/LightClientArb.s.sol/421614/run-1736785553.json @@ -0,0 +1,103 @@ +{ + "transactions": [ + { + "hash": null, + "transactionType": "CREATE", + "contractName": "LightClientArbitrum", + "contractAddress": "0x32ba90a34bb037454fe843c25ed5254aa4723e47", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x327901", + "value": "0x0", + "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000030565b6200002a62000030565b620000e4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000815760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000e15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b416200010e600039600081816111380152818161116101526112e00152612b416000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120c7565b610584565b005b34801561017e57600080fd5b5061019261018d3660046120e2565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612236565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b6101706103083660046123ea565b610848565b34801561031957600080fd5b506102a9610867565b34801561032e57600080fd5b50610170610884565b34801561034357600080fd5b506101706108f3565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b506103986103933660046120e2565b610905565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124a3565b610a38565b34801561041e57600080fd5b5061017061042d3660046124be565b610ac1565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c7919061258f565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125c2565b610bd5565b34801561055b57600080fd5b5061017061056a3660046120c7565b610d3b565b34801561057b57600080fd5b506009546102a9565b61058c610d7e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610dd9565b6107338282610e49565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610f41565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b600060646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084391906125e4565b905090565b61085061112d565b610859826111d2565b6108638282611213565b5050565b60006108716112d5565b50600080516020612b1583398151915290565b61088c610d7e565b6008546001600160a01b0316156108d857600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b6108fb610d7e565b6108f1600061131e565b6009805460009182919061091a600183612613565b8154811061092a5761092a612626565b6000918252602090912060029091020154600160801b90046001600160401b031684111561096b57604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610a3157846009828154811061099b5761099b612626565b6000918252602090912060029091020154600160801b90046001600160401b031610610a2957600981815481106109d4576109d4612626565b906000526020600020906002020160010154600982815481106109f9576109f9612626565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b60010161097f565b5050915091565b610a40610d7e565b610e108163ffffffff161080610a5f57506301e133808163ffffffff16115b80610a7d575060085463ffffffff600160a01b909104811690821611155b15610a9b576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b065750825b90506000826001600160401b03166001148015610b225750303b155b905081158015610b30575080155b15610b4e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b7857845460ff60401b1916600160401b1785555b610b848989898961138f565b8315610bca57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610be36107de565b841180610bee575080155b80610c395750600854600980549091600160c01b90046001600160401b0316908110610c1c57610c1c612626565b60009182526020909120600290910201546001600160401b031684105b15610c575760405163b0b4387760e01b815260040160405180910390fd5b60008080610c66600185612613565b90505b81610d0457600854600160c01b90046001600160401b03168110610d04578660098281548110610c9b57610c9b612626565b60009182526020909120600290910201546001600160401b031611610cf2576001915060098181548110610cd157610cd1612626565b60009182526020909120600290910201546001600160401b03169250610d04565b80610cfc8161263c565b915050610c69565b81610d225760405163b0b4387760e01b815260040160405180910390fd5b85610d2d8489612613565b119450505050505b92915050565b610d43610d7e565b6001600160a01b038116610d7257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d7b8161131e565b50565b33610db07f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146108f15760405163118cdaa760e01b8152336004820152602401610d69565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108635760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610d69565b6000610e53611462565b9050610e5d611e00565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273085a1ec0d51f4541d81a442a0df4c9e9c70d7d1e9063ce537a7790610edd9085908590889060040161285a565b602060405180830381865af4158015610efa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1e9190612a89565b610f3b576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590610fb7575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610f8157610f81612626565b6000918252602090912060029091020154610fac90600160401b90046001600160401b031684612aab565b6001600160401b0316115b1561104b57600854600980549091600160c01b90046001600160401b0316908110610fe457610fe4612626565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b031690601861102583612ad2565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806111b457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111a8600080516020612b15833981519152546001600160a01b031690565b6001600160a01b031614155b156108f15760405163703e46dd60e11b815260040160405180910390fd5b6111da610d7e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561126d575060408051601f3d908101601f1916820190925261126a918101906125e4565b60015b61129557604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d69565b600080516020612b1583398151915281146112c657604051632a87526960e21b815260048101829052602401610d69565b6112d08383611a91565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108f15760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156113d45750825b90506000826001600160401b031660011480156113f05750303b155b9050811580156113fe575080155b1561141c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561144657845460ff60401b1916600160401b1785555b61144f86611ae7565b611457611af8565b610b84898989611b00565b61146a611e1e565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611a9a82611c2d565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611adf576112d08282611c92565b610863611d08565b611aef611d27565b610d7b81611d70565b6108f1611d27565b82516001600160401b0316151580611b24575060208301516001600160401b031615155b80611b3157506020820151155b80611b3e57506040820151155b80611b4b57506060820151155b80611b5557508151155b80611b675750610e108163ffffffff16105b80611b7b57506301e133808163ffffffff16115b15611b99576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b806001600160a01b03163b600003611c6357604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d69565b600080516020612b1583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611caf9190612af8565b600060405180830381855af49150503d8060008114611cea576040519150601f19603f3d011682016040523d82523d6000602084013e611cef565b606091505b5091509150611cff858383611d78565b95945050505050565b34156108f15760405163b398979f60e01b815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166108f157604051631afcd79f60e31b815260040160405180910390fd5b610d43611d27565b606082611d8d57611d8882611dd7565b611dd0565b8151158015611da457506001600160a01b0384163b155b15611dcd57604051639996b31560e01b81526001600160a01b0385166004820152602401610d69565b50805b9392505050565b805115611de75780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e55604051806040016040528060008152602001600081525090565b8152602001611e77604051806040016040528060008152602001600081525090565b8152602001611e99604051806040016040528060008152602001600081525090565b8152602001611ebb604051806040016040528060008152602001600081525090565b8152602001611edd604051806040016040528060008152602001600081525090565b8152602001611eff604051806040016040528060008152602001600081525090565b8152602001611f21604051806040016040528060008152602001600081525090565b8152602001611f43604051806040016040528060008152602001600081525090565b8152602001611f65604051806040016040528060008152602001600081525090565b8152602001611f87604051806040016040528060008152602001600081525090565b8152602001611fa9604051806040016040528060008152602001600081525090565b8152602001611fcb604051806040016040528060008152602001600081525090565b8152602001611fed604051806040016040528060008152602001600081525090565b815260200161200f604051806040016040528060008152602001600081525090565b8152602001612031604051806040016040528060008152602001600081525090565b8152602001612053604051806040016040528060008152602001600081525090565b8152602001612075604051806040016040528060008152602001600081525090565b8152602001612097604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120c257600080fd5b919050565b6000602082840312156120d957600080fd5b611dd0826120ab565b6000602082840312156120f457600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b0381118282101715612134576121346120fb565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612162576121626120fb565b604052919050565b80356001600160401b03811681146120c257600080fd5b60006060828403121561219357600080fd5b604051606081018181106001600160401b03821117156121b5576121b56120fb565b6040529050806121c48361216a565b81526121d26020840161216a565b6020820152604083013560408201525092915050565b6000604082840312156121fa57600080fd5b604051604081018181106001600160401b038211171561221c5761221c6120fb565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561224b57600080fd5b6122558585612181565b925061048080605f198301121561226b57600080fd5b612273612111565b915061228286606087016121e8565b82526122918660a087016121e8565b60208301526122a38660e087016121e8565b60408301526101206122b7878288016121e8565b60608401526101606122cb888289016121e8565b60808501526101a06122df89828a016121e8565b60a08601526101e06122f38a828b016121e8565b60c08701526102206123078b828c016121e8565b60e088015261026061231b8c828d016121e8565b6101008901526102a06123308d828e016121e8565b878a01526123428d6102e08e016121e8565b6101408a01526123568d6103208e016121e8565b868a01526123688d6103608e016121e8565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b600080604083850312156123fd57600080fd5b612406836120ab565b91506020808401356001600160401b038082111561242357600080fd5b818601915086601f83011261243757600080fd5b813581811115612449576124496120fb565b61245b601f8201601f1916850161213a565b9150808252878482850101111561247157600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120c257600080fd5b6000602082840312156124b557600080fd5b611dd08261248f565b6000806000808486036101208112156124d657600080fd5b6124e08787612181565b94506080605f19820112156124f457600080fd5b50604051608081018181106001600160401b0382111715612517576125176120fb565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061255160e0860161248f565b915061256061010086016120ab565b905092959194509250565b60005b8381101561258657818101518382015260200161256e565b50506000910152565b60208152600082518060208401526125ae81604085016020870161256b565b601f01601f19169190910160400192915050565b600080604083850312156125d557600080fd5b50508035926020909101359150565b6000602082840312156125f657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610d3557610d356125fd565b634e487b7160e01b600052603260045260246000fd5b60008161264b5761264b6125fd565b506000190190565b8060005b6007811015610f3b578151845260209384019390910190600101612657565b61268b82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e08401525060808101516101006126ee8185018380518252602090810151910152565b60a0830151915061014061270e8186018480518252602090810151910152565b60c0840151925061018061272e8187018580518252602090810151910152565b60e085015193506101c061274e8188018680518252602090810151910152565b9285015193506102009261276e8785018680518252602090810151910152565b610120860151945061024061278f8189018780518252602090810151910152565b928601519450610280926127af8885018780518252602090810151910152565b61016087015195506102c06127d0818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a60820190508451825260208501516020830152604085015161288d604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a08501516101006128da8185018380518252602090810151910152565b60c087015191506101406128fa8186018480518252602090810151910152565b60e0880151925061018061291a8187018580518252602090810151910152565b9188015192506101c09161293a8684018580518252602090810151910152565b610120890151935061020061295b8188018680518252602090810151910152565b9189015193506102409161297b8784018680518252602090810151910152565b6101608a0151945061028061299c8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612a73610500830185612653565b612a816105e0830184612676565b949350505050565b600060208284031215612a9b57600080fd5b81518015158114611dd057600080fd5b6001600160401b03828116828216039080821115612acb57612acb6125fd565b5092915050565b60006001600160401b03808316818103612aee57612aee6125fd565b6001019392505050565b60008251612b0a81846020870161256b565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", + "nonce": "0x24", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CREATE", + "contractName": "ERC1967Proxy", + "contractAddress": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", + "function": null, + "arguments": [ + "0x32BA90a34bb037454fe843c25ed5254aA4723E47", + "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" + ], + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x6ac5f", + "value": "0x0", + "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a00000000000000000000000032ba90a34bb037454fe843c25ed5254aa4723e47000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e00000000000000000000000000000000000000000000000000000000", + "nonce": "0x25", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", + "gas": "0x754c", + "value": "0x0", + "input": "0x013fa5fc000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", + "nonce": "0x26", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", + "gas": "0x754c", + "value": "0x0", + "input": "0xf2fde38b0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be", + "nonce": "0x27", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [ + "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x085a1Ec0d51f4541d81a442a0Df4c9E9C70D7D1e" + ], + "pending": [], + "returns": { + "implementationAddress": { + "internal_type": "address", + "value": "0x32BA90a34bb037454fe843c25ed5254aA4723E47" + }, + "proxyAddress": { + "internal_type": "address", + "value": "0xdD5bc34ef6E04a5E3BDE097cEA889D391CBcF8cd" + }, + "lightClientState": { + "internal_type": "struct LightClient.LightClientState", + "value": "(0, 0, 1234)" + } + }, + "timestamp": 1736785553, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArb.s.sol/421614/run-1736785957.json b/contracts/broadcast/LightClientArb.s.sol/421614/run-1736785957.json new file mode 100644 index 0000000000..6f0f2d6262 --- /dev/null +++ b/contracts/broadcast/LightClientArb.s.sol/421614/run-1736785957.json @@ -0,0 +1,197 @@ +{ + "transactions": [ + { + "hash": "0x0e7302701b888b6e428b35635a80803c313ad519fc2ace24dd226bc0d2f8ade5", + "transactionType": "CREATE", + "contractName": "LightClientArbitrum", + "contractAddress": "0x32ba90a34bb037454fe843c25ed5254aa4723e47", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x364625", + "value": "0x0", + "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000030565b6200002a62000030565b620000e4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000815760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000e15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b416200010e600039600081816111380152818161116101526112e00152612b416000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120c7565b610584565b005b34801561017e57600080fd5b5061019261018d3660046120e2565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612236565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b6101706103083660046123ea565b610848565b34801561031957600080fd5b506102a9610867565b34801561032e57600080fd5b50610170610884565b34801561034357600080fd5b506101706108f3565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b506103986103933660046120e2565b610905565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124a3565b610a38565b34801561041e57600080fd5b5061017061042d3660046124be565b610ac1565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c7919061258f565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125c2565b610bd5565b34801561055b57600080fd5b5061017061056a3660046120c7565b610d3b565b34801561057b57600080fd5b506009546102a9565b61058c610d7e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610dd9565b6107338282610e49565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610f41565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b600060646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084391906125e4565b905090565b61085061112d565b610859826111d2565b6108638282611213565b5050565b60006108716112d5565b50600080516020612b1583398151915290565b61088c610d7e565b6008546001600160a01b0316156108d857600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b6108fb610d7e565b6108f1600061131e565b6009805460009182919061091a600183612613565b8154811061092a5761092a612626565b6000918252602090912060029091020154600160801b90046001600160401b031684111561096b57604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610a3157846009828154811061099b5761099b612626565b6000918252602090912060029091020154600160801b90046001600160401b031610610a2957600981815481106109d4576109d4612626565b906000526020600020906002020160010154600982815481106109f9576109f9612626565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b60010161097f565b5050915091565b610a40610d7e565b610e108163ffffffff161080610a5f57506301e133808163ffffffff16115b80610a7d575060085463ffffffff600160a01b909104811690821611155b15610a9b576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b065750825b90506000826001600160401b03166001148015610b225750303b155b905081158015610b30575080155b15610b4e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b7857845460ff60401b1916600160401b1785555b610b848989898961138f565b8315610bca57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610be36107de565b841180610bee575080155b80610c395750600854600980549091600160c01b90046001600160401b0316908110610c1c57610c1c612626565b60009182526020909120600290910201546001600160401b031684105b15610c575760405163b0b4387760e01b815260040160405180910390fd5b60008080610c66600185612613565b90505b81610d0457600854600160c01b90046001600160401b03168110610d04578660098281548110610c9b57610c9b612626565b60009182526020909120600290910201546001600160401b031611610cf2576001915060098181548110610cd157610cd1612626565b60009182526020909120600290910201546001600160401b03169250610d04565b80610cfc8161263c565b915050610c69565b81610d225760405163b0b4387760e01b815260040160405180910390fd5b85610d2d8489612613565b119450505050505b92915050565b610d43610d7e565b6001600160a01b038116610d7257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d7b8161131e565b50565b33610db07f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146108f15760405163118cdaa760e01b8152336004820152602401610d69565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108635760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610d69565b6000610e53611462565b9050610e5d611e00565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273085a1ec0d51f4541d81a442a0df4c9e9c70d7d1e9063ce537a7790610edd9085908590889060040161285a565b602060405180830381865af4158015610efa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1e9190612a89565b610f3b576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590610fb7575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610f8157610f81612626565b6000918252602090912060029091020154610fac90600160401b90046001600160401b031684612aab565b6001600160401b0316115b1561104b57600854600980549091600160c01b90046001600160401b0316908110610fe457610fe4612626565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b031690601861102583612ad2565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806111b457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111a8600080516020612b15833981519152546001600160a01b031690565b6001600160a01b031614155b156108f15760405163703e46dd60e11b815260040160405180910390fd5b6111da610d7e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561126d575060408051601f3d908101601f1916820190925261126a918101906125e4565b60015b61129557604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d69565b600080516020612b1583398151915281146112c657604051632a87526960e21b815260048101829052602401610d69565b6112d08383611a91565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108f15760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156113d45750825b90506000826001600160401b031660011480156113f05750303b155b9050811580156113fe575080155b1561141c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561144657845460ff60401b1916600160401b1785555b61144f86611ae7565b611457611af8565b610b84898989611b00565b61146a611e1e565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611a9a82611c2d565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611adf576112d08282611c92565b610863611d08565b611aef611d27565b610d7b81611d70565b6108f1611d27565b82516001600160401b0316151580611b24575060208301516001600160401b031615155b80611b3157506020820151155b80611b3e57506040820151155b80611b4b57506060820151155b80611b5557508151155b80611b675750610e108163ffffffff16105b80611b7b57506301e133808163ffffffff16115b15611b99576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b806001600160a01b03163b600003611c6357604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d69565b600080516020612b1583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611caf9190612af8565b600060405180830381855af49150503d8060008114611cea576040519150601f19603f3d011682016040523d82523d6000602084013e611cef565b606091505b5091509150611cff858383611d78565b95945050505050565b34156108f15760405163b398979f60e01b815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166108f157604051631afcd79f60e31b815260040160405180910390fd5b610d43611d27565b606082611d8d57611d8882611dd7565b611dd0565b8151158015611da457506001600160a01b0384163b155b15611dcd57604051639996b31560e01b81526001600160a01b0385166004820152602401610d69565b50805b9392505050565b805115611de75780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e55604051806040016040528060008152602001600081525090565b8152602001611e77604051806040016040528060008152602001600081525090565b8152602001611e99604051806040016040528060008152602001600081525090565b8152602001611ebb604051806040016040528060008152602001600081525090565b8152602001611edd604051806040016040528060008152602001600081525090565b8152602001611eff604051806040016040528060008152602001600081525090565b8152602001611f21604051806040016040528060008152602001600081525090565b8152602001611f43604051806040016040528060008152602001600081525090565b8152602001611f65604051806040016040528060008152602001600081525090565b8152602001611f87604051806040016040528060008152602001600081525090565b8152602001611fa9604051806040016040528060008152602001600081525090565b8152602001611fcb604051806040016040528060008152602001600081525090565b8152602001611fed604051806040016040528060008152602001600081525090565b815260200161200f604051806040016040528060008152602001600081525090565b8152602001612031604051806040016040528060008152602001600081525090565b8152602001612053604051806040016040528060008152602001600081525090565b8152602001612075604051806040016040528060008152602001600081525090565b8152602001612097604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120c257600080fd5b919050565b6000602082840312156120d957600080fd5b611dd0826120ab565b6000602082840312156120f457600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b0381118282101715612134576121346120fb565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612162576121626120fb565b604052919050565b80356001600160401b03811681146120c257600080fd5b60006060828403121561219357600080fd5b604051606081018181106001600160401b03821117156121b5576121b56120fb565b6040529050806121c48361216a565b81526121d26020840161216a565b6020820152604083013560408201525092915050565b6000604082840312156121fa57600080fd5b604051604081018181106001600160401b038211171561221c5761221c6120fb565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561224b57600080fd5b6122558585612181565b925061048080605f198301121561226b57600080fd5b612273612111565b915061228286606087016121e8565b82526122918660a087016121e8565b60208301526122a38660e087016121e8565b60408301526101206122b7878288016121e8565b60608401526101606122cb888289016121e8565b60808501526101a06122df89828a016121e8565b60a08601526101e06122f38a828b016121e8565b60c08701526102206123078b828c016121e8565b60e088015261026061231b8c828d016121e8565b6101008901526102a06123308d828e016121e8565b878a01526123428d6102e08e016121e8565b6101408a01526123568d6103208e016121e8565b868a01526123688d6103608e016121e8565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b600080604083850312156123fd57600080fd5b612406836120ab565b91506020808401356001600160401b038082111561242357600080fd5b818601915086601f83011261243757600080fd5b813581811115612449576124496120fb565b61245b601f8201601f1916850161213a565b9150808252878482850101111561247157600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120c257600080fd5b6000602082840312156124b557600080fd5b611dd08261248f565b6000806000808486036101208112156124d657600080fd5b6124e08787612181565b94506080605f19820112156124f457600080fd5b50604051608081018181106001600160401b0382111715612517576125176120fb565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061255160e0860161248f565b915061256061010086016120ab565b905092959194509250565b60005b8381101561258657818101518382015260200161256e565b50506000910152565b60208152600082518060208401526125ae81604085016020870161256b565b601f01601f19169190910160400192915050565b600080604083850312156125d557600080fd5b50508035926020909101359150565b6000602082840312156125f657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610d3557610d356125fd565b634e487b7160e01b600052603260045260246000fd5b60008161264b5761264b6125fd565b506000190190565b8060005b6007811015610f3b578151845260209384019390910190600101612657565b61268b82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e08401525060808101516101006126ee8185018380518252602090810151910152565b60a0830151915061014061270e8186018480518252602090810151910152565b60c0840151925061018061272e8187018580518252602090810151910152565b60e085015193506101c061274e8188018680518252602090810151910152565b9285015193506102009261276e8785018680518252602090810151910152565b610120860151945061024061278f8189018780518252602090810151910152565b928601519450610280926127af8885018780518252602090810151910152565b61016087015195506102c06127d0818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a60820190508451825260208501516020830152604085015161288d604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a08501516101006128da8185018380518252602090810151910152565b60c087015191506101406128fa8186018480518252602090810151910152565b60e0880151925061018061291a8187018580518252602090810151910152565b9188015192506101c09161293a8684018580518252602090810151910152565b610120890151935061020061295b8188018680518252602090810151910152565b9189015193506102409161297b8784018680518252602090810151910152565b6101608a0151945061028061299c8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612a73610500830185612653565b612a816105e0830184612676565b949350505050565b600060208284031215612a9b57600080fd5b81518015158114611dd057600080fd5b6001600160401b03828116828216039080821115612acb57612acb6125fd565b5092915050565b60006001600160401b03808316818103612aee57612aee6125fd565b6001019392505050565b60008251612b0a81846020870161256b565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", + "nonce": "0x24", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x9fa47bd6a050d082431c44f52ba7f76c6d5f20e148074ab1e7dea25fcd0261e9", + "transactionType": "CREATE", + "contractName": "ERC1967Proxy", + "contractAddress": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", + "function": null, + "arguments": [ + "0x32BA90a34bb037454fe843c25ed5254aA4723E47", + "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" + ], + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x6ac5f", + "value": "0x0", + "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a00000000000000000000000032ba90a34bb037454fe843c25ed5254aa4723e47000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e00000000000000000000000000000000000000000000000000000000", + "nonce": "0x25", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", + "gas": "0x8e72", + "value": "0x0", + "input": "0x013fa5fc000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", + "nonce": "0x26", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", + "gas": "0x8e72", + "value": "0x0", + "input": "0xf2fde38b0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be", + "nonce": "0x27", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x5c9c27", + "logs": [ + { + "address": "0x32ba90a34bb037454fe843c25ed5254aa4723e47", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "blockHash": "0x48c0d61768ac51679adf7461e6f5dec40a79e652f258fa3edfecff7ebaaffa09", + "blockNumber": "0x6d5345f", + "transactionHash": "0x0e7302701b888b6e428b35635a80803c313ad519fc2ace24dd226bc0d2f8ade5", + "transactionIndex": "0x2a", + "logIndex": "0x32", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x0e7302701b888b6e428b35635a80803c313ad519fc2ace24dd226bc0d2f8ade5", + "transactionIndex": "0x2a", + "blockHash": "0x48c0d61768ac51679adf7461e6f5dec40a79e652f258fa3edfecff7ebaaffa09", + "blockNumber": "0x6d5345f", + "gasUsed": "0x290536", + "effectiveGasPrice": "0x5f5e100", + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": null, + "contractAddress": "0x32ba90a34bb037454fe843c25ed5254aa4723e47", + "gasUsedForL1": "0x34cf6", + "l1BlockNumber": "0x72313e" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x210978", + "logs": [ + { + "address": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x00000000000000000000000032ba90a34bb037454fe843c25ed5254aa4723e47" + ], + "data": "0x", + "blockHash": "0x670cba6f141e068053986ec8782ed834bef4ead5c22a25efb282a4b1d503b72d", + "blockNumber": "0x6d53462", + "transactionHash": "0x9fa47bd6a050d082431c44f52ba7f76c6d5f20e148074ab1e7dea25fcd0261e9", + "transactionIndex": "0x22", + "logIndex": "0x21", + "removed": false + }, + { + "address": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" + ], + "data": "0x", + "blockHash": "0x670cba6f141e068053986ec8782ed834bef4ead5c22a25efb282a4b1d503b72d", + "blockNumber": "0x6d53462", + "transactionHash": "0x9fa47bd6a050d082431c44f52ba7f76c6d5f20e148074ab1e7dea25fcd0261e9", + "transactionIndex": "0x22", + "logIndex": "0x22", + "removed": false + }, + { + "address": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x670cba6f141e068053986ec8782ed834bef4ead5c22a25efb282a4b1d503b72d", + "blockNumber": "0x6d53462", + "transactionHash": "0x9fa47bd6a050d082431c44f52ba7f76c6d5f20e148074ab1e7dea25fcd0261e9", + "transactionIndex": "0x22", + "logIndex": "0x23", + "removed": false + } + ], + "logsBloom": "0x00000000000000000100000000000000400000010000000000800000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000002000001000000000000000000000000000000080000020000000000400000000800020000000000000000000000000000400000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020004000000000000000000000000000000004004000000000000020000000000000000000000000000000000000000000000000000000000000000200", + "type": "0x2", + "transactionHash": "0x9fa47bd6a050d082431c44f52ba7f76c6d5f20e148074ab1e7dea25fcd0261e9", + "transactionIndex": "0x22", + "blockHash": "0x670cba6f141e068053986ec8782ed834bef4ead5c22a25efb282a4b1d503b72d", + "blockNumber": "0x6d53462", + "gasUsed": "0x5ac4b", + "effectiveGasPrice": "0x5f5e100", + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": null, + "contractAddress": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", + "gasUsedForL1": "0x89cf", + "l1BlockNumber": "0x72313e" + } + ], + "libraries": [ + "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x085a1Ec0d51f4541d81a442a0Df4c9E9C70D7D1e" + ], + "pending": [], + "returns": { + "lightClientState": { + "internal_type": "struct LightClient.LightClientState", + "value": "(0, 0, 1234)" + }, + "proxyAddress": { + "internal_type": "address", + "value": "0xdD5bc34ef6E04a5E3BDE097cEA889D391CBcF8cd" + }, + "implementationAddress": { + "internal_type": "address", + "value": "0x32BA90a34bb037454fe843c25ed5254aA4723E47" + } + }, + "timestamp": 1736785957, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArb.s.sol/421614/run-1736794002.json b/contracts/broadcast/LightClientArb.s.sol/421614/run-1736794002.json new file mode 100644 index 0000000000..c5692b0459 --- /dev/null +++ b/contracts/broadcast/LightClientArb.s.sol/421614/run-1736794002.json @@ -0,0 +1,263 @@ +{ + "transactions": [ + { + "hash": "0x8ee4fc5716aab2d9a20d449801f173d3cf161c7f3be5636619a125fece62d466", + "transactionType": "CREATE", + "contractName": "LightClientArbitrum", + "contractAddress": "0xbc46bbc10e6a3b4578011a8f5a91c1ca7214a541", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x36f946", + "value": "0x0", + "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000030565b6200002a62000030565b620000e4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000815760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000e15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612a7e6200010e600039600081816111480152818161117101526112f00152612a7e6000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b366004612004565b610584565b005b34801561017e57600080fd5b5061019261018d36600461201f565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612173565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b610170610308366004612327565b610848565b34801561031957600080fd5b506102a9610867565b34801561032e57600080fd5b50610170610884565b34801561034357600080fd5b506101706108f3565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b5061039861039336600461201f565b610905565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046123e0565b610a38565b34801561041e57600080fd5b5061017061042d3660046123fb565b610ac1565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906124cc565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046124ff565b610be5565b34801561055b57600080fd5b5061017061056a366004612004565b610d4b565b34801561057b57600080fd5b506009546102a9565b61058c610d8e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610de9565b6107338282610e59565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610f51565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b600060646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108439190612521565b905090565b61085061113d565b610859826111e2565b6108638282611223565b5050565b60006108716112e5565b50600080516020612a5283398151915290565b61088c610d8e565b6008546001600160a01b0316156108d857600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b6108fb610d8e565b6108f1600061132e565b6009805460009182919061091a600183612550565b8154811061092a5761092a612563565b6000918252602090912060029091020154600160801b90046001600160401b031684111561096b57604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610a3157846009828154811061099b5761099b612563565b6000918252602090912060029091020154600160801b90046001600160401b031610610a2957600981815481106109d4576109d4612563565b906000526020600020906002020160010154600982815481106109f9576109f9612563565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b60010161097f565b5050915091565b610a40610d8e565b610e108163ffffffff161080610a5f57506301e133808163ffffffff16115b80610a7d575060085463ffffffff600160a01b909104811690821611155b15610a9b576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b065750825b90506000826001600160401b03166001148015610b225750303b155b905081158015610b30575080155b15610b4e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b7857845460ff60401b1916600160401b1785555b610b818661139f565b610b896113b0565b610b948989896113b8565b8315610bda57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610bf36107de565b841180610bfe575080155b80610c495750600854600980549091600160c01b90046001600160401b0316908110610c2c57610c2c612563565b60009182526020909120600290910201546001600160401b031684105b15610c675760405163b0b4387760e01b815260040160405180910390fd5b60008080610c76600185612550565b90505b81610d1457600854600160c01b90046001600160401b03168110610d14578660098281548110610cab57610cab612563565b60009182526020909120600290910201546001600160401b031611610d02576001915060098181548110610ce157610ce1612563565b60009182526020909120600290910201546001600160401b03169250610d14565b80610d0c81612579565b915050610c79565b81610d325760405163b0b4387760e01b815260040160405180910390fd5b85610d3d8489612550565b119450505050505b92915050565b610d53610d8e565b6001600160a01b038116610d8257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d8b8161132e565b50565b33610dc07f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146108f15760405163118cdaa760e01b8152336004820152602401610d79565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108635760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610d79565b6000610e636114e5565b9050610e6d611d3d565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273085a1ec0d51f4541d81a442a0df4c9e9c70d7d1e9063ce537a7790610eed90859085908890600401612797565b602060405180830381865af4158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e91906129c6565b610f4b576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590610fc7575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610f9157610f91612563565b6000918252602090912060029091020154610fbc90600160401b90046001600160401b0316846129e8565b6001600160401b0316115b1561105b57600854600980549091600160c01b90046001600160401b0316908110610ff457610ff4612563565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b031690601861103583612a0f565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806111c457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111b8600080516020612a52833981519152546001600160a01b031690565b6001600160a01b031614155b156108f15760405163703e46dd60e11b815260040160405180910390fd5b6111ea610d8e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561127d575060408051601f3d908101601f1916820190925261127a91810190612521565b60015b6112a557604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d79565b600080516020612a5283398151915281146112d657604051632a87526960e21b815260048101829052602401610d79565b6112e08383611b14565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108f15760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6113a7611b6a565b610d8b81611bb3565b6108f1611b6a565b82516001600160401b03161515806113dc575060208301516001600160401b031615155b806113e957506020820151155b806113f657506040820151155b8061140357506060820151155b8061140d57508151155b8061141f5750610e108163ffffffff16105b8061143357506301e133808163ffffffff16115b15611451576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6114ed611d5b565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611b1d82611bbb565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611b62576112e08282611c20565b610863611c96565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166108f157604051631afcd79f60e31b815260040160405180910390fd5b610d53611b6a565b806001600160a01b03163b600003611bf157604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d79565b600080516020612a5283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611c3d9190612a35565b600060405180830381855af49150503d8060008114611c78576040519150601f19603f3d011682016040523d82523d6000602084013e611c7d565b606091505b5091509150611c8d858383611cb5565b95945050505050565b34156108f15760405163b398979f60e01b815260040160405180910390fd5b606082611cca57611cc582611d14565b611d0d565b8151158015611ce157506001600160a01b0384163b155b15611d0a57604051639996b31560e01b81526001600160a01b0385166004820152602401610d79565b50805b9392505050565b805115611d245780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611d92604051806040016040528060008152602001600081525090565b8152602001611db4604051806040016040528060008152602001600081525090565b8152602001611dd6604051806040016040528060008152602001600081525090565b8152602001611df8604051806040016040528060008152602001600081525090565b8152602001611e1a604051806040016040528060008152602001600081525090565b8152602001611e3c604051806040016040528060008152602001600081525090565b8152602001611e5e604051806040016040528060008152602001600081525090565b8152602001611e80604051806040016040528060008152602001600081525090565b8152602001611ea2604051806040016040528060008152602001600081525090565b8152602001611ec4604051806040016040528060008152602001600081525090565b8152602001611ee6604051806040016040528060008152602001600081525090565b8152602001611f08604051806040016040528060008152602001600081525090565b8152602001611f2a604051806040016040528060008152602001600081525090565b8152602001611f4c604051806040016040528060008152602001600081525090565b8152602001611f6e604051806040016040528060008152602001600081525090565b8152602001611f90604051806040016040528060008152602001600081525090565b8152602001611fb2604051806040016040528060008152602001600081525090565b8152602001611fd4604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b0381168114611fff57600080fd5b919050565b60006020828403121561201657600080fd5b611d0d82611fe8565b60006020828403121561203157600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b038111828210171561207157612071612038565b60405290565b604051601f8201601f191681016001600160401b038111828210171561209f5761209f612038565b604052919050565b80356001600160401b0381168114611fff57600080fd5b6000606082840312156120d057600080fd5b604051606081018181106001600160401b03821117156120f2576120f2612038565b604052905080612101836120a7565b815261210f602084016120a7565b6020820152604083013560408201525092915050565b60006040828403121561213757600080fd5b604051604081018181106001600160401b038211171561215957612159612038565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561218857600080fd5b61219285856120be565b925061048080605f19830112156121a857600080fd5b6121b061204e565b91506121bf8660608701612125565b82526121ce8660a08701612125565b60208301526121e08660e08701612125565b60408301526101206121f487828801612125565b606084015261016061220888828901612125565b60808501526101a061221c89828a01612125565b60a08601526101e06122308a828b01612125565b60c08701526102206122448b828c01612125565b60e08801526102606122588c828d01612125565b6101008901526102a061226d8d828e01612125565b878a015261227f8d6102e08e01612125565b6101408a01526122938d6103208e01612125565b868a01526122a58d6103608e01612125565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561233a57600080fd5b61234383611fe8565b91506020808401356001600160401b038082111561236057600080fd5b818601915086601f83011261237457600080fd5b81358181111561238657612386612038565b612398601f8201601f19168501612077565b915080825287848285010111156123ae57600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff81168114611fff57600080fd5b6000602082840312156123f257600080fd5b611d0d826123cc565b60008060008084860361012081121561241357600080fd5b61241d87876120be565b94506080605f198201121561243157600080fd5b50604051608081018181106001600160401b038211171561245457612454612038565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061248e60e086016123cc565b915061249d6101008601611fe8565b905092959194509250565b60005b838110156124c35781810151838201526020016124ab565b50506000910152565b60208152600082518060208401526124eb8160408501602087016124a8565b601f01601f19169190910160400192915050565b6000806040838503121561251257600080fd5b50508035926020909101359150565b60006020828403121561253357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610d4557610d4561253a565b634e487b7160e01b600052603260045260246000fd5b6000816125885761258861253a565b506000190190565b8060005b6007811015610f4b578151845260209384019390910190600101612594565b6125c882825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061262b8185018380518252602090810151910152565b60a0830151915061014061264b8186018480518252602090810151910152565b60c0840151925061018061266b8187018580518252602090810151910152565b60e085015193506101c061268b8188018680518252602090810151910152565b928501519350610200926126ab8785018680518252602090810151910152565b61012086015194506102406126cc8189018780518252602090810151910152565b928601519450610280926126ec8885018780518252602090810151910152565b61016087015195506102c061270d818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516127ca604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a08501516101006128178185018380518252602090810151910152565b60c087015191506101406128378186018480518252602090810151910152565b60e088015192506101806128578187018580518252602090810151910152565b9188015192506101c0916128778684018580518252602090810151910152565b61012089015193506102006128988188018680518252602090810151910152565b918901519350610240916128b88784018680518252602090810151910152565b6101608a015194506102806128d98189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e08301526129b0610500830185612590565b6129be6105e08301846125b3565b949350505050565b6000602082840312156129d857600080fd5b81518015158114611d0d57600080fd5b6001600160401b03828116828216039080821115612a0857612a0861253a565b5092915050565b60006001600160401b03808316818103612a2b57612a2b61253a565b6001019392505050565b60008251612a478184602087016124a8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", + "nonce": "0x27", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xbcf29ebae56fcdb3236c61b7bbc490bc66e86be47bfc91cc049fbc8f28b7b0e7", + "transactionType": "CREATE", + "contractName": "ERC1967Proxy", + "contractAddress": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", + "function": null, + "arguments": [ + "0xbC46bBC10E6A3B4578011A8F5A91c1Ca7214a541", + "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" + ], + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x6a8bd", + "value": "0x0", + "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a000000000000000000000000bc46bbc10e6a3b4578011a8f5a91c1ca7214a541000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e00000000000000000000000000000000000000000000000000000000", + "nonce": "0x28", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xfaf043edabb524e6e96666bb2e1067ed55efa7fe93640273e7728f0ba1e98400", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", + "gas": "0x98f7", + "value": "0x0", + "input": "0x013fa5fc000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", + "nonce": "0x29", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xf66e104b03cc22d470375cad370469f4aee371d721ee833107c5eb88556e4fc2", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", + "gas": "0x98f7", + "value": "0x0", + "input": "0xf2fde38b0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be", + "nonce": "0x2a", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x10e525a", + "logs": [ + { + "address": "0xbc46bbc10e6a3b4578011a8f5a91c1ca7214a541", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "blockHash": "0xba34f5d1c0bd2957d8b5332ab36948712f2f3b1b52216af997dccca51e8eb48f", + "blockNumber": "0x6d557b3", + "transactionHash": "0x8ee4fc5716aab2d9a20d449801f173d3cf161c7f3be5636619a125fece62d466", + "transactionIndex": "0x22", + "logIndex": "0x135", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000004000000000002000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x8ee4fc5716aab2d9a20d449801f173d3cf161c7f3be5636619a125fece62d466", + "transactionIndex": "0x22", + "blockHash": "0xba34f5d1c0bd2957d8b5332ab36948712f2f3b1b52216af997dccca51e8eb48f", + "blockNumber": "0x6d557b3", + "gasUsed": "0x296f40", + "effectiveGasPrice": "0x5f5e100", + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": null, + "contractAddress": "0xbc46bbc10e6a3b4578011a8f5a91c1ca7214a541", + "gasUsedForL1": "0x45b8c", + "l1BlockNumber": "0x7233dc" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x586756", + "logs": [ + { + "address": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000bc46bbc10e6a3b4578011a8f5a91c1ca7214a541" + ], + "data": "0x", + "blockHash": "0x63aef7ccc37414cbffca1463329e5a499fafadd9d0d8c70673c667c83e684f5e", + "blockNumber": "0x6d557b5", + "transactionHash": "0xbcf29ebae56fcdb3236c61b7bbc490bc66e86be47bfc91cc049fbc8f28b7b0e7", + "transactionIndex": "0x15", + "logIndex": "0x20", + "removed": false + }, + { + "address": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" + ], + "data": "0x", + "blockHash": "0x63aef7ccc37414cbffca1463329e5a499fafadd9d0d8c70673c667c83e684f5e", + "blockNumber": "0x6d557b5", + "transactionHash": "0xbcf29ebae56fcdb3236c61b7bbc490bc66e86be47bfc91cc049fbc8f28b7b0e7", + "transactionIndex": "0x15", + "logIndex": "0x21", + "removed": false + }, + { + "address": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x63aef7ccc37414cbffca1463329e5a499fafadd9d0d8c70673c667c83e684f5e", + "blockNumber": "0x6d557b5", + "transactionHash": "0xbcf29ebae56fcdb3236c61b7bbc490bc66e86be47bfc91cc049fbc8f28b7b0e7", + "transactionIndex": "0x15", + "logIndex": "0x22", + "removed": false + } + ], + "logsBloom": "0x00000000000000000100000000000000400000000000000000800000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000002000001000000000000000000000000000000080000020000000000000000000800000000000000000000000000000000400000000000000000000800000000000400000000000080000000000000000000000000000000000002000000000000000000000000008000000000000000000000000020004000000000000000000000000000000004000000000000008020000004000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xbcf29ebae56fcdb3236c61b7bbc490bc66e86be47bfc91cc049fbc8f28b7b0e7", + "transactionIndex": "0x15", + "blockHash": "0x63aef7ccc37414cbffca1463329e5a499fafadd9d0d8c70673c667c83e684f5e", + "blockNumber": "0x6d557b5", + "gasUsed": "0x5d71d", + "effectiveGasPrice": "0x5f5e100", + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": null, + "contractAddress": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", + "gasUsedForL1": "0xb76c", + "l1BlockNumber": "0x7233dc" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xd5b4b", + "logs": [ + { + "address": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", + "topics": [ + "0x8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072" + ], + "data": "0x000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", + "blockHash": "0x916e3a1862d770bbba2605b5f8bdaccb5e326deb13456d2dd1578170a1e1d1d5", + "blockNumber": "0x6d557b7", + "transactionHash": "0xfaf043edabb524e6e96666bb2e1067ed55efa7fe93640273e7728f0ba1e98400", + "transactionIndex": "0x11", + "logIndex": "0x12", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400200000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xfaf043edabb524e6e96666bb2e1067ed55efa7fe93640273e7728f0ba1e98400", + "transactionIndex": "0x11", + "blockHash": "0x916e3a1862d770bbba2605b5f8bdaccb5e326deb13456d2dd1578170a1e1d1d5", + "blockNumber": "0x6d557b7", + "gasUsed": "0xa1b8", + "effectiveGasPrice": "0x5f5e100", + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", + "contractAddress": null, + "gasUsedForL1": "0x1864", + "l1BlockNumber": "0x7233dc" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xed1a1", + "logs": [ + { + "address": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e", + "0x0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be" + ], + "data": "0x", + "blockHash": "0xb9f1375d9bbe224e44bc816b9bd486b80df08ce7458d5e2db84c0cb761072328", + "blockNumber": "0x6d557b9", + "transactionHash": "0xf66e104b03cc22d470375cad370469f4aee371d721ee833107c5eb88556e4fc2", + "transactionIndex": "0x17", + "logIndex": "0x17", + "removed": false + } + ], + "logsBloom": "0x00000000000000000100000000000000000000000000000000800000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000400000000000000000000000800000000000000000000000002000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000020000000000", + "type": "0x2", + "transactionHash": "0xf66e104b03cc22d470375cad370469f4aee371d721ee833107c5eb88556e4fc2", + "transactionIndex": "0x17", + "blockHash": "0xb9f1375d9bbe224e44bc816b9bd486b80df08ce7458d5e2db84c0cb761072328", + "blockNumber": "0x6d557b9", + "gasUsed": "0x9ba4", + "effectiveGasPrice": "0x5f5e100", + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", + "contractAddress": null, + "gasUsedForL1": "0x1864", + "l1BlockNumber": "0x7233dd" + } + ], + "libraries": [ + "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x085a1Ec0d51f4541d81a442a0Df4c9E9C70D7D1e" + ], + "pending": [], + "returns": { + "implementationAddress": { + "internal_type": "address", + "value": "0xbC46bBC10E6A3B4578011A8F5A91c1Ca7214a541" + }, + "lightClientState": { + "internal_type": "struct LightClient.LightClientState", + "value": "(0, 0, 1234)" + }, + "proxyAddress": { + "internal_type": "address", + "value": "0xAAaFDD37B6ed54094f9beF8613777f1B05d9aCb5" + } + }, + "timestamp": 1736794002, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArb.s.sol/421614/run-1736794243.json b/contracts/broadcast/LightClientArb.s.sol/421614/run-1736794243.json new file mode 100644 index 0000000000..73675365ac --- /dev/null +++ b/contracts/broadcast/LightClientArb.s.sol/421614/run-1736794243.json @@ -0,0 +1,263 @@ +{ + "transactions": [ + { + "hash": "0xc8bd6be597bd34f8bcf5704c80814b870656bdfc7d398525990b82a781e9903c", + "transactionType": "CREATE", + "contractName": "LightClientArbitrum", + "contractAddress": "0x9ba96998a54340241cd0778feb78f30427b5c080", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x32ee06", + "value": "0x0", + "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000030565b6200002a62000030565b620000e4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000815760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000e15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612a7e6200010e600039600081816111480152818161117101526112f00152612a7e6000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b366004612004565b610584565b005b34801561017e57600080fd5b5061019261018d36600461201f565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612173565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b610170610308366004612327565b610848565b34801561031957600080fd5b506102a9610867565b34801561032e57600080fd5b50610170610884565b34801561034357600080fd5b506101706108f3565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b5061039861039336600461201f565b610905565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046123e0565b610a38565b34801561041e57600080fd5b5061017061042d3660046123fb565b610ac1565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906124cc565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046124ff565b610be5565b34801561055b57600080fd5b5061017061056a366004612004565b610d4b565b34801561057b57600080fd5b506009546102a9565b61058c610d8e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610de9565b6107338282610e59565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610f51565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b600060646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108439190612521565b905090565b61085061113d565b610859826111e2565b6108638282611223565b5050565b60006108716112e5565b50600080516020612a5283398151915290565b61088c610d8e565b6008546001600160a01b0316156108d857600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b6108fb610d8e565b6108f1600061132e565b6009805460009182919061091a600183612550565b8154811061092a5761092a612563565b6000918252602090912060029091020154600160801b90046001600160401b031684111561096b57604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610a3157846009828154811061099b5761099b612563565b6000918252602090912060029091020154600160801b90046001600160401b031610610a2957600981815481106109d4576109d4612563565b906000526020600020906002020160010154600982815481106109f9576109f9612563565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b60010161097f565b5050915091565b610a40610d8e565b610e108163ffffffff161080610a5f57506301e133808163ffffffff16115b80610a7d575060085463ffffffff600160a01b909104811690821611155b15610a9b576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b065750825b90506000826001600160401b03166001148015610b225750303b155b905081158015610b30575080155b15610b4e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b7857845460ff60401b1916600160401b1785555b610b818661139f565b610b896113b0565b610b948989896113b8565b8315610bda57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610bf36107de565b841180610bfe575080155b80610c495750600854600980549091600160c01b90046001600160401b0316908110610c2c57610c2c612563565b60009182526020909120600290910201546001600160401b031684105b15610c675760405163b0b4387760e01b815260040160405180910390fd5b60008080610c76600185612550565b90505b81610d1457600854600160c01b90046001600160401b03168110610d14578660098281548110610cab57610cab612563565b60009182526020909120600290910201546001600160401b031611610d02576001915060098181548110610ce157610ce1612563565b60009182526020909120600290910201546001600160401b03169250610d14565b80610d0c81612579565b915050610c79565b81610d325760405163b0b4387760e01b815260040160405180910390fd5b85610d3d8489612550565b119450505050505b92915050565b610d53610d8e565b6001600160a01b038116610d8257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d8b8161132e565b50565b33610dc07f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146108f15760405163118cdaa760e01b8152336004820152602401610d79565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108635760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610d79565b6000610e636114e5565b9050610e6d611d3d565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273085a1ec0d51f4541d81a442a0df4c9e9c70d7d1e9063ce537a7790610eed90859085908890600401612797565b602060405180830381865af4158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e91906129c6565b610f4b576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590610fc7575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610f9157610f91612563565b6000918252602090912060029091020154610fbc90600160401b90046001600160401b0316846129e8565b6001600160401b0316115b1561105b57600854600980549091600160c01b90046001600160401b0316908110610ff457610ff4612563565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b031690601861103583612a0f565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806111c457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111b8600080516020612a52833981519152546001600160a01b031690565b6001600160a01b031614155b156108f15760405163703e46dd60e11b815260040160405180910390fd5b6111ea610d8e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561127d575060408051601f3d908101601f1916820190925261127a91810190612521565b60015b6112a557604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d79565b600080516020612a5283398151915281146112d657604051632a87526960e21b815260048101829052602401610d79565b6112e08383611b14565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108f15760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6113a7611b6a565b610d8b81611bb3565b6108f1611b6a565b82516001600160401b03161515806113dc575060208301516001600160401b031615155b806113e957506020820151155b806113f657506040820151155b8061140357506060820151155b8061140d57508151155b8061141f5750610e108163ffffffff16105b8061143357506301e133808163ffffffff16115b15611451576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6114ed611d5b565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611b1d82611bbb565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611b62576112e08282611c20565b610863611c96565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166108f157604051631afcd79f60e31b815260040160405180910390fd5b610d53611b6a565b806001600160a01b03163b600003611bf157604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d79565b600080516020612a5283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611c3d9190612a35565b600060405180830381855af49150503d8060008114611c78576040519150601f19603f3d011682016040523d82523d6000602084013e611c7d565b606091505b5091509150611c8d858383611cb5565b95945050505050565b34156108f15760405163b398979f60e01b815260040160405180910390fd5b606082611cca57611cc582611d14565b611d0d565b8151158015611ce157506001600160a01b0384163b155b15611d0a57604051639996b31560e01b81526001600160a01b0385166004820152602401610d79565b50805b9392505050565b805115611d245780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611d92604051806040016040528060008152602001600081525090565b8152602001611db4604051806040016040528060008152602001600081525090565b8152602001611dd6604051806040016040528060008152602001600081525090565b8152602001611df8604051806040016040528060008152602001600081525090565b8152602001611e1a604051806040016040528060008152602001600081525090565b8152602001611e3c604051806040016040528060008152602001600081525090565b8152602001611e5e604051806040016040528060008152602001600081525090565b8152602001611e80604051806040016040528060008152602001600081525090565b8152602001611ea2604051806040016040528060008152602001600081525090565b8152602001611ec4604051806040016040528060008152602001600081525090565b8152602001611ee6604051806040016040528060008152602001600081525090565b8152602001611f08604051806040016040528060008152602001600081525090565b8152602001611f2a604051806040016040528060008152602001600081525090565b8152602001611f4c604051806040016040528060008152602001600081525090565b8152602001611f6e604051806040016040528060008152602001600081525090565b8152602001611f90604051806040016040528060008152602001600081525090565b8152602001611fb2604051806040016040528060008152602001600081525090565b8152602001611fd4604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b0381168114611fff57600080fd5b919050565b60006020828403121561201657600080fd5b611d0d82611fe8565b60006020828403121561203157600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b038111828210171561207157612071612038565b60405290565b604051601f8201601f191681016001600160401b038111828210171561209f5761209f612038565b604052919050565b80356001600160401b0381168114611fff57600080fd5b6000606082840312156120d057600080fd5b604051606081018181106001600160401b03821117156120f2576120f2612038565b604052905080612101836120a7565b815261210f602084016120a7565b6020820152604083013560408201525092915050565b60006040828403121561213757600080fd5b604051604081018181106001600160401b038211171561215957612159612038565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561218857600080fd5b61219285856120be565b925061048080605f19830112156121a857600080fd5b6121b061204e565b91506121bf8660608701612125565b82526121ce8660a08701612125565b60208301526121e08660e08701612125565b60408301526101206121f487828801612125565b606084015261016061220888828901612125565b60808501526101a061221c89828a01612125565b60a08601526101e06122308a828b01612125565b60c08701526102206122448b828c01612125565b60e08801526102606122588c828d01612125565b6101008901526102a061226d8d828e01612125565b878a015261227f8d6102e08e01612125565b6101408a01526122938d6103208e01612125565b868a01526122a58d6103608e01612125565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561233a57600080fd5b61234383611fe8565b91506020808401356001600160401b038082111561236057600080fd5b818601915086601f83011261237457600080fd5b81358181111561238657612386612038565b612398601f8201601f19168501612077565b915080825287848285010111156123ae57600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff81168114611fff57600080fd5b6000602082840312156123f257600080fd5b611d0d826123cc565b60008060008084860361012081121561241357600080fd5b61241d87876120be565b94506080605f198201121561243157600080fd5b50604051608081018181106001600160401b038211171561245457612454612038565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061248e60e086016123cc565b915061249d6101008601611fe8565b905092959194509250565b60005b838110156124c35781810151838201526020016124ab565b50506000910152565b60208152600082518060208401526124eb8160408501602087016124a8565b601f01601f19169190910160400192915050565b6000806040838503121561251257600080fd5b50508035926020909101359150565b60006020828403121561253357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610d4557610d4561253a565b634e487b7160e01b600052603260045260246000fd5b6000816125885761258861253a565b506000190190565b8060005b6007811015610f4b578151845260209384019390910190600101612594565b6125c882825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061262b8185018380518252602090810151910152565b60a0830151915061014061264b8186018480518252602090810151910152565b60c0840151925061018061266b8187018580518252602090810151910152565b60e085015193506101c061268b8188018680518252602090810151910152565b928501519350610200926126ab8785018680518252602090810151910152565b61012086015194506102406126cc8189018780518252602090810151910152565b928601519450610280926126ec8885018780518252602090810151910152565b61016087015195506102c061270d818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516127ca604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a08501516101006128178185018380518252602090810151910152565b60c087015191506101406128378186018480518252602090810151910152565b60e088015192506101806128578187018580518252602090810151910152565b9188015192506101c0916128778684018580518252602090810151910152565b61012089015193506102006128988188018680518252602090810151910152565b918901519350610240916128b88784018680518252602090810151910152565b6101608a015194506102806128d98189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e08301526129b0610500830185612590565b6129be6105e08301846125b3565b949350505050565b6000602082840312156129d857600080fd5b81518015158114611d0d57600080fd5b6001600160401b03828116828216039080821115612a0857612a0861253a565b5092915050565b60006001600160401b03808316818103612a2b57612a2b61253a565b6001019392505050565b60008251612a478184602087016124a8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", + "nonce": "0x2b", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x21e0ab5833d3e2fe8efd9ffbac2865d8122c42af6a4b8830a793f4b4dae6661d", + "transactionType": "CREATE", + "contractName": "ERC1967Proxy", + "contractAddress": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "function": null, + "arguments": [ + "0x9BA96998A54340241Cd0778feb78F30427b5c080", + "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" + ], + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x6a8bd", + "value": "0x0", + "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a0000000000000000000000009ba96998a54340241cd0778feb78f30427b5c080000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e00000000000000000000000000000000000000000000000000000000", + "nonce": "0x2c", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xe34e2b35ce2e9dd71acf56f37b0b71f314d10465c8f158375e955b4f11eccdd4", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "gas": "0x7e03", + "value": "0x0", + "input": "0x013fa5fc000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", + "nonce": "0x2d", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x7e87dff33b5529741c8fda84bb2f544234f2fe98754af514911b5a9a7c8a5bf1", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "gas": "0x7e03", + "value": "0x0", + "input": "0xf2fde38b0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be", + "nonce": "0x2e", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xee3338", + "logs": [ + { + "address": "0x9ba96998a54340241cd0778feb78f30427b5c080", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "blockHash": "0xd54d7070159f7dce625447d28f9b9bdd0b9e5314a94f8400821e2bdd4c5efc32", + "blockNumber": "0x6d5586b", + "transactionHash": "0xc8bd6be597bd34f8bcf5704c80814b870656bdfc7d398525990b82a781e9903c", + "transactionIndex": "0x6d", + "logIndex": "0xb4", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000010000002000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xc8bd6be597bd34f8bcf5704c80814b870656bdfc7d398525990b82a781e9903c", + "transactionIndex": "0x6d", + "blockHash": "0xd54d7070159f7dce625447d28f9b9bdd0b9e5314a94f8400821e2bdd4c5efc32", + "blockNumber": "0x6d5586b", + "gasUsed": "0x26aaa5", + "effectiveGasPrice": "0x5f5e100", + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": null, + "contractAddress": "0x9ba96998a54340241cd0778feb78f30427b5c080", + "gasUsedForL1": "0x196f1", + "l1BlockNumber": "0x7233ec" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xbfe2a", + "logs": [ + { + "address": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x0000000000000000000000009ba96998a54340241cd0778feb78f30427b5c080" + ], + "data": "0x", + "blockHash": "0x67ecfe8cf0257c29a130d54c1b2e21c1c3004ac3e537e17687dc54f08d83a9b8", + "blockNumber": "0x6d5586e", + "transactionHash": "0x21e0ab5833d3e2fe8efd9ffbac2865d8122c42af6a4b8830a793f4b4dae6661d", + "transactionIndex": "0xa", + "logIndex": "0xa", + "removed": false + }, + { + "address": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" + ], + "data": "0x", + "blockHash": "0x67ecfe8cf0257c29a130d54c1b2e21c1c3004ac3e537e17687dc54f08d83a9b8", + "blockNumber": "0x6d5586e", + "transactionHash": "0x21e0ab5833d3e2fe8efd9ffbac2865d8122c42af6a4b8830a793f4b4dae6661d", + "transactionIndex": "0xa", + "logIndex": "0xb", + "removed": false + }, + { + "address": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x67ecfe8cf0257c29a130d54c1b2e21c1c3004ac3e537e17687dc54f08d83a9b8", + "blockNumber": "0x6d5586e", + "transactionHash": "0x21e0ab5833d3e2fe8efd9ffbac2865d8122c42af6a4b8830a793f4b4dae6661d", + "transactionIndex": "0xa", + "logIndex": "0xc", + "removed": false + } + ], + "logsBloom": "0x00000000000000000100000000000000400080000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000001000000000000000000000000000000080000020000000000000000000800000000000000000001000000000000400000000000000000000800000000000000000000000080000000000000002000000000000000000000000000000000000000000000080000000000000000000000000020004000000000000000000000000000000004000000000000001020000000000000000000000000200000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x21e0ab5833d3e2fe8efd9ffbac2865d8122c42af6a4b8830a793f4b4dae6661d", + "transactionIndex": "0xa", + "blockHash": "0x67ecfe8cf0257c29a130d54c1b2e21c1c3004ac3e537e17687dc54f08d83a9b8", + "blockNumber": "0x6d5586e", + "gasUsed": "0x562b1", + "effectiveGasPrice": "0x5f5e100", + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": null, + "contractAddress": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "gasUsedForL1": "0x4300", + "l1BlockNumber": "0x7233ec" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x1ff20a", + "logs": [ + { + "address": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "topics": [ + "0x8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072" + ], + "data": "0x000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", + "blockHash": "0xbbb37ce067e484a7dcd4026d2ad507e0ab3a1bd2ec226e16efef0652e2e83ba0", + "blockNumber": "0x6d55870", + "transactionHash": "0xe34e2b35ce2e9dd71acf56f37b0b71f314d10465c8f158375e955b4f11eccdd4", + "transactionIndex": "0x13", + "logIndex": "0x41", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000200000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xe34e2b35ce2e9dd71acf56f37b0b71f314d10465c8f158375e955b4f11eccdd4", + "transactionIndex": "0x13", + "blockHash": "0xbbb37ce067e484a7dcd4026d2ad507e0ab3a1bd2ec226e16efef0652e2e83ba0", + "blockNumber": "0x6d55870", + "gasUsed": "0x923a", + "effectiveGasPrice": "0x5f5e100", + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "contractAddress": null, + "gasUsedForL1": "0x8e6", + "l1BlockNumber": "0x7233ec" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x32aaa9", + "logs": [ + { + "address": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e", + "0x0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be" + ], + "data": "0x", + "blockHash": "0x9356d5c6408430e337ff0155c0ca5fe5c9b44c29b037fd08b8e5a54462063b60", + "blockNumber": "0x6d55872", + "transactionHash": "0x7e87dff33b5529741c8fda84bb2f544234f2fe98754af514911b5a9a7c8a5bf1", + "transactionIndex": "0x32", + "logIndex": "0x37", + "removed": false + } + ], + "logsBloom": "0x00000000000000000100000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000080000000000000000000000000000000000000000000001000000000000400000000000000000000000000000000000000000000000000000000800002000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000020000000000", + "type": "0x2", + "transactionHash": "0x7e87dff33b5529741c8fda84bb2f544234f2fe98754af514911b5a9a7c8a5bf1", + "transactionIndex": "0x32", + "blockHash": "0x9356d5c6408430e337ff0155c0ca5fe5c9b44c29b037fd08b8e5a54462063b60", + "blockNumber": "0x6d55872", + "gasUsed": "0x8c26", + "effectiveGasPrice": "0x5f5e100", + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "contractAddress": null, + "gasUsedForL1": "0x8e6", + "l1BlockNumber": "0x7233ec" + } + ], + "libraries": [ + "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x085a1Ec0d51f4541d81a442a0Df4c9E9C70D7D1e" + ], + "pending": [], + "returns": { + "proxyAddress": { + "internal_type": "address", + "value": "0x1e28b9eE6711Bdf72b94d2159D23E93784D8F008" + }, + "lightClientState": { + "internal_type": "struct LightClient.LightClientState", + "value": "(0, 0, 1234)" + }, + "implementationAddress": { + "internal_type": "address", + "value": "0x9BA96998A54340241Cd0778feb78F30427b5c080" + } + }, + "timestamp": 1736794243, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArb.s.sol/421614/run-latest.json b/contracts/broadcast/LightClientArb.s.sol/421614/run-latest.json new file mode 100644 index 0000000000..73675365ac --- /dev/null +++ b/contracts/broadcast/LightClientArb.s.sol/421614/run-latest.json @@ -0,0 +1,263 @@ +{ + "transactions": [ + { + "hash": "0xc8bd6be597bd34f8bcf5704c80814b870656bdfc7d398525990b82a781e9903c", + "transactionType": "CREATE", + "contractName": "LightClientArbitrum", + "contractAddress": "0x9ba96998a54340241cd0778feb78f30427b5c080", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x32ee06", + "value": "0x0", + "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000030565b6200002a62000030565b620000e4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000815760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000e15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612a7e6200010e600039600081816111480152818161117101526112f00152612a7e6000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b366004612004565b610584565b005b34801561017e57600080fd5b5061019261018d36600461201f565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612173565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b610170610308366004612327565b610848565b34801561031957600080fd5b506102a9610867565b34801561032e57600080fd5b50610170610884565b34801561034357600080fd5b506101706108f3565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b5061039861039336600461201f565b610905565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046123e0565b610a38565b34801561041e57600080fd5b5061017061042d3660046123fb565b610ac1565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906124cc565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046124ff565b610be5565b34801561055b57600080fd5b5061017061056a366004612004565b610d4b565b34801561057b57600080fd5b506009546102a9565b61058c610d8e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610de9565b6107338282610e59565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610f51565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b600060646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108439190612521565b905090565b61085061113d565b610859826111e2565b6108638282611223565b5050565b60006108716112e5565b50600080516020612a5283398151915290565b61088c610d8e565b6008546001600160a01b0316156108d857600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b6108fb610d8e565b6108f1600061132e565b6009805460009182919061091a600183612550565b8154811061092a5761092a612563565b6000918252602090912060029091020154600160801b90046001600160401b031684111561096b57604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610a3157846009828154811061099b5761099b612563565b6000918252602090912060029091020154600160801b90046001600160401b031610610a2957600981815481106109d4576109d4612563565b906000526020600020906002020160010154600982815481106109f9576109f9612563565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b60010161097f565b5050915091565b610a40610d8e565b610e108163ffffffff161080610a5f57506301e133808163ffffffff16115b80610a7d575060085463ffffffff600160a01b909104811690821611155b15610a9b576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b065750825b90506000826001600160401b03166001148015610b225750303b155b905081158015610b30575080155b15610b4e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b7857845460ff60401b1916600160401b1785555b610b818661139f565b610b896113b0565b610b948989896113b8565b8315610bda57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610bf36107de565b841180610bfe575080155b80610c495750600854600980549091600160c01b90046001600160401b0316908110610c2c57610c2c612563565b60009182526020909120600290910201546001600160401b031684105b15610c675760405163b0b4387760e01b815260040160405180910390fd5b60008080610c76600185612550565b90505b81610d1457600854600160c01b90046001600160401b03168110610d14578660098281548110610cab57610cab612563565b60009182526020909120600290910201546001600160401b031611610d02576001915060098181548110610ce157610ce1612563565b60009182526020909120600290910201546001600160401b03169250610d14565b80610d0c81612579565b915050610c79565b81610d325760405163b0b4387760e01b815260040160405180910390fd5b85610d3d8489612550565b119450505050505b92915050565b610d53610d8e565b6001600160a01b038116610d8257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d8b8161132e565b50565b33610dc07f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146108f15760405163118cdaa760e01b8152336004820152602401610d79565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108635760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610d79565b6000610e636114e5565b9050610e6d611d3d565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273085a1ec0d51f4541d81a442a0df4c9e9c70d7d1e9063ce537a7790610eed90859085908890600401612797565b602060405180830381865af4158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e91906129c6565b610f4b576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590610fc7575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610f9157610f91612563565b6000918252602090912060029091020154610fbc90600160401b90046001600160401b0316846129e8565b6001600160401b0316115b1561105b57600854600980549091600160c01b90046001600160401b0316908110610ff457610ff4612563565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b031690601861103583612a0f565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806111c457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111b8600080516020612a52833981519152546001600160a01b031690565b6001600160a01b031614155b156108f15760405163703e46dd60e11b815260040160405180910390fd5b6111ea610d8e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561127d575060408051601f3d908101601f1916820190925261127a91810190612521565b60015b6112a557604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d79565b600080516020612a5283398151915281146112d657604051632a87526960e21b815260048101829052602401610d79565b6112e08383611b14565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108f15760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6113a7611b6a565b610d8b81611bb3565b6108f1611b6a565b82516001600160401b03161515806113dc575060208301516001600160401b031615155b806113e957506020820151155b806113f657506040820151155b8061140357506060820151155b8061140d57508151155b8061141f5750610e108163ffffffff16105b8061143357506301e133808163ffffffff16115b15611451576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6114ed611d5b565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611b1d82611bbb565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611b62576112e08282611c20565b610863611c96565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166108f157604051631afcd79f60e31b815260040160405180910390fd5b610d53611b6a565b806001600160a01b03163b600003611bf157604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d79565b600080516020612a5283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611c3d9190612a35565b600060405180830381855af49150503d8060008114611c78576040519150601f19603f3d011682016040523d82523d6000602084013e611c7d565b606091505b5091509150611c8d858383611cb5565b95945050505050565b34156108f15760405163b398979f60e01b815260040160405180910390fd5b606082611cca57611cc582611d14565b611d0d565b8151158015611ce157506001600160a01b0384163b155b15611d0a57604051639996b31560e01b81526001600160a01b0385166004820152602401610d79565b50805b9392505050565b805115611d245780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611d92604051806040016040528060008152602001600081525090565b8152602001611db4604051806040016040528060008152602001600081525090565b8152602001611dd6604051806040016040528060008152602001600081525090565b8152602001611df8604051806040016040528060008152602001600081525090565b8152602001611e1a604051806040016040528060008152602001600081525090565b8152602001611e3c604051806040016040528060008152602001600081525090565b8152602001611e5e604051806040016040528060008152602001600081525090565b8152602001611e80604051806040016040528060008152602001600081525090565b8152602001611ea2604051806040016040528060008152602001600081525090565b8152602001611ec4604051806040016040528060008152602001600081525090565b8152602001611ee6604051806040016040528060008152602001600081525090565b8152602001611f08604051806040016040528060008152602001600081525090565b8152602001611f2a604051806040016040528060008152602001600081525090565b8152602001611f4c604051806040016040528060008152602001600081525090565b8152602001611f6e604051806040016040528060008152602001600081525090565b8152602001611f90604051806040016040528060008152602001600081525090565b8152602001611fb2604051806040016040528060008152602001600081525090565b8152602001611fd4604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b0381168114611fff57600080fd5b919050565b60006020828403121561201657600080fd5b611d0d82611fe8565b60006020828403121561203157600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b038111828210171561207157612071612038565b60405290565b604051601f8201601f191681016001600160401b038111828210171561209f5761209f612038565b604052919050565b80356001600160401b0381168114611fff57600080fd5b6000606082840312156120d057600080fd5b604051606081018181106001600160401b03821117156120f2576120f2612038565b604052905080612101836120a7565b815261210f602084016120a7565b6020820152604083013560408201525092915050565b60006040828403121561213757600080fd5b604051604081018181106001600160401b038211171561215957612159612038565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561218857600080fd5b61219285856120be565b925061048080605f19830112156121a857600080fd5b6121b061204e565b91506121bf8660608701612125565b82526121ce8660a08701612125565b60208301526121e08660e08701612125565b60408301526101206121f487828801612125565b606084015261016061220888828901612125565b60808501526101a061221c89828a01612125565b60a08601526101e06122308a828b01612125565b60c08701526102206122448b828c01612125565b60e08801526102606122588c828d01612125565b6101008901526102a061226d8d828e01612125565b878a015261227f8d6102e08e01612125565b6101408a01526122938d6103208e01612125565b868a01526122a58d6103608e01612125565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561233a57600080fd5b61234383611fe8565b91506020808401356001600160401b038082111561236057600080fd5b818601915086601f83011261237457600080fd5b81358181111561238657612386612038565b612398601f8201601f19168501612077565b915080825287848285010111156123ae57600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff81168114611fff57600080fd5b6000602082840312156123f257600080fd5b611d0d826123cc565b60008060008084860361012081121561241357600080fd5b61241d87876120be565b94506080605f198201121561243157600080fd5b50604051608081018181106001600160401b038211171561245457612454612038565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061248e60e086016123cc565b915061249d6101008601611fe8565b905092959194509250565b60005b838110156124c35781810151838201526020016124ab565b50506000910152565b60208152600082518060208401526124eb8160408501602087016124a8565b601f01601f19169190910160400192915050565b6000806040838503121561251257600080fd5b50508035926020909101359150565b60006020828403121561253357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610d4557610d4561253a565b634e487b7160e01b600052603260045260246000fd5b6000816125885761258861253a565b506000190190565b8060005b6007811015610f4b578151845260209384019390910190600101612594565b6125c882825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061262b8185018380518252602090810151910152565b60a0830151915061014061264b8186018480518252602090810151910152565b60c0840151925061018061266b8187018580518252602090810151910152565b60e085015193506101c061268b8188018680518252602090810151910152565b928501519350610200926126ab8785018680518252602090810151910152565b61012086015194506102406126cc8189018780518252602090810151910152565b928601519450610280926126ec8885018780518252602090810151910152565b61016087015195506102c061270d818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516127ca604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a08501516101006128178185018380518252602090810151910152565b60c087015191506101406128378186018480518252602090810151910152565b60e088015192506101806128578187018580518252602090810151910152565b9188015192506101c0916128778684018580518252602090810151910152565b61012089015193506102006128988188018680518252602090810151910152565b918901519350610240916128b88784018680518252602090810151910152565b6101608a015194506102806128d98189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e08301526129b0610500830185612590565b6129be6105e08301846125b3565b949350505050565b6000602082840312156129d857600080fd5b81518015158114611d0d57600080fd5b6001600160401b03828116828216039080821115612a0857612a0861253a565b5092915050565b60006001600160401b03808316818103612a2b57612a2b61253a565b6001019392505050565b60008251612a478184602087016124a8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", + "nonce": "0x2b", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x21e0ab5833d3e2fe8efd9ffbac2865d8122c42af6a4b8830a793f4b4dae6661d", + "transactionType": "CREATE", + "contractName": "ERC1967Proxy", + "contractAddress": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "function": null, + "arguments": [ + "0x9BA96998A54340241Cd0778feb78F30427b5c080", + "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" + ], + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x6a8bd", + "value": "0x0", + "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a0000000000000000000000009ba96998a54340241cd0778feb78f30427b5c080000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e00000000000000000000000000000000000000000000000000000000", + "nonce": "0x2c", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xe34e2b35ce2e9dd71acf56f37b0b71f314d10465c8f158375e955b4f11eccdd4", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "gas": "0x7e03", + "value": "0x0", + "input": "0x013fa5fc000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", + "nonce": "0x2d", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x7e87dff33b5529741c8fda84bb2f544234f2fe98754af514911b5a9a7c8a5bf1", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "gas": "0x7e03", + "value": "0x0", + "input": "0xf2fde38b0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be", + "nonce": "0x2e", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xee3338", + "logs": [ + { + "address": "0x9ba96998a54340241cd0778feb78f30427b5c080", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "blockHash": "0xd54d7070159f7dce625447d28f9b9bdd0b9e5314a94f8400821e2bdd4c5efc32", + "blockNumber": "0x6d5586b", + "transactionHash": "0xc8bd6be597bd34f8bcf5704c80814b870656bdfc7d398525990b82a781e9903c", + "transactionIndex": "0x6d", + "logIndex": "0xb4", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000010000002000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xc8bd6be597bd34f8bcf5704c80814b870656bdfc7d398525990b82a781e9903c", + "transactionIndex": "0x6d", + "blockHash": "0xd54d7070159f7dce625447d28f9b9bdd0b9e5314a94f8400821e2bdd4c5efc32", + "blockNumber": "0x6d5586b", + "gasUsed": "0x26aaa5", + "effectiveGasPrice": "0x5f5e100", + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": null, + "contractAddress": "0x9ba96998a54340241cd0778feb78f30427b5c080", + "gasUsedForL1": "0x196f1", + "l1BlockNumber": "0x7233ec" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xbfe2a", + "logs": [ + { + "address": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x0000000000000000000000009ba96998a54340241cd0778feb78f30427b5c080" + ], + "data": "0x", + "blockHash": "0x67ecfe8cf0257c29a130d54c1b2e21c1c3004ac3e537e17687dc54f08d83a9b8", + "blockNumber": "0x6d5586e", + "transactionHash": "0x21e0ab5833d3e2fe8efd9ffbac2865d8122c42af6a4b8830a793f4b4dae6661d", + "transactionIndex": "0xa", + "logIndex": "0xa", + "removed": false + }, + { + "address": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" + ], + "data": "0x", + "blockHash": "0x67ecfe8cf0257c29a130d54c1b2e21c1c3004ac3e537e17687dc54f08d83a9b8", + "blockNumber": "0x6d5586e", + "transactionHash": "0x21e0ab5833d3e2fe8efd9ffbac2865d8122c42af6a4b8830a793f4b4dae6661d", + "transactionIndex": "0xa", + "logIndex": "0xb", + "removed": false + }, + { + "address": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0x67ecfe8cf0257c29a130d54c1b2e21c1c3004ac3e537e17687dc54f08d83a9b8", + "blockNumber": "0x6d5586e", + "transactionHash": "0x21e0ab5833d3e2fe8efd9ffbac2865d8122c42af6a4b8830a793f4b4dae6661d", + "transactionIndex": "0xa", + "logIndex": "0xc", + "removed": false + } + ], + "logsBloom": "0x00000000000000000100000000000000400080000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000001000000000000000000000000000000080000020000000000000000000800000000000000000001000000000000400000000000000000000800000000000000000000000080000000000000002000000000000000000000000000000000000000000000080000000000000000000000000020004000000000000000000000000000000004000000000000001020000000000000000000000000200000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x21e0ab5833d3e2fe8efd9ffbac2865d8122c42af6a4b8830a793f4b4dae6661d", + "transactionIndex": "0xa", + "blockHash": "0x67ecfe8cf0257c29a130d54c1b2e21c1c3004ac3e537e17687dc54f08d83a9b8", + "blockNumber": "0x6d5586e", + "gasUsed": "0x562b1", + "effectiveGasPrice": "0x5f5e100", + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": null, + "contractAddress": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "gasUsedForL1": "0x4300", + "l1BlockNumber": "0x7233ec" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x1ff20a", + "logs": [ + { + "address": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "topics": [ + "0x8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072" + ], + "data": "0x000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", + "blockHash": "0xbbb37ce067e484a7dcd4026d2ad507e0ab3a1bd2ec226e16efef0652e2e83ba0", + "blockNumber": "0x6d55870", + "transactionHash": "0xe34e2b35ce2e9dd71acf56f37b0b71f314d10465c8f158375e955b4f11eccdd4", + "transactionIndex": "0x13", + "logIndex": "0x41", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000200000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xe34e2b35ce2e9dd71acf56f37b0b71f314d10465c8f158375e955b4f11eccdd4", + "transactionIndex": "0x13", + "blockHash": "0xbbb37ce067e484a7dcd4026d2ad507e0ab3a1bd2ec226e16efef0652e2e83ba0", + "blockNumber": "0x6d55870", + "gasUsed": "0x923a", + "effectiveGasPrice": "0x5f5e100", + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "contractAddress": null, + "gasUsedForL1": "0x8e6", + "l1BlockNumber": "0x7233ec" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x32aaa9", + "logs": [ + { + "address": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e", + "0x0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be" + ], + "data": "0x", + "blockHash": "0x9356d5c6408430e337ff0155c0ca5fe5c9b44c29b037fd08b8e5a54462063b60", + "blockNumber": "0x6d55872", + "transactionHash": "0x7e87dff33b5529741c8fda84bb2f544234f2fe98754af514911b5a9a7c8a5bf1", + "transactionIndex": "0x32", + "logIndex": "0x37", + "removed": false + } + ], + "logsBloom": "0x00000000000000000100000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000080000000000000000000000000000000000000000000001000000000000400000000000000000000000000000000000000000000000000000000800002000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000020000000000", + "type": "0x2", + "transactionHash": "0x7e87dff33b5529741c8fda84bb2f544234f2fe98754af514911b5a9a7c8a5bf1", + "transactionIndex": "0x32", + "blockHash": "0x9356d5c6408430e337ff0155c0ca5fe5c9b44c29b037fd08b8e5a54462063b60", + "blockNumber": "0x6d55872", + "gasUsed": "0x8c26", + "effectiveGasPrice": "0x5f5e100", + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", + "contractAddress": null, + "gasUsedForL1": "0x8e6", + "l1BlockNumber": "0x7233ec" + } + ], + "libraries": [ + "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x085a1Ec0d51f4541d81a442a0Df4c9E9C70D7D1e" + ], + "pending": [], + "returns": { + "proxyAddress": { + "internal_type": "address", + "value": "0x1e28b9eE6711Bdf72b94d2159D23E93784D8F008" + }, + "lightClientState": { + "internal_type": "struct LightClient.LightClientState", + "value": "(0, 0, 1234)" + }, + "implementationAddress": { + "internal_type": "address", + "value": "0x9BA96998A54340241Cd0778feb78F30427b5c080" + } + }, + "timestamp": 1736794243, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736543852.json b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736543852.json new file mode 100644 index 0000000000..3e5621b960 --- /dev/null +++ b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736543852.json @@ -0,0 +1,65 @@ +{ + "transactions": [ + { + "hash": null, + "transactionType": "CREATE", + "contractName": "LightClientArbitrum2", + "contractAddress": "0x85fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb", + "function": null, + "arguments": null, + "transaction": { + "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "gas": "0x31a67f", + "value": "0x0", + "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b72620001046000396000818161121b0152818161124401526113c30152612b726000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120f8565b610584565b005b34801561017e57600080fd5b5061019261018d366004612113565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612267565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b61017061030836600461241b565b6108dd565b34801561031957600080fd5b506102a96108fc565b34801561032e57600080fd5b50610170610919565b34801561034357600080fd5b50610170610988565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b50610398610393366004612113565b61099a565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124d4565b610acd565b34801561041e57600080fd5b5061017061042d3660046124ef565b610b56565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906125c0565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125f3565b610c7a565b34801561055b57600080fd5b5061017061056a3660046120f8565b610de0565b34801561057b57600080fd5b506009546102a9565b61058c610e1e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610e79565b6107338282610ee9565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610fe1565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b60006064803b82036108375760405162461bcd60e51b815260206004820152601f60248201527f41726253797320707265636f6d70696c65206e6f7420617661696c61626c650060448201526064015b60405180910390fd5b6108756040518060400160405280601a81526020017f617262537973507265636f6d70696c6520617661696c61626c650000000000008152506111cd565b806001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190612615565b91505090565b6108e5611210565b6108ee826112b5565b6108f882826112f6565b5050565b60006109066113b8565b50600080516020612b4683398151915290565b610921610e1e565b6008546001600160a01b03161561096d57600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b610990610e1e565b6109866000611401565b600980546000918291906109af600183612644565b815481106109bf576109bf612657565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a0057604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610ac6578460098281548110610a3057610a30612657565b6000918252602090912060029091020154600160801b90046001600160401b031610610abe5760098181548110610a6957610a69612657565b90600052602060002090600202016001015460098281548110610a8e57610a8e612657565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a14565b5050915091565b610ad5610e1e565b610e108163ffffffff161080610af457506301e133808163ffffffff16115b80610b12575060085463ffffffff600160a01b909104811690821611155b15610b30576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b9b5750825b90506000826001600160401b03166001148015610bb75750303b155b905081158015610bc5575080155b15610be35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c0d57845460ff60401b1916600160401b1785555b610c1686611472565b610c1e611483565b610c2989898961148b565b8315610c6f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610c886107de565b841180610c93575080155b80610cde5750600854600980549091600160c01b90046001600160401b0316908110610cc157610cc1612657565b60009182526020909120600290910201546001600160401b031684105b15610cfc5760405163b0b4387760e01b815260040160405180910390fd5b60008080610d0b600185612644565b90505b81610da957600854600160c01b90046001600160401b03168110610da9578660098281548110610d4057610d40612657565b60009182526020909120600290910201546001600160401b031611610d97576001915060098181548110610d7657610d76612657565b60009182526020909120600290910201546001600160401b03169250610da9565b80610da18161266d565b915050610d0e565b81610dc75760405163b0b4387760e01b815260040160405180910390fd5b85610dd28489612644565b119450505050505b92915050565b610de8610e1e565b6001600160a01b038116610e1257604051631e4fbdf760e01b81526000600482015260240161082e565b610e1b81611401565b50565b33610e507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109865760405163118cdaa760e01b815233600482015260240161082e565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108f85760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c640000000000604482015260640161082e565b6000610ef36115b8565b9050610efd611e31565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273364dbd12edeb5061435f3f185f9587241bbce5279063ce537a7790610f7d9085908590889060040161288b565b602060405180830381865af4158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190612aba565b610fdb576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611057575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b031690811061102157611021612657565b600091825260209091206002909102015461104c90600160401b90046001600160401b031684612adc565b6001600160401b0316115b156110eb57600854600980549091600160c01b90046001600160401b031690811061108457611084612657565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186110c583612b03565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b610e1b816040516024016111e191906125c0565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052611be7565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061129757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661128b600080516020612b46833981519152546001600160a01b031690565b6001600160a01b031614155b156109865760405163703e46dd60e11b815260040160405180910390fd5b6112bd610e1e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611350575060408051601f3d908101601f1916820190925261134d91810190612615565b60015b61137857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161082e565b600080516020612b4683398151915281146113a957604051632a87526960e21b81526004810182905260240161082e565b6113b38383611c08565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109865760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61147a611c5e565b610e1b81611ca7565b610986611c5e565b82516001600160401b03161515806114af575060208301516001600160401b031615155b806114bc57506020820151155b806114c957506040820151155b806114d657506060820151155b806114e057508151155b806114f25750610e108163ffffffff16105b8061150657506301e133808163ffffffff16115b15611524576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6115c0611e4f565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b611c1182611caf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611c56576113b38282611d14565b6108f8611d8a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661098657604051631afcd79f60e31b815260040160405180910390fd5b610de8611c5e565b806001600160a01b03163b600003611ce557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161082e565b600080516020612b4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611d319190612b29565b600060405180830381855af49150503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b5091509150611d81858383611da9565b95945050505050565b34156109865760405163b398979f60e01b815260040160405180910390fd5b606082611dbe57611db982611e08565b611e01565b8151158015611dd557506001600160a01b0384163b155b15611dfe57604051639996b31560e01b81526001600160a01b038516600482015260240161082e565b50805b9392505050565b805115611e185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e86604051806040016040528060008152602001600081525090565b8152602001611ea8604051806040016040528060008152602001600081525090565b8152602001611eca604051806040016040528060008152602001600081525090565b8152602001611eec604051806040016040528060008152602001600081525090565b8152602001611f0e604051806040016040528060008152602001600081525090565b8152602001611f30604051806040016040528060008152602001600081525090565b8152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b8152602001612040604051806040016040528060008152602001600081525090565b8152602001612062604051806040016040528060008152602001600081525090565b8152602001612084604051806040016040528060008152602001600081525090565b81526020016120a6604051806040016040528060008152602001600081525090565b81526020016120c8604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b611e01826120dc565b60006020828403121561212557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156121655761216561212c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121935761219361212c565b604052919050565b80356001600160401b03811681146120f357600080fd5b6000606082840312156121c457600080fd5b604051606081018181106001600160401b03821117156121e6576121e661212c565b6040529050806121f58361219b565b81526122036020840161219b565b6020820152604083013560408201525092915050565b60006040828403121561222b57600080fd5b604051604081018181106001600160401b038211171561224d5761224d61212c565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561227c57600080fd5b61228685856121b2565b925061048080605f198301121561229c57600080fd5b6122a4612142565b91506122b38660608701612219565b82526122c28660a08701612219565b60208301526122d48660e08701612219565b60408301526101206122e887828801612219565b60608401526101606122fc88828901612219565b60808501526101a061231089828a01612219565b60a08601526101e06123248a828b01612219565b60c08701526102206123388b828c01612219565b60e088015261026061234c8c828d01612219565b6101008901526102a06123618d828e01612219565b878a01526123738d6102e08e01612219565b6101408a01526123878d6103208e01612219565b868a01526123998d6103608e01612219565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561242e57600080fd5b612437836120dc565b91506020808401356001600160401b038082111561245457600080fd5b818601915086601f83011261246857600080fd5b81358181111561247a5761247a61212c565b61248c601f8201601f1916850161216b565b915080825287848285010111156124a257600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120f357600080fd5b6000602082840312156124e657600080fd5b611e01826124c0565b60008060008084860361012081121561250757600080fd5b61251187876121b2565b94506080605f198201121561252557600080fd5b50604051608081018181106001600160401b03821117156125485761254861212c565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061258260e086016124c0565b915061259161010086016120dc565b905092959194509250565b60005b838110156125b757818101518382015260200161259f565b50506000910152565b60208152600082518060208401526125df81604085016020870161259c565b601f01601f19169190910160400192915050565b6000806040838503121561260657600080fd5b50508035926020909101359150565b60006020828403121561262757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dda57610dda61262e565b634e487b7160e01b600052603260045260246000fd5b60008161267c5761267c61262e565b506000190190565b8060005b6007811015610fdb578151845260209384019390910190600101612688565b6126bc82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061271f8185018380518252602090810151910152565b60a0830151915061014061273f8186018480518252602090810151910152565b60c0840151925061018061275f8187018580518252602090810151910152565b60e085015193506101c061277f8188018680518252602090810151910152565b9285015193506102009261279f8785018680518252602090810151910152565b61012086015194506102406127c08189018780518252602090810151910152565b928601519450610280926127e08885018780518252602090810151910152565b61016087015195506102c0612801818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516128be604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061290b8185018380518252602090810151910152565b60c0870151915061014061292b8186018480518252602090810151910152565b60e0880151925061018061294b8187018580518252602090810151910152565b9188015192506101c09161296b8684018580518252602090810151910152565b610120890151935061020061298c8188018680518252602090810151910152565b918901519350610240916129ac8784018680518252602090810151910152565b6101608a015194506102806129cd8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612aa4610500830185612684565b612ab26105e08301846126a7565b949350505050565b600060208284031215612acc57600080fd5b81518015158114611e0157600080fd5b6001600160401b03828116828216039080821115612afc57612afc61262e565b5092915050565b60006001600160401b03808316818103612b1f57612b1f61262e565b6001019392505050565b60008251612b3b81846020870161259c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", + "nonce": "0x791", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CREATE", + "contractName": "ERC1967Proxy", + "contractAddress": "0x9505e8b8546cc9015b2c015826d25821cc48c153", + "function": null, + "arguments": [ + "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB", + "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + ], + "transaction": { + "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "gas": "0x6a8bd", + "value": "0x0", + "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a00000000000000000000000085fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000000000000000000000000000000000000", + "nonce": "0x792", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [ + "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x364dbd12eDEB5061435F3f185f9587241bbcE527" + ], + "pending": [], + "returns": { + "lightClientState": { + "internal_type": "struct LightClientArbitrum2.LightClientState", + "value": "(0, 0, 1234)" + }, + "implementationAddress": { + "internal_type": "address", + "value": "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB" + }, + "proxyAddress": { + "internal_type": "address", + "value": "0x9505E8B8546cC9015B2c015826d25821CC48C153" + } + }, + "timestamp": 1736543852, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736543918.json b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736543918.json new file mode 100644 index 0000000000..c691629200 --- /dev/null +++ b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736543918.json @@ -0,0 +1,65 @@ +{ + "transactions": [ + { + "hash": null, + "transactionType": "CREATE", + "contractName": "LightClientArbitrum2", + "contractAddress": "0x85fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb", + "function": null, + "arguments": null, + "transaction": { + "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "gas": "0x31a67f", + "value": "0x0", + "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b72620001046000396000818161121b0152818161124401526113c30152612b726000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120f8565b610584565b005b34801561017e57600080fd5b5061019261018d366004612113565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612267565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b61017061030836600461241b565b6108dd565b34801561031957600080fd5b506102a96108fc565b34801561032e57600080fd5b50610170610919565b34801561034357600080fd5b50610170610988565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b50610398610393366004612113565b61099a565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124d4565b610acd565b34801561041e57600080fd5b5061017061042d3660046124ef565b610b56565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906125c0565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125f3565b610c7a565b34801561055b57600080fd5b5061017061056a3660046120f8565b610de0565b34801561057b57600080fd5b506009546102a9565b61058c610e1e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610e79565b6107338282610ee9565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610fe1565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b60006064803b82036108375760405162461bcd60e51b815260206004820152601f60248201527f41726253797320707265636f6d70696c65206e6f7420617661696c61626c650060448201526064015b60405180910390fd5b6108756040518060400160405280601a81526020017f617262537973507265636f6d70696c6520617661696c61626c650000000000008152506111cd565b806001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190612615565b91505090565b6108e5611210565b6108ee826112b5565b6108f882826112f6565b5050565b60006109066113b8565b50600080516020612b4683398151915290565b610921610e1e565b6008546001600160a01b03161561096d57600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b610990610e1e565b6109866000611401565b600980546000918291906109af600183612644565b815481106109bf576109bf612657565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a0057604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610ac6578460098281548110610a3057610a30612657565b6000918252602090912060029091020154600160801b90046001600160401b031610610abe5760098181548110610a6957610a69612657565b90600052602060002090600202016001015460098281548110610a8e57610a8e612657565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a14565b5050915091565b610ad5610e1e565b610e108163ffffffff161080610af457506301e133808163ffffffff16115b80610b12575060085463ffffffff600160a01b909104811690821611155b15610b30576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b9b5750825b90506000826001600160401b03166001148015610bb75750303b155b905081158015610bc5575080155b15610be35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c0d57845460ff60401b1916600160401b1785555b610c1686611472565b610c1e611483565b610c2989898961148b565b8315610c6f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610c886107de565b841180610c93575080155b80610cde5750600854600980549091600160c01b90046001600160401b0316908110610cc157610cc1612657565b60009182526020909120600290910201546001600160401b031684105b15610cfc5760405163b0b4387760e01b815260040160405180910390fd5b60008080610d0b600185612644565b90505b81610da957600854600160c01b90046001600160401b03168110610da9578660098281548110610d4057610d40612657565b60009182526020909120600290910201546001600160401b031611610d97576001915060098181548110610d7657610d76612657565b60009182526020909120600290910201546001600160401b03169250610da9565b80610da18161266d565b915050610d0e565b81610dc75760405163b0b4387760e01b815260040160405180910390fd5b85610dd28489612644565b119450505050505b92915050565b610de8610e1e565b6001600160a01b038116610e1257604051631e4fbdf760e01b81526000600482015260240161082e565b610e1b81611401565b50565b33610e507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109865760405163118cdaa760e01b815233600482015260240161082e565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108f85760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c640000000000604482015260640161082e565b6000610ef36115b8565b9050610efd611e31565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273364dbd12edeb5061435f3f185f9587241bbce5279063ce537a7790610f7d9085908590889060040161288b565b602060405180830381865af4158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190612aba565b610fdb576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611057575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b031690811061102157611021612657565b600091825260209091206002909102015461104c90600160401b90046001600160401b031684612adc565b6001600160401b0316115b156110eb57600854600980549091600160c01b90046001600160401b031690811061108457611084612657565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186110c583612b03565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b610e1b816040516024016111e191906125c0565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052611be7565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061129757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661128b600080516020612b46833981519152546001600160a01b031690565b6001600160a01b031614155b156109865760405163703e46dd60e11b815260040160405180910390fd5b6112bd610e1e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611350575060408051601f3d908101601f1916820190925261134d91810190612615565b60015b61137857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161082e565b600080516020612b4683398151915281146113a957604051632a87526960e21b81526004810182905260240161082e565b6113b38383611c08565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109865760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61147a611c5e565b610e1b81611ca7565b610986611c5e565b82516001600160401b03161515806114af575060208301516001600160401b031615155b806114bc57506020820151155b806114c957506040820151155b806114d657506060820151155b806114e057508151155b806114f25750610e108163ffffffff16105b8061150657506301e133808163ffffffff16115b15611524576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6115c0611e4f565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b611c1182611caf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611c56576113b38282611d14565b6108f8611d8a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661098657604051631afcd79f60e31b815260040160405180910390fd5b610de8611c5e565b806001600160a01b03163b600003611ce557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161082e565b600080516020612b4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611d319190612b29565b600060405180830381855af49150503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b5091509150611d81858383611da9565b95945050505050565b34156109865760405163b398979f60e01b815260040160405180910390fd5b606082611dbe57611db982611e08565b611e01565b8151158015611dd557506001600160a01b0384163b155b15611dfe57604051639996b31560e01b81526001600160a01b038516600482015260240161082e565b50805b9392505050565b805115611e185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e86604051806040016040528060008152602001600081525090565b8152602001611ea8604051806040016040528060008152602001600081525090565b8152602001611eca604051806040016040528060008152602001600081525090565b8152602001611eec604051806040016040528060008152602001600081525090565b8152602001611f0e604051806040016040528060008152602001600081525090565b8152602001611f30604051806040016040528060008152602001600081525090565b8152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b8152602001612040604051806040016040528060008152602001600081525090565b8152602001612062604051806040016040528060008152602001600081525090565b8152602001612084604051806040016040528060008152602001600081525090565b81526020016120a6604051806040016040528060008152602001600081525090565b81526020016120c8604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b611e01826120dc565b60006020828403121561212557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156121655761216561212c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121935761219361212c565b604052919050565b80356001600160401b03811681146120f357600080fd5b6000606082840312156121c457600080fd5b604051606081018181106001600160401b03821117156121e6576121e661212c565b6040529050806121f58361219b565b81526122036020840161219b565b6020820152604083013560408201525092915050565b60006040828403121561222b57600080fd5b604051604081018181106001600160401b038211171561224d5761224d61212c565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561227c57600080fd5b61228685856121b2565b925061048080605f198301121561229c57600080fd5b6122a4612142565b91506122b38660608701612219565b82526122c28660a08701612219565b60208301526122d48660e08701612219565b60408301526101206122e887828801612219565b60608401526101606122fc88828901612219565b60808501526101a061231089828a01612219565b60a08601526101e06123248a828b01612219565b60c08701526102206123388b828c01612219565b60e088015261026061234c8c828d01612219565b6101008901526102a06123618d828e01612219565b878a01526123738d6102e08e01612219565b6101408a01526123878d6103208e01612219565b868a01526123998d6103608e01612219565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561242e57600080fd5b612437836120dc565b91506020808401356001600160401b038082111561245457600080fd5b818601915086601f83011261246857600080fd5b81358181111561247a5761247a61212c565b61248c601f8201601f1916850161216b565b915080825287848285010111156124a257600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120f357600080fd5b6000602082840312156124e657600080fd5b611e01826124c0565b60008060008084860361012081121561250757600080fd5b61251187876121b2565b94506080605f198201121561252557600080fd5b50604051608081018181106001600160401b03821117156125485761254861212c565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061258260e086016124c0565b915061259161010086016120dc565b905092959194509250565b60005b838110156125b757818101518382015260200161259f565b50506000910152565b60208152600082518060208401526125df81604085016020870161259c565b601f01601f19169190910160400192915050565b6000806040838503121561260657600080fd5b50508035926020909101359150565b60006020828403121561262757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dda57610dda61262e565b634e487b7160e01b600052603260045260246000fd5b60008161267c5761267c61262e565b506000190190565b8060005b6007811015610fdb578151845260209384019390910190600101612688565b6126bc82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061271f8185018380518252602090810151910152565b60a0830151915061014061273f8186018480518252602090810151910152565b60c0840151925061018061275f8187018580518252602090810151910152565b60e085015193506101c061277f8188018680518252602090810151910152565b9285015193506102009261279f8785018680518252602090810151910152565b61012086015194506102406127c08189018780518252602090810151910152565b928601519450610280926127e08885018780518252602090810151910152565b61016087015195506102c0612801818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516128be604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061290b8185018380518252602090810151910152565b60c0870151915061014061292b8186018480518252602090810151910152565b60e0880151925061018061294b8187018580518252602090810151910152565b9188015192506101c09161296b8684018580518252602090810151910152565b610120890151935061020061298c8188018680518252602090810151910152565b918901519350610240916129ac8784018680518252602090810151910152565b6101608a015194506102806129cd8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612aa4610500830185612684565b612ab26105e08301846126a7565b949350505050565b600060208284031215612acc57600080fd5b81518015158114611e0157600080fd5b6001600160401b03828116828216039080821115612afc57612afc61262e565b5092915050565b60006001600160401b03808316818103612b1f57612b1f61262e565b6001019392505050565b60008251612b3b81846020870161259c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", + "nonce": "0x791", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CREATE", + "contractName": "ERC1967Proxy", + "contractAddress": "0x9505e8b8546cc9015b2c015826d25821cc48c153", + "function": null, + "arguments": [ + "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB", + "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + ], + "transaction": { + "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "gas": "0x6a8bd", + "value": "0x0", + "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a00000000000000000000000085fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000000000000000000000000000000000000", + "nonce": "0x792", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [ + "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x364dbd12eDEB5061435F3f185f9587241bbcE527" + ], + "pending": [], + "returns": { + "implementationAddress": { + "internal_type": "address", + "value": "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB" + }, + "proxyAddress": { + "internal_type": "address", + "value": "0x9505E8B8546cC9015B2c015826d25821CC48C153" + }, + "lightClientState": { + "internal_type": "struct LightClientArbitrum2.LightClientState", + "value": "(0, 0, 1234)" + } + }, + "timestamp": 1736543918, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736543987.json b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736543987.json new file mode 100644 index 0000000000..cc9175d099 --- /dev/null +++ b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736543987.json @@ -0,0 +1,65 @@ +{ + "transactions": [ + { + "hash": null, + "transactionType": "CREATE", + "contractName": "LightClientArbitrum2", + "contractAddress": "0x85fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb", + "function": null, + "arguments": null, + "transaction": { + "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "gas": "0x31a67f", + "value": "0x0", + "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b72620001046000396000818161121b0152818161124401526113c30152612b726000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120f8565b610584565b005b34801561017e57600080fd5b5061019261018d366004612113565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612267565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b61017061030836600461241b565b6108dd565b34801561031957600080fd5b506102a96108fc565b34801561032e57600080fd5b50610170610919565b34801561034357600080fd5b50610170610988565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b50610398610393366004612113565b61099a565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124d4565b610acd565b34801561041e57600080fd5b5061017061042d3660046124ef565b610b56565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906125c0565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125f3565b610c7a565b34801561055b57600080fd5b5061017061056a3660046120f8565b610de0565b34801561057b57600080fd5b506009546102a9565b61058c610e1e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610e79565b6107338282610ee9565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610fe1565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b60006064803b82036108375760405162461bcd60e51b815260206004820152601f60248201527f41726253797320707265636f6d70696c65206e6f7420617661696c61626c650060448201526064015b60405180910390fd5b6108756040518060400160405280601a81526020017f617262537973507265636f6d70696c6520617661696c61626c650000000000008152506111cd565b806001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190612615565b91505090565b6108e5611210565b6108ee826112b5565b6108f882826112f6565b5050565b60006109066113b8565b50600080516020612b4683398151915290565b610921610e1e565b6008546001600160a01b03161561096d57600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b610990610e1e565b6109866000611401565b600980546000918291906109af600183612644565b815481106109bf576109bf612657565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a0057604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610ac6578460098281548110610a3057610a30612657565b6000918252602090912060029091020154600160801b90046001600160401b031610610abe5760098181548110610a6957610a69612657565b90600052602060002090600202016001015460098281548110610a8e57610a8e612657565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a14565b5050915091565b610ad5610e1e565b610e108163ffffffff161080610af457506301e133808163ffffffff16115b80610b12575060085463ffffffff600160a01b909104811690821611155b15610b30576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b9b5750825b90506000826001600160401b03166001148015610bb75750303b155b905081158015610bc5575080155b15610be35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c0d57845460ff60401b1916600160401b1785555b610c1686611472565b610c1e611483565b610c2989898961148b565b8315610c6f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610c886107de565b841180610c93575080155b80610cde5750600854600980549091600160c01b90046001600160401b0316908110610cc157610cc1612657565b60009182526020909120600290910201546001600160401b031684105b15610cfc5760405163b0b4387760e01b815260040160405180910390fd5b60008080610d0b600185612644565b90505b81610da957600854600160c01b90046001600160401b03168110610da9578660098281548110610d4057610d40612657565b60009182526020909120600290910201546001600160401b031611610d97576001915060098181548110610d7657610d76612657565b60009182526020909120600290910201546001600160401b03169250610da9565b80610da18161266d565b915050610d0e565b81610dc75760405163b0b4387760e01b815260040160405180910390fd5b85610dd28489612644565b119450505050505b92915050565b610de8610e1e565b6001600160a01b038116610e1257604051631e4fbdf760e01b81526000600482015260240161082e565b610e1b81611401565b50565b33610e507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109865760405163118cdaa760e01b815233600482015260240161082e565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108f85760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c640000000000604482015260640161082e565b6000610ef36115b8565b9050610efd611e31565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273364dbd12edeb5061435f3f185f9587241bbce5279063ce537a7790610f7d9085908590889060040161288b565b602060405180830381865af4158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190612aba565b610fdb576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611057575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b031690811061102157611021612657565b600091825260209091206002909102015461104c90600160401b90046001600160401b031684612adc565b6001600160401b0316115b156110eb57600854600980549091600160c01b90046001600160401b031690811061108457611084612657565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186110c583612b03565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b610e1b816040516024016111e191906125c0565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052611be7565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061129757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661128b600080516020612b46833981519152546001600160a01b031690565b6001600160a01b031614155b156109865760405163703e46dd60e11b815260040160405180910390fd5b6112bd610e1e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611350575060408051601f3d908101601f1916820190925261134d91810190612615565b60015b61137857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161082e565b600080516020612b4683398151915281146113a957604051632a87526960e21b81526004810182905260240161082e565b6113b38383611c08565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109865760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61147a611c5e565b610e1b81611ca7565b610986611c5e565b82516001600160401b03161515806114af575060208301516001600160401b031615155b806114bc57506020820151155b806114c957506040820151155b806114d657506060820151155b806114e057508151155b806114f25750610e108163ffffffff16105b8061150657506301e133808163ffffffff16115b15611524576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6115c0611e4f565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b611c1182611caf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611c56576113b38282611d14565b6108f8611d8a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661098657604051631afcd79f60e31b815260040160405180910390fd5b610de8611c5e565b806001600160a01b03163b600003611ce557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161082e565b600080516020612b4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611d319190612b29565b600060405180830381855af49150503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b5091509150611d81858383611da9565b95945050505050565b34156109865760405163b398979f60e01b815260040160405180910390fd5b606082611dbe57611db982611e08565b611e01565b8151158015611dd557506001600160a01b0384163b155b15611dfe57604051639996b31560e01b81526001600160a01b038516600482015260240161082e565b50805b9392505050565b805115611e185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e86604051806040016040528060008152602001600081525090565b8152602001611ea8604051806040016040528060008152602001600081525090565b8152602001611eca604051806040016040528060008152602001600081525090565b8152602001611eec604051806040016040528060008152602001600081525090565b8152602001611f0e604051806040016040528060008152602001600081525090565b8152602001611f30604051806040016040528060008152602001600081525090565b8152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b8152602001612040604051806040016040528060008152602001600081525090565b8152602001612062604051806040016040528060008152602001600081525090565b8152602001612084604051806040016040528060008152602001600081525090565b81526020016120a6604051806040016040528060008152602001600081525090565b81526020016120c8604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b611e01826120dc565b60006020828403121561212557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156121655761216561212c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121935761219361212c565b604052919050565b80356001600160401b03811681146120f357600080fd5b6000606082840312156121c457600080fd5b604051606081018181106001600160401b03821117156121e6576121e661212c565b6040529050806121f58361219b565b81526122036020840161219b565b6020820152604083013560408201525092915050565b60006040828403121561222b57600080fd5b604051604081018181106001600160401b038211171561224d5761224d61212c565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561227c57600080fd5b61228685856121b2565b925061048080605f198301121561229c57600080fd5b6122a4612142565b91506122b38660608701612219565b82526122c28660a08701612219565b60208301526122d48660e08701612219565b60408301526101206122e887828801612219565b60608401526101606122fc88828901612219565b60808501526101a061231089828a01612219565b60a08601526101e06123248a828b01612219565b60c08701526102206123388b828c01612219565b60e088015261026061234c8c828d01612219565b6101008901526102a06123618d828e01612219565b878a01526123738d6102e08e01612219565b6101408a01526123878d6103208e01612219565b868a01526123998d6103608e01612219565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561242e57600080fd5b612437836120dc565b91506020808401356001600160401b038082111561245457600080fd5b818601915086601f83011261246857600080fd5b81358181111561247a5761247a61212c565b61248c601f8201601f1916850161216b565b915080825287848285010111156124a257600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120f357600080fd5b6000602082840312156124e657600080fd5b611e01826124c0565b60008060008084860361012081121561250757600080fd5b61251187876121b2565b94506080605f198201121561252557600080fd5b50604051608081018181106001600160401b03821117156125485761254861212c565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061258260e086016124c0565b915061259161010086016120dc565b905092959194509250565b60005b838110156125b757818101518382015260200161259f565b50506000910152565b60208152600082518060208401526125df81604085016020870161259c565b601f01601f19169190910160400192915050565b6000806040838503121561260657600080fd5b50508035926020909101359150565b60006020828403121561262757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dda57610dda61262e565b634e487b7160e01b600052603260045260246000fd5b60008161267c5761267c61262e565b506000190190565b8060005b6007811015610fdb578151845260209384019390910190600101612688565b6126bc82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061271f8185018380518252602090810151910152565b60a0830151915061014061273f8186018480518252602090810151910152565b60c0840151925061018061275f8187018580518252602090810151910152565b60e085015193506101c061277f8188018680518252602090810151910152565b9285015193506102009261279f8785018680518252602090810151910152565b61012086015194506102406127c08189018780518252602090810151910152565b928601519450610280926127e08885018780518252602090810151910152565b61016087015195506102c0612801818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516128be604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061290b8185018380518252602090810151910152565b60c0870151915061014061292b8186018480518252602090810151910152565b60e0880151925061018061294b8187018580518252602090810151910152565b9188015192506101c09161296b8684018580518252602090810151910152565b610120890151935061020061298c8188018680518252602090810151910152565b918901519350610240916129ac8784018680518252602090810151910152565b6101608a015194506102806129cd8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612aa4610500830185612684565b612ab26105e08301846126a7565b949350505050565b600060208284031215612acc57600080fd5b81518015158114611e0157600080fd5b6001600160401b03828116828216039080821115612afc57612afc61262e565b5092915050565b60006001600160401b03808316818103612b1f57612b1f61262e565b6001019392505050565b60008251612b3b81846020870161259c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", + "nonce": "0x791", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CREATE", + "contractName": "ERC1967Proxy", + "contractAddress": "0x9505e8b8546cc9015b2c015826d25821cc48c153", + "function": null, + "arguments": [ + "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB", + "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + ], + "transaction": { + "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "gas": "0x6a8bd", + "value": "0x0", + "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a00000000000000000000000085fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000000000000000000000000000000000000", + "nonce": "0x792", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [ + "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x364dbd12eDEB5061435F3f185f9587241bbcE527" + ], + "pending": [], + "returns": { + "implementationAddress": { + "internal_type": "address", + "value": "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB" + }, + "proxyAddress": { + "internal_type": "address", + "value": "0x9505E8B8546cC9015B2c015826d25821CC48C153" + }, + "lightClientState": { + "internal_type": "struct LightClientArbitrum2.LightClientState", + "value": "(0, 0, 1234)" + } + }, + "timestamp": 1736543987, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736544036.json b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736544036.json new file mode 100644 index 0000000000..2bad0bb360 --- /dev/null +++ b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736544036.json @@ -0,0 +1,65 @@ +{ + "transactions": [ + { + "hash": null, + "transactionType": "CREATE", + "contractName": "LightClientArbitrum2", + "contractAddress": "0x85fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb", + "function": null, + "arguments": null, + "transaction": { + "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "gas": "0x31a67f", + "value": "0x0", + "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b72620001046000396000818161121b0152818161124401526113c30152612b726000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120f8565b610584565b005b34801561017e57600080fd5b5061019261018d366004612113565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612267565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b61017061030836600461241b565b6108dd565b34801561031957600080fd5b506102a96108fc565b34801561032e57600080fd5b50610170610919565b34801561034357600080fd5b50610170610988565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b50610398610393366004612113565b61099a565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124d4565b610acd565b34801561041e57600080fd5b5061017061042d3660046124ef565b610b56565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906125c0565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125f3565b610c7a565b34801561055b57600080fd5b5061017061056a3660046120f8565b610de0565b34801561057b57600080fd5b506009546102a9565b61058c610e1e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610e79565b6107338282610ee9565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610fe1565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b60006064803b82036108375760405162461bcd60e51b815260206004820152601f60248201527f41726253797320707265636f6d70696c65206e6f7420617661696c61626c650060448201526064015b60405180910390fd5b6108756040518060400160405280601a81526020017f617262537973507265636f6d70696c6520617661696c61626c650000000000008152506111cd565b806001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190612615565b91505090565b6108e5611210565b6108ee826112b5565b6108f882826112f6565b5050565b60006109066113b8565b50600080516020612b4683398151915290565b610921610e1e565b6008546001600160a01b03161561096d57600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b610990610e1e565b6109866000611401565b600980546000918291906109af600183612644565b815481106109bf576109bf612657565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a0057604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610ac6578460098281548110610a3057610a30612657565b6000918252602090912060029091020154600160801b90046001600160401b031610610abe5760098181548110610a6957610a69612657565b90600052602060002090600202016001015460098281548110610a8e57610a8e612657565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a14565b5050915091565b610ad5610e1e565b610e108163ffffffff161080610af457506301e133808163ffffffff16115b80610b12575060085463ffffffff600160a01b909104811690821611155b15610b30576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b9b5750825b90506000826001600160401b03166001148015610bb75750303b155b905081158015610bc5575080155b15610be35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c0d57845460ff60401b1916600160401b1785555b610c1686611472565b610c1e611483565b610c2989898961148b565b8315610c6f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610c886107de565b841180610c93575080155b80610cde5750600854600980549091600160c01b90046001600160401b0316908110610cc157610cc1612657565b60009182526020909120600290910201546001600160401b031684105b15610cfc5760405163b0b4387760e01b815260040160405180910390fd5b60008080610d0b600185612644565b90505b81610da957600854600160c01b90046001600160401b03168110610da9578660098281548110610d4057610d40612657565b60009182526020909120600290910201546001600160401b031611610d97576001915060098181548110610d7657610d76612657565b60009182526020909120600290910201546001600160401b03169250610da9565b80610da18161266d565b915050610d0e565b81610dc75760405163b0b4387760e01b815260040160405180910390fd5b85610dd28489612644565b119450505050505b92915050565b610de8610e1e565b6001600160a01b038116610e1257604051631e4fbdf760e01b81526000600482015260240161082e565b610e1b81611401565b50565b33610e507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109865760405163118cdaa760e01b815233600482015260240161082e565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108f85760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c640000000000604482015260640161082e565b6000610ef36115b8565b9050610efd611e31565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273364dbd12edeb5061435f3f185f9587241bbce5279063ce537a7790610f7d9085908590889060040161288b565b602060405180830381865af4158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190612aba565b610fdb576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611057575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b031690811061102157611021612657565b600091825260209091206002909102015461104c90600160401b90046001600160401b031684612adc565b6001600160401b0316115b156110eb57600854600980549091600160c01b90046001600160401b031690811061108457611084612657565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186110c583612b03565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b610e1b816040516024016111e191906125c0565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052611be7565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061129757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661128b600080516020612b46833981519152546001600160a01b031690565b6001600160a01b031614155b156109865760405163703e46dd60e11b815260040160405180910390fd5b6112bd610e1e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611350575060408051601f3d908101601f1916820190925261134d91810190612615565b60015b61137857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161082e565b600080516020612b4683398151915281146113a957604051632a87526960e21b81526004810182905260240161082e565b6113b38383611c08565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109865760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61147a611c5e565b610e1b81611ca7565b610986611c5e565b82516001600160401b03161515806114af575060208301516001600160401b031615155b806114bc57506020820151155b806114c957506040820151155b806114d657506060820151155b806114e057508151155b806114f25750610e108163ffffffff16105b8061150657506301e133808163ffffffff16115b15611524576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6115c0611e4f565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b611c1182611caf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611c56576113b38282611d14565b6108f8611d8a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661098657604051631afcd79f60e31b815260040160405180910390fd5b610de8611c5e565b806001600160a01b03163b600003611ce557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161082e565b600080516020612b4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611d319190612b29565b600060405180830381855af49150503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b5091509150611d81858383611da9565b95945050505050565b34156109865760405163b398979f60e01b815260040160405180910390fd5b606082611dbe57611db982611e08565b611e01565b8151158015611dd557506001600160a01b0384163b155b15611dfe57604051639996b31560e01b81526001600160a01b038516600482015260240161082e565b50805b9392505050565b805115611e185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e86604051806040016040528060008152602001600081525090565b8152602001611ea8604051806040016040528060008152602001600081525090565b8152602001611eca604051806040016040528060008152602001600081525090565b8152602001611eec604051806040016040528060008152602001600081525090565b8152602001611f0e604051806040016040528060008152602001600081525090565b8152602001611f30604051806040016040528060008152602001600081525090565b8152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b8152602001612040604051806040016040528060008152602001600081525090565b8152602001612062604051806040016040528060008152602001600081525090565b8152602001612084604051806040016040528060008152602001600081525090565b81526020016120a6604051806040016040528060008152602001600081525090565b81526020016120c8604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b611e01826120dc565b60006020828403121561212557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156121655761216561212c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121935761219361212c565b604052919050565b80356001600160401b03811681146120f357600080fd5b6000606082840312156121c457600080fd5b604051606081018181106001600160401b03821117156121e6576121e661212c565b6040529050806121f58361219b565b81526122036020840161219b565b6020820152604083013560408201525092915050565b60006040828403121561222b57600080fd5b604051604081018181106001600160401b038211171561224d5761224d61212c565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561227c57600080fd5b61228685856121b2565b925061048080605f198301121561229c57600080fd5b6122a4612142565b91506122b38660608701612219565b82526122c28660a08701612219565b60208301526122d48660e08701612219565b60408301526101206122e887828801612219565b60608401526101606122fc88828901612219565b60808501526101a061231089828a01612219565b60a08601526101e06123248a828b01612219565b60c08701526102206123388b828c01612219565b60e088015261026061234c8c828d01612219565b6101008901526102a06123618d828e01612219565b878a01526123738d6102e08e01612219565b6101408a01526123878d6103208e01612219565b868a01526123998d6103608e01612219565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561242e57600080fd5b612437836120dc565b91506020808401356001600160401b038082111561245457600080fd5b818601915086601f83011261246857600080fd5b81358181111561247a5761247a61212c565b61248c601f8201601f1916850161216b565b915080825287848285010111156124a257600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120f357600080fd5b6000602082840312156124e657600080fd5b611e01826124c0565b60008060008084860361012081121561250757600080fd5b61251187876121b2565b94506080605f198201121561252557600080fd5b50604051608081018181106001600160401b03821117156125485761254861212c565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061258260e086016124c0565b915061259161010086016120dc565b905092959194509250565b60005b838110156125b757818101518382015260200161259f565b50506000910152565b60208152600082518060208401526125df81604085016020870161259c565b601f01601f19169190910160400192915050565b6000806040838503121561260657600080fd5b50508035926020909101359150565b60006020828403121561262757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dda57610dda61262e565b634e487b7160e01b600052603260045260246000fd5b60008161267c5761267c61262e565b506000190190565b8060005b6007811015610fdb578151845260209384019390910190600101612688565b6126bc82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061271f8185018380518252602090810151910152565b60a0830151915061014061273f8186018480518252602090810151910152565b60c0840151925061018061275f8187018580518252602090810151910152565b60e085015193506101c061277f8188018680518252602090810151910152565b9285015193506102009261279f8785018680518252602090810151910152565b61012086015194506102406127c08189018780518252602090810151910152565b928601519450610280926127e08885018780518252602090810151910152565b61016087015195506102c0612801818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516128be604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061290b8185018380518252602090810151910152565b60c0870151915061014061292b8186018480518252602090810151910152565b60e0880151925061018061294b8187018580518252602090810151910152565b9188015192506101c09161296b8684018580518252602090810151910152565b610120890151935061020061298c8188018680518252602090810151910152565b918901519350610240916129ac8784018680518252602090810151910152565b6101608a015194506102806129cd8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612aa4610500830185612684565b612ab26105e08301846126a7565b949350505050565b600060208284031215612acc57600080fd5b81518015158114611e0157600080fd5b6001600160401b03828116828216039080821115612afc57612afc61262e565b5092915050565b60006001600160401b03808316818103612b1f57612b1f61262e565b6001019392505050565b60008251612b3b81846020870161259c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", + "nonce": "0x791", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CREATE", + "contractName": "ERC1967Proxy", + "contractAddress": "0x9505e8b8546cc9015b2c015826d25821cc48c153", + "function": null, + "arguments": [ + "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB", + "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + ], + "transaction": { + "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "gas": "0x6a8bd", + "value": "0x0", + "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a00000000000000000000000085fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000000000000000000000000000000000000", + "nonce": "0x792", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [ + "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x364dbd12eDEB5061435F3f185f9587241bbcE527" + ], + "pending": [], + "returns": { + "lightClientState": { + "internal_type": "struct LightClientArbitrum2.LightClientState", + "value": "(0, 0, 1234)" + }, + "proxyAddress": { + "internal_type": "address", + "value": "0x9505E8B8546cC9015B2c015826d25821CC48C153" + }, + "implementationAddress": { + "internal_type": "address", + "value": "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB" + } + }, + "timestamp": 1736544036, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736544114.json b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736544114.json new file mode 100644 index 0000000000..a7dc16ebd4 --- /dev/null +++ b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736544114.json @@ -0,0 +1,65 @@ +{ + "transactions": [ + { + "hash": null, + "transactionType": "CREATE", + "contractName": "LightClientArbitrum2", + "contractAddress": "0x85fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb", + "function": null, + "arguments": null, + "transaction": { + "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "gas": "0x31a67f", + "value": "0x0", + "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b72620001046000396000818161121b0152818161124401526113c30152612b726000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120f8565b610584565b005b34801561017e57600080fd5b5061019261018d366004612113565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612267565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b61017061030836600461241b565b6108dd565b34801561031957600080fd5b506102a96108fc565b34801561032e57600080fd5b50610170610919565b34801561034357600080fd5b50610170610988565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b50610398610393366004612113565b61099a565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124d4565b610acd565b34801561041e57600080fd5b5061017061042d3660046124ef565b610b56565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906125c0565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125f3565b610c7a565b34801561055b57600080fd5b5061017061056a3660046120f8565b610de0565b34801561057b57600080fd5b506009546102a9565b61058c610e1e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610e79565b6107338282610ee9565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610fe1565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b60006064803b82036108375760405162461bcd60e51b815260206004820152601f60248201527f41726253797320707265636f6d70696c65206e6f7420617661696c61626c650060448201526064015b60405180910390fd5b6108756040518060400160405280601a81526020017f617262537973507265636f6d70696c6520617661696c61626c650000000000008152506111cd565b806001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190612615565b91505090565b6108e5611210565b6108ee826112b5565b6108f882826112f6565b5050565b60006109066113b8565b50600080516020612b4683398151915290565b610921610e1e565b6008546001600160a01b03161561096d57600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b610990610e1e565b6109866000611401565b600980546000918291906109af600183612644565b815481106109bf576109bf612657565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a0057604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610ac6578460098281548110610a3057610a30612657565b6000918252602090912060029091020154600160801b90046001600160401b031610610abe5760098181548110610a6957610a69612657565b90600052602060002090600202016001015460098281548110610a8e57610a8e612657565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a14565b5050915091565b610ad5610e1e565b610e108163ffffffff161080610af457506301e133808163ffffffff16115b80610b12575060085463ffffffff600160a01b909104811690821611155b15610b30576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b9b5750825b90506000826001600160401b03166001148015610bb75750303b155b905081158015610bc5575080155b15610be35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c0d57845460ff60401b1916600160401b1785555b610c1686611472565b610c1e611483565b610c2989898961148b565b8315610c6f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610c886107de565b841180610c93575080155b80610cde5750600854600980549091600160c01b90046001600160401b0316908110610cc157610cc1612657565b60009182526020909120600290910201546001600160401b031684105b15610cfc5760405163b0b4387760e01b815260040160405180910390fd5b60008080610d0b600185612644565b90505b81610da957600854600160c01b90046001600160401b03168110610da9578660098281548110610d4057610d40612657565b60009182526020909120600290910201546001600160401b031611610d97576001915060098181548110610d7657610d76612657565b60009182526020909120600290910201546001600160401b03169250610da9565b80610da18161266d565b915050610d0e565b81610dc75760405163b0b4387760e01b815260040160405180910390fd5b85610dd28489612644565b119450505050505b92915050565b610de8610e1e565b6001600160a01b038116610e1257604051631e4fbdf760e01b81526000600482015260240161082e565b610e1b81611401565b50565b33610e507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109865760405163118cdaa760e01b815233600482015260240161082e565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108f85760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c640000000000604482015260640161082e565b6000610ef36115b8565b9050610efd611e31565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273364dbd12edeb5061435f3f185f9587241bbce5279063ce537a7790610f7d9085908590889060040161288b565b602060405180830381865af4158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190612aba565b610fdb576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611057575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b031690811061102157611021612657565b600091825260209091206002909102015461104c90600160401b90046001600160401b031684612adc565b6001600160401b0316115b156110eb57600854600980549091600160c01b90046001600160401b031690811061108457611084612657565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186110c583612b03565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b610e1b816040516024016111e191906125c0565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052611be7565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061129757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661128b600080516020612b46833981519152546001600160a01b031690565b6001600160a01b031614155b156109865760405163703e46dd60e11b815260040160405180910390fd5b6112bd610e1e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611350575060408051601f3d908101601f1916820190925261134d91810190612615565b60015b61137857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161082e565b600080516020612b4683398151915281146113a957604051632a87526960e21b81526004810182905260240161082e565b6113b38383611c08565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109865760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61147a611c5e565b610e1b81611ca7565b610986611c5e565b82516001600160401b03161515806114af575060208301516001600160401b031615155b806114bc57506020820151155b806114c957506040820151155b806114d657506060820151155b806114e057508151155b806114f25750610e108163ffffffff16105b8061150657506301e133808163ffffffff16115b15611524576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6115c0611e4f565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b611c1182611caf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611c56576113b38282611d14565b6108f8611d8a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661098657604051631afcd79f60e31b815260040160405180910390fd5b610de8611c5e565b806001600160a01b03163b600003611ce557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161082e565b600080516020612b4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611d319190612b29565b600060405180830381855af49150503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b5091509150611d81858383611da9565b95945050505050565b34156109865760405163b398979f60e01b815260040160405180910390fd5b606082611dbe57611db982611e08565b611e01565b8151158015611dd557506001600160a01b0384163b155b15611dfe57604051639996b31560e01b81526001600160a01b038516600482015260240161082e565b50805b9392505050565b805115611e185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e86604051806040016040528060008152602001600081525090565b8152602001611ea8604051806040016040528060008152602001600081525090565b8152602001611eca604051806040016040528060008152602001600081525090565b8152602001611eec604051806040016040528060008152602001600081525090565b8152602001611f0e604051806040016040528060008152602001600081525090565b8152602001611f30604051806040016040528060008152602001600081525090565b8152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b8152602001612040604051806040016040528060008152602001600081525090565b8152602001612062604051806040016040528060008152602001600081525090565b8152602001612084604051806040016040528060008152602001600081525090565b81526020016120a6604051806040016040528060008152602001600081525090565b81526020016120c8604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b611e01826120dc565b60006020828403121561212557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156121655761216561212c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121935761219361212c565b604052919050565b80356001600160401b03811681146120f357600080fd5b6000606082840312156121c457600080fd5b604051606081018181106001600160401b03821117156121e6576121e661212c565b6040529050806121f58361219b565b81526122036020840161219b565b6020820152604083013560408201525092915050565b60006040828403121561222b57600080fd5b604051604081018181106001600160401b038211171561224d5761224d61212c565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561227c57600080fd5b61228685856121b2565b925061048080605f198301121561229c57600080fd5b6122a4612142565b91506122b38660608701612219565b82526122c28660a08701612219565b60208301526122d48660e08701612219565b60408301526101206122e887828801612219565b60608401526101606122fc88828901612219565b60808501526101a061231089828a01612219565b60a08601526101e06123248a828b01612219565b60c08701526102206123388b828c01612219565b60e088015261026061234c8c828d01612219565b6101008901526102a06123618d828e01612219565b878a01526123738d6102e08e01612219565b6101408a01526123878d6103208e01612219565b868a01526123998d6103608e01612219565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561242e57600080fd5b612437836120dc565b91506020808401356001600160401b038082111561245457600080fd5b818601915086601f83011261246857600080fd5b81358181111561247a5761247a61212c565b61248c601f8201601f1916850161216b565b915080825287848285010111156124a257600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120f357600080fd5b6000602082840312156124e657600080fd5b611e01826124c0565b60008060008084860361012081121561250757600080fd5b61251187876121b2565b94506080605f198201121561252557600080fd5b50604051608081018181106001600160401b03821117156125485761254861212c565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061258260e086016124c0565b915061259161010086016120dc565b905092959194509250565b60005b838110156125b757818101518382015260200161259f565b50506000910152565b60208152600082518060208401526125df81604085016020870161259c565b601f01601f19169190910160400192915050565b6000806040838503121561260657600080fd5b50508035926020909101359150565b60006020828403121561262757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dda57610dda61262e565b634e487b7160e01b600052603260045260246000fd5b60008161267c5761267c61262e565b506000190190565b8060005b6007811015610fdb578151845260209384019390910190600101612688565b6126bc82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061271f8185018380518252602090810151910152565b60a0830151915061014061273f8186018480518252602090810151910152565b60c0840151925061018061275f8187018580518252602090810151910152565b60e085015193506101c061277f8188018680518252602090810151910152565b9285015193506102009261279f8785018680518252602090810151910152565b61012086015194506102406127c08189018780518252602090810151910152565b928601519450610280926127e08885018780518252602090810151910152565b61016087015195506102c0612801818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516128be604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061290b8185018380518252602090810151910152565b60c0870151915061014061292b8186018480518252602090810151910152565b60e0880151925061018061294b8187018580518252602090810151910152565b9188015192506101c09161296b8684018580518252602090810151910152565b610120890151935061020061298c8188018680518252602090810151910152565b918901519350610240916129ac8784018680518252602090810151910152565b6101608a015194506102806129cd8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612aa4610500830185612684565b612ab26105e08301846126a7565b949350505050565b600060208284031215612acc57600080fd5b81518015158114611e0157600080fd5b6001600160401b03828116828216039080821115612afc57612afc61262e565b5092915050565b60006001600160401b03808316818103612b1f57612b1f61262e565b6001019392505050565b60008251612b3b81846020870161259c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", + "nonce": "0x791", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CREATE", + "contractName": "ERC1967Proxy", + "contractAddress": "0x9505e8b8546cc9015b2c015826d25821cc48c153", + "function": null, + "arguments": [ + "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB", + "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" + ], + "transaction": { + "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "gas": "0x6a8bd", + "value": "0x0", + "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a00000000000000000000000085fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000000000000000000000000000000000000", + "nonce": "0x792", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [ + "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x364dbd12eDEB5061435F3f185f9587241bbcE527" + ], + "pending": [], + "returns": { + "proxyAddress": { + "internal_type": "address", + "value": "0x9505E8B8546cC9015B2c015826d25821CC48C153" + }, + "implementationAddress": { + "internal_type": "address", + "value": "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB" + }, + "lightClientState": { + "internal_type": "struct LightClientArbitrum2.LightClientState", + "value": "(0, 0, 1234)" + } + }, + "timestamp": 1736544114, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736602963.json b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736602963.json new file mode 100644 index 0000000000..a51cdf45ed --- /dev/null +++ b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736602963.json @@ -0,0 +1,103 @@ +{ + "transactions": [ + { + "hash": null, + "transactionType": "CREATE", + "contractName": "LightClientArbitrum2", + "contractAddress": "0xde9c0d5ff63e89cd6dd283ce5d36ab77041a0efd", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x32f5cb", + "value": "0x0", + "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b72620001046000396000818161121b0152818161124401526113c30152612b726000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120f8565b610584565b005b34801561017e57600080fd5b5061019261018d366004612113565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612267565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b61017061030836600461241b565b6108dd565b34801561031957600080fd5b506102a96108fc565b34801561032e57600080fd5b50610170610919565b34801561034357600080fd5b50610170610988565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b50610398610393366004612113565b61099a565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124d4565b610acd565b34801561041e57600080fd5b5061017061042d3660046124ef565b610b56565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906125c0565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125f3565b610c7a565b34801561055b57600080fd5b5061017061056a3660046120f8565b610de0565b34801561057b57600080fd5b506009546102a9565b61058c610e1e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610e79565b6107338282610ee9565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610fe1565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b60006064803b82036108375760405162461bcd60e51b815260206004820152601f60248201527f41726253797320707265636f6d70696c65206e6f7420617661696c61626c650060448201526064015b60405180910390fd5b6108756040518060400160405280601a81526020017f617262537973507265636f6d70696c6520617661696c61626c650000000000008152506111cd565b806001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190612615565b91505090565b6108e5611210565b6108ee826112b5565b6108f882826112f6565b5050565b60006109066113b8565b50600080516020612b4683398151915290565b610921610e1e565b6008546001600160a01b03161561096d57600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b610990610e1e565b6109866000611401565b600980546000918291906109af600183612644565b815481106109bf576109bf612657565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a0057604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610ac6578460098281548110610a3057610a30612657565b6000918252602090912060029091020154600160801b90046001600160401b031610610abe5760098181548110610a6957610a69612657565b90600052602060002090600202016001015460098281548110610a8e57610a8e612657565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a14565b5050915091565b610ad5610e1e565b610e108163ffffffff161080610af457506301e133808163ffffffff16115b80610b12575060085463ffffffff600160a01b909104811690821611155b15610b30576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b9b5750825b90506000826001600160401b03166001148015610bb75750303b155b905081158015610bc5575080155b15610be35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c0d57845460ff60401b1916600160401b1785555b610c1686611472565b610c1e611483565b610c2989898961148b565b8315610c6f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610c886107de565b841180610c93575080155b80610cde5750600854600980549091600160c01b90046001600160401b0316908110610cc157610cc1612657565b60009182526020909120600290910201546001600160401b031684105b15610cfc5760405163b0b4387760e01b815260040160405180910390fd5b60008080610d0b600185612644565b90505b81610da957600854600160c01b90046001600160401b03168110610da9578660098281548110610d4057610d40612657565b60009182526020909120600290910201546001600160401b031611610d97576001915060098181548110610d7657610d76612657565b60009182526020909120600290910201546001600160401b03169250610da9565b80610da18161266d565b915050610d0e565b81610dc75760405163b0b4387760e01b815260040160405180910390fd5b85610dd28489612644565b119450505050505b92915050565b610de8610e1e565b6001600160a01b038116610e1257604051631e4fbdf760e01b81526000600482015260240161082e565b610e1b81611401565b50565b33610e507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109865760405163118cdaa760e01b815233600482015260240161082e565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108f85760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c640000000000604482015260640161082e565b6000610ef36115b8565b9050610efd611e31565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273085a1ec0d51f4541d81a442a0df4c9e9c70d7d1e9063ce537a7790610f7d9085908590889060040161288b565b602060405180830381865af4158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190612aba565b610fdb576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611057575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b031690811061102157611021612657565b600091825260209091206002909102015461104c90600160401b90046001600160401b031684612adc565b6001600160401b0316115b156110eb57600854600980549091600160c01b90046001600160401b031690811061108457611084612657565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186110c583612b03565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b610e1b816040516024016111e191906125c0565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052611be7565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061129757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661128b600080516020612b46833981519152546001600160a01b031690565b6001600160a01b031614155b156109865760405163703e46dd60e11b815260040160405180910390fd5b6112bd610e1e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611350575060408051601f3d908101601f1916820190925261134d91810190612615565b60015b61137857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161082e565b600080516020612b4683398151915281146113a957604051632a87526960e21b81526004810182905260240161082e565b6113b38383611c08565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109865760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61147a611c5e565b610e1b81611ca7565b610986611c5e565b82516001600160401b03161515806114af575060208301516001600160401b031615155b806114bc57506020820151155b806114c957506040820151155b806114d657506060820151155b806114e057508151155b806114f25750610e108163ffffffff16105b8061150657506301e133808163ffffffff16115b15611524576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6115c0611e4f565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b611c1182611caf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611c56576113b38282611d14565b6108f8611d8a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661098657604051631afcd79f60e31b815260040160405180910390fd5b610de8611c5e565b806001600160a01b03163b600003611ce557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161082e565b600080516020612b4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611d319190612b29565b600060405180830381855af49150503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b5091509150611d81858383611da9565b95945050505050565b34156109865760405163b398979f60e01b815260040160405180910390fd5b606082611dbe57611db982611e08565b611e01565b8151158015611dd557506001600160a01b0384163b155b15611dfe57604051639996b31560e01b81526001600160a01b038516600482015260240161082e565b50805b9392505050565b805115611e185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e86604051806040016040528060008152602001600081525090565b8152602001611ea8604051806040016040528060008152602001600081525090565b8152602001611eca604051806040016040528060008152602001600081525090565b8152602001611eec604051806040016040528060008152602001600081525090565b8152602001611f0e604051806040016040528060008152602001600081525090565b8152602001611f30604051806040016040528060008152602001600081525090565b8152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b8152602001612040604051806040016040528060008152602001600081525090565b8152602001612062604051806040016040528060008152602001600081525090565b8152602001612084604051806040016040528060008152602001600081525090565b81526020016120a6604051806040016040528060008152602001600081525090565b81526020016120c8604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b611e01826120dc565b60006020828403121561212557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156121655761216561212c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121935761219361212c565b604052919050565b80356001600160401b03811681146120f357600080fd5b6000606082840312156121c457600080fd5b604051606081018181106001600160401b03821117156121e6576121e661212c565b6040529050806121f58361219b565b81526122036020840161219b565b6020820152604083013560408201525092915050565b60006040828403121561222b57600080fd5b604051604081018181106001600160401b038211171561224d5761224d61212c565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561227c57600080fd5b61228685856121b2565b925061048080605f198301121561229c57600080fd5b6122a4612142565b91506122b38660608701612219565b82526122c28660a08701612219565b60208301526122d48660e08701612219565b60408301526101206122e887828801612219565b60608401526101606122fc88828901612219565b60808501526101a061231089828a01612219565b60a08601526101e06123248a828b01612219565b60c08701526102206123388b828c01612219565b60e088015261026061234c8c828d01612219565b6101008901526102a06123618d828e01612219565b878a01526123738d6102e08e01612219565b6101408a01526123878d6103208e01612219565b868a01526123998d6103608e01612219565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561242e57600080fd5b612437836120dc565b91506020808401356001600160401b038082111561245457600080fd5b818601915086601f83011261246857600080fd5b81358181111561247a5761247a61212c565b61248c601f8201601f1916850161216b565b915080825287848285010111156124a257600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120f357600080fd5b6000602082840312156124e657600080fd5b611e01826124c0565b60008060008084860361012081121561250757600080fd5b61251187876121b2565b94506080605f198201121561252557600080fd5b50604051608081018181106001600160401b03821117156125485761254861212c565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061258260e086016124c0565b915061259161010086016120dc565b905092959194509250565b60005b838110156125b757818101518382015260200161259f565b50506000910152565b60208152600082518060208401526125df81604085016020870161259c565b601f01601f19169190910160400192915050565b6000806040838503121561260657600080fd5b50508035926020909101359150565b60006020828403121561262757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dda57610dda61262e565b634e487b7160e01b600052603260045260246000fd5b60008161267c5761267c61262e565b506000190190565b8060005b6007811015610fdb578151845260209384019390910190600101612688565b6126bc82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061271f8185018380518252602090810151910152565b60a0830151915061014061273f8186018480518252602090810151910152565b60c0840151925061018061275f8187018580518252602090810151910152565b60e085015193506101c061277f8188018680518252602090810151910152565b9285015193506102009261279f8785018680518252602090810151910152565b61012086015194506102406127c08189018780518252602090810151910152565b928601519450610280926127e08885018780518252602090810151910152565b61016087015195506102c0612801818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516128be604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061290b8185018380518252602090810151910152565b60c0870151915061014061292b8186018480518252602090810151910152565b60e0880151925061018061294b8187018580518252602090810151910152565b9188015192506101c09161296b8684018580518252602090810151910152565b610120890151935061020061298c8188018680518252602090810151910152565b918901519350610240916129ac8784018680518252602090810151910152565b6101608a015194506102806129cd8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612aa4610500830185612684565b612ab26105e08301846126a7565b949350505050565b600060208284031215612acc57600080fd5b81518015158114611e0157600080fd5b6001600160401b03828116828216039080821115612afc57612afc61262e565b5092915050565b60006001600160401b03808316818103612b1f57612b1f61262e565b6001019392505050565b60008251612b3b81846020870161259c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", + "nonce": "0x1f", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CREATE", + "contractName": "ERC1967Proxy", + "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", + "function": null, + "arguments": [ + "0xde9c0D5FF63E89cd6Dd283CE5D36aB77041A0eFd", + "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" + ], + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x6a8bd", + "value": "0x0", + "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a000000000000000000000000de9c0d5ff63e89cd6dd283ce5d36ab77041a0efd000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e00000000000000000000000000000000000000000000000000000000", + "nonce": "0x20", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", + "gas": "0x76de", + "value": "0x0", + "input": "0x013fa5fc000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", + "nonce": "0x21", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", + "gas": "0x76d9", + "value": "0x0", + "input": "0xf2fde38b0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be", + "nonce": "0x22", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [ + "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x085a1Ec0d51f4541d81a442a0Df4c9E9C70D7D1e" + ], + "pending": [], + "returns": { + "implementationAddress": { + "internal_type": "address", + "value": "0xde9c0D5FF63E89cd6Dd283CE5D36aB77041A0eFd" + }, + "lightClientState": { + "internal_type": "struct LightClientArbitrum2.LightClientState", + "value": "(0, 0, 1234)" + }, + "proxyAddress": { + "internal_type": "address", + "value": "0xec09686F9D6C77d8b9C58bEEbd937e8EA6e29a7d" + } + }, + "timestamp": 1736602963, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603058.json b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603058.json new file mode 100644 index 0000000000..f89862a864 --- /dev/null +++ b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603058.json @@ -0,0 +1,103 @@ +{ + "transactions": [ + { + "hash": null, + "transactionType": "CREATE", + "contractName": "LightClientArbitrum2", + "contractAddress": "0xde9c0d5ff63e89cd6dd283ce5d36ab77041a0efd", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x330547", + "value": "0x0", + "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b72620001046000396000818161121b0152818161124401526113c30152612b726000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120f8565b610584565b005b34801561017e57600080fd5b5061019261018d366004612113565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612267565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b61017061030836600461241b565b6108dd565b34801561031957600080fd5b506102a96108fc565b34801561032e57600080fd5b50610170610919565b34801561034357600080fd5b50610170610988565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b50610398610393366004612113565b61099a565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124d4565b610acd565b34801561041e57600080fd5b5061017061042d3660046124ef565b610b56565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906125c0565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125f3565b610c7a565b34801561055b57600080fd5b5061017061056a3660046120f8565b610de0565b34801561057b57600080fd5b506009546102a9565b61058c610e1e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610e79565b6107338282610ee9565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610fe1565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b60006064803b82036108375760405162461bcd60e51b815260206004820152601f60248201527f41726253797320707265636f6d70696c65206e6f7420617661696c61626c650060448201526064015b60405180910390fd5b6108756040518060400160405280601a81526020017f617262537973507265636f6d70696c6520617661696c61626c650000000000008152506111cd565b806001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190612615565b91505090565b6108e5611210565b6108ee826112b5565b6108f882826112f6565b5050565b60006109066113b8565b50600080516020612b4683398151915290565b610921610e1e565b6008546001600160a01b03161561096d57600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b610990610e1e565b6109866000611401565b600980546000918291906109af600183612644565b815481106109bf576109bf612657565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a0057604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610ac6578460098281548110610a3057610a30612657565b6000918252602090912060029091020154600160801b90046001600160401b031610610abe5760098181548110610a6957610a69612657565b90600052602060002090600202016001015460098281548110610a8e57610a8e612657565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a14565b5050915091565b610ad5610e1e565b610e108163ffffffff161080610af457506301e133808163ffffffff16115b80610b12575060085463ffffffff600160a01b909104811690821611155b15610b30576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b9b5750825b90506000826001600160401b03166001148015610bb75750303b155b905081158015610bc5575080155b15610be35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c0d57845460ff60401b1916600160401b1785555b610c1686611472565b610c1e611483565b610c2989898961148b565b8315610c6f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610c886107de565b841180610c93575080155b80610cde5750600854600980549091600160c01b90046001600160401b0316908110610cc157610cc1612657565b60009182526020909120600290910201546001600160401b031684105b15610cfc5760405163b0b4387760e01b815260040160405180910390fd5b60008080610d0b600185612644565b90505b81610da957600854600160c01b90046001600160401b03168110610da9578660098281548110610d4057610d40612657565b60009182526020909120600290910201546001600160401b031611610d97576001915060098181548110610d7657610d76612657565b60009182526020909120600290910201546001600160401b03169250610da9565b80610da18161266d565b915050610d0e565b81610dc75760405163b0b4387760e01b815260040160405180910390fd5b85610dd28489612644565b119450505050505b92915050565b610de8610e1e565b6001600160a01b038116610e1257604051631e4fbdf760e01b81526000600482015260240161082e565b610e1b81611401565b50565b33610e507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109865760405163118cdaa760e01b815233600482015260240161082e565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108f85760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c640000000000604482015260640161082e565b6000610ef36115b8565b9050610efd611e31565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273085a1ec0d51f4541d81a442a0df4c9e9c70d7d1e9063ce537a7790610f7d9085908590889060040161288b565b602060405180830381865af4158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190612aba565b610fdb576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611057575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b031690811061102157611021612657565b600091825260209091206002909102015461104c90600160401b90046001600160401b031684612adc565b6001600160401b0316115b156110eb57600854600980549091600160c01b90046001600160401b031690811061108457611084612657565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186110c583612b03565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b610e1b816040516024016111e191906125c0565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052611be7565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061129757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661128b600080516020612b46833981519152546001600160a01b031690565b6001600160a01b031614155b156109865760405163703e46dd60e11b815260040160405180910390fd5b6112bd610e1e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611350575060408051601f3d908101601f1916820190925261134d91810190612615565b60015b61137857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161082e565b600080516020612b4683398151915281146113a957604051632a87526960e21b81526004810182905260240161082e565b6113b38383611c08565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109865760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61147a611c5e565b610e1b81611ca7565b610986611c5e565b82516001600160401b03161515806114af575060208301516001600160401b031615155b806114bc57506020820151155b806114c957506040820151155b806114d657506060820151155b806114e057508151155b806114f25750610e108163ffffffff16105b8061150657506301e133808163ffffffff16115b15611524576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6115c0611e4f565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b611c1182611caf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611c56576113b38282611d14565b6108f8611d8a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661098657604051631afcd79f60e31b815260040160405180910390fd5b610de8611c5e565b806001600160a01b03163b600003611ce557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161082e565b600080516020612b4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611d319190612b29565b600060405180830381855af49150503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b5091509150611d81858383611da9565b95945050505050565b34156109865760405163b398979f60e01b815260040160405180910390fd5b606082611dbe57611db982611e08565b611e01565b8151158015611dd557506001600160a01b0384163b155b15611dfe57604051639996b31560e01b81526001600160a01b038516600482015260240161082e565b50805b9392505050565b805115611e185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e86604051806040016040528060008152602001600081525090565b8152602001611ea8604051806040016040528060008152602001600081525090565b8152602001611eca604051806040016040528060008152602001600081525090565b8152602001611eec604051806040016040528060008152602001600081525090565b8152602001611f0e604051806040016040528060008152602001600081525090565b8152602001611f30604051806040016040528060008152602001600081525090565b8152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b8152602001612040604051806040016040528060008152602001600081525090565b8152602001612062604051806040016040528060008152602001600081525090565b8152602001612084604051806040016040528060008152602001600081525090565b81526020016120a6604051806040016040528060008152602001600081525090565b81526020016120c8604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b611e01826120dc565b60006020828403121561212557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156121655761216561212c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121935761219361212c565b604052919050565b80356001600160401b03811681146120f357600080fd5b6000606082840312156121c457600080fd5b604051606081018181106001600160401b03821117156121e6576121e661212c565b6040529050806121f58361219b565b81526122036020840161219b565b6020820152604083013560408201525092915050565b60006040828403121561222b57600080fd5b604051604081018181106001600160401b038211171561224d5761224d61212c565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561227c57600080fd5b61228685856121b2565b925061048080605f198301121561229c57600080fd5b6122a4612142565b91506122b38660608701612219565b82526122c28660a08701612219565b60208301526122d48660e08701612219565b60408301526101206122e887828801612219565b60608401526101606122fc88828901612219565b60808501526101a061231089828a01612219565b60a08601526101e06123248a828b01612219565b60c08701526102206123388b828c01612219565b60e088015261026061234c8c828d01612219565b6101008901526102a06123618d828e01612219565b878a01526123738d6102e08e01612219565b6101408a01526123878d6103208e01612219565b868a01526123998d6103608e01612219565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561242e57600080fd5b612437836120dc565b91506020808401356001600160401b038082111561245457600080fd5b818601915086601f83011261246857600080fd5b81358181111561247a5761247a61212c565b61248c601f8201601f1916850161216b565b915080825287848285010111156124a257600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120f357600080fd5b6000602082840312156124e657600080fd5b611e01826124c0565b60008060008084860361012081121561250757600080fd5b61251187876121b2565b94506080605f198201121561252557600080fd5b50604051608081018181106001600160401b03821117156125485761254861212c565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061258260e086016124c0565b915061259161010086016120dc565b905092959194509250565b60005b838110156125b757818101518382015260200161259f565b50506000910152565b60208152600082518060208401526125df81604085016020870161259c565b601f01601f19169190910160400192915050565b6000806040838503121561260657600080fd5b50508035926020909101359150565b60006020828403121561262757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dda57610dda61262e565b634e487b7160e01b600052603260045260246000fd5b60008161267c5761267c61262e565b506000190190565b8060005b6007811015610fdb578151845260209384019390910190600101612688565b6126bc82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061271f8185018380518252602090810151910152565b60a0830151915061014061273f8186018480518252602090810151910152565b60c0840151925061018061275f8187018580518252602090810151910152565b60e085015193506101c061277f8188018680518252602090810151910152565b9285015193506102009261279f8785018680518252602090810151910152565b61012086015194506102406127c08189018780518252602090810151910152565b928601519450610280926127e08885018780518252602090810151910152565b61016087015195506102c0612801818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516128be604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061290b8185018380518252602090810151910152565b60c0870151915061014061292b8186018480518252602090810151910152565b60e0880151925061018061294b8187018580518252602090810151910152565b9188015192506101c09161296b8684018580518252602090810151910152565b610120890151935061020061298c8188018680518252602090810151910152565b918901519350610240916129ac8784018680518252602090810151910152565b6101608a015194506102806129cd8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612aa4610500830185612684565b612ab26105e08301846126a7565b949350505050565b600060208284031215612acc57600080fd5b81518015158114611e0157600080fd5b6001600160401b03828116828216039080821115612afc57612afc61262e565b5092915050565b60006001600160401b03808316818103612b1f57612b1f61262e565b6001019392505050565b60008251612b3b81846020870161259c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", + "nonce": "0x1f", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CREATE", + "contractName": "ERC1967Proxy", + "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", + "function": null, + "arguments": [ + "0xde9c0D5FF63E89cd6Dd283CE5D36aB77041A0eFd", + "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" + ], + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x6a8bd", + "value": "0x0", + "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a000000000000000000000000de9c0d5ff63e89cd6dd283ce5d36ab77041a0efd000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e00000000000000000000000000000000000000000000000000000000", + "nonce": "0x20", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", + "gas": "0x7756", + "value": "0x0", + "input": "0x013fa5fc000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", + "nonce": "0x21", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", + "gas": "0x7756", + "value": "0x0", + "input": "0xf2fde38b0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be", + "nonce": "0x22", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [ + "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x085a1Ec0d51f4541d81a442a0Df4c9E9C70D7D1e" + ], + "pending": [], + "returns": { + "implementationAddress": { + "internal_type": "address", + "value": "0xde9c0D5FF63E89cd6Dd283CE5D36aB77041A0eFd" + }, + "proxyAddress": { + "internal_type": "address", + "value": "0xec09686F9D6C77d8b9C58bEEbd937e8EA6e29a7d" + }, + "lightClientState": { + "internal_type": "struct LightClientArbitrum2.LightClientState", + "value": "(0, 0, 1234)" + } + }, + "timestamp": 1736603058, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603225.json b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603225.json new file mode 100644 index 0000000000..5f91e6a512 --- /dev/null +++ b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603225.json @@ -0,0 +1,136 @@ +{ + "transactions": [ + { + "hash": "0x0f0cd3e2722e1a70fd470f9dc43b10b2fefb183357559f9017eeacc4235b0c2c", + "transactionType": "CREATE", + "contractName": "LightClientArbitrum2", + "contractAddress": "0xde9c0d5ff63e89cd6dd283ce5d36ab77041a0efd", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x385b7d", + "value": "0x0", + "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b72620001046000396000818161121b0152818161124401526113c30152612b726000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120f8565b610584565b005b34801561017e57600080fd5b5061019261018d366004612113565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612267565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b61017061030836600461241b565b6108dd565b34801561031957600080fd5b506102a96108fc565b34801561032e57600080fd5b50610170610919565b34801561034357600080fd5b50610170610988565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b50610398610393366004612113565b61099a565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124d4565b610acd565b34801561041e57600080fd5b5061017061042d3660046124ef565b610b56565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906125c0565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125f3565b610c7a565b34801561055b57600080fd5b5061017061056a3660046120f8565b610de0565b34801561057b57600080fd5b506009546102a9565b61058c610e1e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610e79565b6107338282610ee9565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610fe1565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b60006064803b82036108375760405162461bcd60e51b815260206004820152601f60248201527f41726253797320707265636f6d70696c65206e6f7420617661696c61626c650060448201526064015b60405180910390fd5b6108756040518060400160405280601a81526020017f617262537973507265636f6d70696c6520617661696c61626c650000000000008152506111cd565b806001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190612615565b91505090565b6108e5611210565b6108ee826112b5565b6108f882826112f6565b5050565b60006109066113b8565b50600080516020612b4683398151915290565b610921610e1e565b6008546001600160a01b03161561096d57600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b610990610e1e565b6109866000611401565b600980546000918291906109af600183612644565b815481106109bf576109bf612657565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a0057604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610ac6578460098281548110610a3057610a30612657565b6000918252602090912060029091020154600160801b90046001600160401b031610610abe5760098181548110610a6957610a69612657565b90600052602060002090600202016001015460098281548110610a8e57610a8e612657565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a14565b5050915091565b610ad5610e1e565b610e108163ffffffff161080610af457506301e133808163ffffffff16115b80610b12575060085463ffffffff600160a01b909104811690821611155b15610b30576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b9b5750825b90506000826001600160401b03166001148015610bb75750303b155b905081158015610bc5575080155b15610be35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c0d57845460ff60401b1916600160401b1785555b610c1686611472565b610c1e611483565b610c2989898961148b565b8315610c6f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610c886107de565b841180610c93575080155b80610cde5750600854600980549091600160c01b90046001600160401b0316908110610cc157610cc1612657565b60009182526020909120600290910201546001600160401b031684105b15610cfc5760405163b0b4387760e01b815260040160405180910390fd5b60008080610d0b600185612644565b90505b81610da957600854600160c01b90046001600160401b03168110610da9578660098281548110610d4057610d40612657565b60009182526020909120600290910201546001600160401b031611610d97576001915060098181548110610d7657610d76612657565b60009182526020909120600290910201546001600160401b03169250610da9565b80610da18161266d565b915050610d0e565b81610dc75760405163b0b4387760e01b815260040160405180910390fd5b85610dd28489612644565b119450505050505b92915050565b610de8610e1e565b6001600160a01b038116610e1257604051631e4fbdf760e01b81526000600482015260240161082e565b610e1b81611401565b50565b33610e507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109865760405163118cdaa760e01b815233600482015260240161082e565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108f85760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c640000000000604482015260640161082e565b6000610ef36115b8565b9050610efd611e31565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273085a1ec0d51f4541d81a442a0df4c9e9c70d7d1e9063ce537a7790610f7d9085908590889060040161288b565b602060405180830381865af4158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190612aba565b610fdb576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611057575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b031690811061102157611021612657565b600091825260209091206002909102015461104c90600160401b90046001600160401b031684612adc565b6001600160401b0316115b156110eb57600854600980549091600160c01b90046001600160401b031690811061108457611084612657565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186110c583612b03565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b610e1b816040516024016111e191906125c0565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052611be7565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061129757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661128b600080516020612b46833981519152546001600160a01b031690565b6001600160a01b031614155b156109865760405163703e46dd60e11b815260040160405180910390fd5b6112bd610e1e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611350575060408051601f3d908101601f1916820190925261134d91810190612615565b60015b61137857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161082e565b600080516020612b4683398151915281146113a957604051632a87526960e21b81526004810182905260240161082e565b6113b38383611c08565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109865760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61147a611c5e565b610e1b81611ca7565b610986611c5e565b82516001600160401b03161515806114af575060208301516001600160401b031615155b806114bc57506020820151155b806114c957506040820151155b806114d657506060820151155b806114e057508151155b806114f25750610e108163ffffffff16105b8061150657506301e133808163ffffffff16115b15611524576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6115c0611e4f565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b611c1182611caf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611c56576113b38282611d14565b6108f8611d8a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661098657604051631afcd79f60e31b815260040160405180910390fd5b610de8611c5e565b806001600160a01b03163b600003611ce557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161082e565b600080516020612b4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611d319190612b29565b600060405180830381855af49150503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b5091509150611d81858383611da9565b95945050505050565b34156109865760405163b398979f60e01b815260040160405180910390fd5b606082611dbe57611db982611e08565b611e01565b8151158015611dd557506001600160a01b0384163b155b15611dfe57604051639996b31560e01b81526001600160a01b038516600482015260240161082e565b50805b9392505050565b805115611e185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e86604051806040016040528060008152602001600081525090565b8152602001611ea8604051806040016040528060008152602001600081525090565b8152602001611eca604051806040016040528060008152602001600081525090565b8152602001611eec604051806040016040528060008152602001600081525090565b8152602001611f0e604051806040016040528060008152602001600081525090565b8152602001611f30604051806040016040528060008152602001600081525090565b8152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b8152602001612040604051806040016040528060008152602001600081525090565b8152602001612062604051806040016040528060008152602001600081525090565b8152602001612084604051806040016040528060008152602001600081525090565b81526020016120a6604051806040016040528060008152602001600081525090565b81526020016120c8604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b611e01826120dc565b60006020828403121561212557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156121655761216561212c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121935761219361212c565b604052919050565b80356001600160401b03811681146120f357600080fd5b6000606082840312156121c457600080fd5b604051606081018181106001600160401b03821117156121e6576121e661212c565b6040529050806121f58361219b565b81526122036020840161219b565b6020820152604083013560408201525092915050565b60006040828403121561222b57600080fd5b604051604081018181106001600160401b038211171561224d5761224d61212c565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561227c57600080fd5b61228685856121b2565b925061048080605f198301121561229c57600080fd5b6122a4612142565b91506122b38660608701612219565b82526122c28660a08701612219565b60208301526122d48660e08701612219565b60408301526101206122e887828801612219565b60608401526101606122fc88828901612219565b60808501526101a061231089828a01612219565b60a08601526101e06123248a828b01612219565b60c08701526102206123388b828c01612219565b60e088015261026061234c8c828d01612219565b6101008901526102a06123618d828e01612219565b878a01526123738d6102e08e01612219565b6101408a01526123878d6103208e01612219565b868a01526123998d6103608e01612219565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561242e57600080fd5b612437836120dc565b91506020808401356001600160401b038082111561245457600080fd5b818601915086601f83011261246857600080fd5b81358181111561247a5761247a61212c565b61248c601f8201601f1916850161216b565b915080825287848285010111156124a257600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120f357600080fd5b6000602082840312156124e657600080fd5b611e01826124c0565b60008060008084860361012081121561250757600080fd5b61251187876121b2565b94506080605f198201121561252557600080fd5b50604051608081018181106001600160401b03821117156125485761254861212c565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061258260e086016124c0565b915061259161010086016120dc565b905092959194509250565b60005b838110156125b757818101518382015260200161259f565b50506000910152565b60208152600082518060208401526125df81604085016020870161259c565b601f01601f19169190910160400192915050565b6000806040838503121561260657600080fd5b50508035926020909101359150565b60006020828403121561262757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dda57610dda61262e565b634e487b7160e01b600052603260045260246000fd5b60008161267c5761267c61262e565b506000190190565b8060005b6007811015610fdb578151845260209384019390910190600101612688565b6126bc82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061271f8185018380518252602090810151910152565b60a0830151915061014061273f8186018480518252602090810151910152565b60c0840151925061018061275f8187018580518252602090810151910152565b60e085015193506101c061277f8188018680518252602090810151910152565b9285015193506102009261279f8785018680518252602090810151910152565b61012086015194506102406127c08189018780518252602090810151910152565b928601519450610280926127e08885018780518252602090810151910152565b61016087015195506102c0612801818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516128be604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061290b8185018380518252602090810151910152565b60c0870151915061014061292b8186018480518252602090810151910152565b60e0880151925061018061294b8187018580518252602090810151910152565b9188015192506101c09161296b8684018580518252602090810151910152565b610120890151935061020061298c8188018680518252602090810151910152565b918901519350610240916129ac8784018680518252602090810151910152565b6101608a015194506102806129cd8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612aa4610500830185612684565b612ab26105e08301846126a7565b949350505050565b600060208284031215612acc57600080fd5b81518015158114611e0157600080fd5b6001600160401b03828116828216039080821115612afc57612afc61262e565b5092915050565b60006001600160401b03808316818103612b1f57612b1f61262e565b6001019392505050565b60008251612b3b81846020870161259c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", + "nonce": "0x1f", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CREATE", + "contractName": "ERC1967Proxy", + "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", + "function": null, + "arguments": [ + "0xde9c0D5FF63E89cd6Dd283CE5D36aB77041A0eFd", + "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" + ], + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x6a8bd", + "value": "0x0", + "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a000000000000000000000000de9c0d5ff63e89cd6dd283ce5d36ab77041a0efd000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e00000000000000000000000000000000000000000000000000000000", + "nonce": "0x20", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", + "gas": "0x99fb", + "value": "0x0", + "input": "0x013fa5fc000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", + "nonce": "0x21", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", + "gas": "0x99fb", + "value": "0x0", + "input": "0xf2fde38b0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be", + "nonce": "0x22", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x31c690", + "logs": [ + { + "address": "0xde9c0d5ff63e89cd6dd283ce5d36ab77041a0efd", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "blockHash": "0x4cd1f51c57e2ccfb4ac11d34d3fe751872a0abdb6771a09a61c077b13d70894e", + "blockNumber": "0x6cf0887", + "transactionHash": "0x0f0cd3e2722e1a70fd470f9dc43b10b2fefb183357559f9017eeacc4235b0c2c", + "transactionIndex": "0x5", + "logIndex": "0x6", + "removed": false + } + ], + "logsBloom": "0x00000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000002000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x0f0cd3e2722e1a70fd470f9dc43b10b2fefb183357559f9017eeacc4235b0c2c", + "transactionIndex": "0x5", + "blockHash": "0x4cd1f51c57e2ccfb4ac11d34d3fe751872a0abdb6771a09a61c077b13d70894e", + "blockNumber": "0x6cf0887", + "gasUsed": "0x29eb03", + "effectiveGasPrice": "0x8607860", + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": null, + "contractAddress": "0xde9c0d5ff63e89cd6dd283ce5d36ab77041a0efd", + "gasUsedForL1": "0x40b38", + "l1BlockNumber": "0x71f5ee" + } + ], + "libraries": [ + "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x085a1Ec0d51f4541d81a442a0Df4c9E9C70D7D1e" + ], + "pending": [], + "returns": { + "proxyAddress": { + "internal_type": "address", + "value": "0xec09686F9D6C77d8b9C58bEEbd937e8EA6e29a7d" + }, + "implementationAddress": { + "internal_type": "address", + "value": "0xde9c0D5FF63E89cd6Dd283CE5D36aB77041A0eFd" + }, + "lightClientState": { + "internal_type": "struct LightClientArbitrum2.LightClientState", + "value": "(0, 0, 1234)" + } + }, + "timestamp": 1736603225, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603316.json b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603316.json new file mode 100644 index 0000000000..480210329d --- /dev/null +++ b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603316.json @@ -0,0 +1,103 @@ +{ + "transactions": [ + { + "hash": null, + "transactionType": "CREATE", + "contractName": "LightClientArbitrum2", + "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x37aafb", + "value": "0x0", + "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b72620001046000396000818161121b0152818161124401526113c30152612b726000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120f8565b610584565b005b34801561017e57600080fd5b5061019261018d366004612113565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612267565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b61017061030836600461241b565b6108dd565b34801561031957600080fd5b506102a96108fc565b34801561032e57600080fd5b50610170610919565b34801561034357600080fd5b50610170610988565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b50610398610393366004612113565b61099a565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124d4565b610acd565b34801561041e57600080fd5b5061017061042d3660046124ef565b610b56565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906125c0565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125f3565b610c7a565b34801561055b57600080fd5b5061017061056a3660046120f8565b610de0565b34801561057b57600080fd5b506009546102a9565b61058c610e1e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610e79565b6107338282610ee9565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610fe1565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b60006064803b82036108375760405162461bcd60e51b815260206004820152601f60248201527f41726253797320707265636f6d70696c65206e6f7420617661696c61626c650060448201526064015b60405180910390fd5b6108756040518060400160405280601a81526020017f617262537973507265636f6d70696c6520617661696c61626c650000000000008152506111cd565b806001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190612615565b91505090565b6108e5611210565b6108ee826112b5565b6108f882826112f6565b5050565b60006109066113b8565b50600080516020612b4683398151915290565b610921610e1e565b6008546001600160a01b03161561096d57600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b610990610e1e565b6109866000611401565b600980546000918291906109af600183612644565b815481106109bf576109bf612657565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a0057604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610ac6578460098281548110610a3057610a30612657565b6000918252602090912060029091020154600160801b90046001600160401b031610610abe5760098181548110610a6957610a69612657565b90600052602060002090600202016001015460098281548110610a8e57610a8e612657565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a14565b5050915091565b610ad5610e1e565b610e108163ffffffff161080610af457506301e133808163ffffffff16115b80610b12575060085463ffffffff600160a01b909104811690821611155b15610b30576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b9b5750825b90506000826001600160401b03166001148015610bb75750303b155b905081158015610bc5575080155b15610be35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c0d57845460ff60401b1916600160401b1785555b610c1686611472565b610c1e611483565b610c2989898961148b565b8315610c6f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610c886107de565b841180610c93575080155b80610cde5750600854600980549091600160c01b90046001600160401b0316908110610cc157610cc1612657565b60009182526020909120600290910201546001600160401b031684105b15610cfc5760405163b0b4387760e01b815260040160405180910390fd5b60008080610d0b600185612644565b90505b81610da957600854600160c01b90046001600160401b03168110610da9578660098281548110610d4057610d40612657565b60009182526020909120600290910201546001600160401b031611610d97576001915060098181548110610d7657610d76612657565b60009182526020909120600290910201546001600160401b03169250610da9565b80610da18161266d565b915050610d0e565b81610dc75760405163b0b4387760e01b815260040160405180910390fd5b85610dd28489612644565b119450505050505b92915050565b610de8610e1e565b6001600160a01b038116610e1257604051631e4fbdf760e01b81526000600482015260240161082e565b610e1b81611401565b50565b33610e507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109865760405163118cdaa760e01b815233600482015260240161082e565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108f85760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c640000000000604482015260640161082e565b6000610ef36115b8565b9050610efd611e31565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273085a1ec0d51f4541d81a442a0df4c9e9c70d7d1e9063ce537a7790610f7d9085908590889060040161288b565b602060405180830381865af4158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190612aba565b610fdb576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611057575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b031690811061102157611021612657565b600091825260209091206002909102015461104c90600160401b90046001600160401b031684612adc565b6001600160401b0316115b156110eb57600854600980549091600160c01b90046001600160401b031690811061108457611084612657565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186110c583612b03565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b610e1b816040516024016111e191906125c0565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052611be7565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061129757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661128b600080516020612b46833981519152546001600160a01b031690565b6001600160a01b031614155b156109865760405163703e46dd60e11b815260040160405180910390fd5b6112bd610e1e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611350575060408051601f3d908101601f1916820190925261134d91810190612615565b60015b61137857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161082e565b600080516020612b4683398151915281146113a957604051632a87526960e21b81526004810182905260240161082e565b6113b38383611c08565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109865760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61147a611c5e565b610e1b81611ca7565b610986611c5e565b82516001600160401b03161515806114af575060208301516001600160401b031615155b806114bc57506020820151155b806114c957506040820151155b806114d657506060820151155b806114e057508151155b806114f25750610e108163ffffffff16105b8061150657506301e133808163ffffffff16115b15611524576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6115c0611e4f565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b611c1182611caf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611c56576113b38282611d14565b6108f8611d8a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661098657604051631afcd79f60e31b815260040160405180910390fd5b610de8611c5e565b806001600160a01b03163b600003611ce557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161082e565b600080516020612b4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611d319190612b29565b600060405180830381855af49150503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b5091509150611d81858383611da9565b95945050505050565b34156109865760405163b398979f60e01b815260040160405180910390fd5b606082611dbe57611db982611e08565b611e01565b8151158015611dd557506001600160a01b0384163b155b15611dfe57604051639996b31560e01b81526001600160a01b038516600482015260240161082e565b50805b9392505050565b805115611e185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e86604051806040016040528060008152602001600081525090565b8152602001611ea8604051806040016040528060008152602001600081525090565b8152602001611eca604051806040016040528060008152602001600081525090565b8152602001611eec604051806040016040528060008152602001600081525090565b8152602001611f0e604051806040016040528060008152602001600081525090565b8152602001611f30604051806040016040528060008152602001600081525090565b8152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b8152602001612040604051806040016040528060008152602001600081525090565b8152602001612062604051806040016040528060008152602001600081525090565b8152602001612084604051806040016040528060008152602001600081525090565b81526020016120a6604051806040016040528060008152602001600081525090565b81526020016120c8604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b611e01826120dc565b60006020828403121561212557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156121655761216561212c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121935761219361212c565b604052919050565b80356001600160401b03811681146120f357600080fd5b6000606082840312156121c457600080fd5b604051606081018181106001600160401b03821117156121e6576121e661212c565b6040529050806121f58361219b565b81526122036020840161219b565b6020820152604083013560408201525092915050565b60006040828403121561222b57600080fd5b604051604081018181106001600160401b038211171561224d5761224d61212c565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561227c57600080fd5b61228685856121b2565b925061048080605f198301121561229c57600080fd5b6122a4612142565b91506122b38660608701612219565b82526122c28660a08701612219565b60208301526122d48660e08701612219565b60408301526101206122e887828801612219565b60608401526101606122fc88828901612219565b60808501526101a061231089828a01612219565b60a08601526101e06123248a828b01612219565b60c08701526102206123388b828c01612219565b60e088015261026061234c8c828d01612219565b6101008901526102a06123618d828e01612219565b878a01526123738d6102e08e01612219565b6101408a01526123878d6103208e01612219565b868a01526123998d6103608e01612219565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561242e57600080fd5b612437836120dc565b91506020808401356001600160401b038082111561245457600080fd5b818601915086601f83011261246857600080fd5b81358181111561247a5761247a61212c565b61248c601f8201601f1916850161216b565b915080825287848285010111156124a257600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120f357600080fd5b6000602082840312156124e657600080fd5b611e01826124c0565b60008060008084860361012081121561250757600080fd5b61251187876121b2565b94506080605f198201121561252557600080fd5b50604051608081018181106001600160401b03821117156125485761254861212c565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061258260e086016124c0565b915061259161010086016120dc565b905092959194509250565b60005b838110156125b757818101518382015260200161259f565b50506000910152565b60208152600082518060208401526125df81604085016020870161259c565b601f01601f19169190910160400192915050565b6000806040838503121561260657600080fd5b50508035926020909101359150565b60006020828403121561262757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dda57610dda61262e565b634e487b7160e01b600052603260045260246000fd5b60008161267c5761267c61262e565b506000190190565b8060005b6007811015610fdb578151845260209384019390910190600101612688565b6126bc82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061271f8185018380518252602090810151910152565b60a0830151915061014061273f8186018480518252602090810151910152565b60c0840151925061018061275f8187018580518252602090810151910152565b60e085015193506101c061277f8188018680518252602090810151910152565b9285015193506102009261279f8785018680518252602090810151910152565b61012086015194506102406127c08189018780518252602090810151910152565b928601519450610280926127e08885018780518252602090810151910152565b61016087015195506102c0612801818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516128be604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061290b8185018380518252602090810151910152565b60c0870151915061014061292b8186018480518252602090810151910152565b60e0880151925061018061294b8187018580518252602090810151910152565b9188015192506101c09161296b8684018580518252602090810151910152565b610120890151935061020061298c8188018680518252602090810151910152565b918901519350610240916129ac8784018680518252602090810151910152565b6101608a015194506102806129cd8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612aa4610500830185612684565b612ab26105e08301846126a7565b949350505050565b600060208284031215612acc57600080fd5b81518015158114611e0157600080fd5b6001600160401b03828116828216039080821115612afc57612afc61262e565b5092915050565b60006001600160401b03808316818103612b1f57612b1f61262e565b6001019392505050565b60008251612b3b81846020870161259c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", + "nonce": "0x20", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CREATE", + "contractName": "ERC1967Proxy", + "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "function": null, + "arguments": [ + "0xec09686F9D6C77d8b9C58bEEbd937e8EA6e29a7d", + "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" + ], + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x6a8bd", + "value": "0x0", + "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a000000000000000000000000ec09686f9d6c77d8b9c58beebd937e8ea6e29a7d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e00000000000000000000000000000000000000000000000000000000", + "nonce": "0x21", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "gas": "0x954f", + "value": "0x0", + "input": "0x013fa5fc000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", + "nonce": "0x22", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "gas": "0x95a8", + "value": "0x0", + "input": "0xf2fde38b0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be", + "nonce": "0x23", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [ + "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x085a1Ec0d51f4541d81a442a0Df4c9E9C70D7D1e" + ], + "pending": [], + "returns": { + "implementationAddress": { + "internal_type": "address", + "value": "0xec09686F9D6C77d8b9C58bEEbd937e8EA6e29a7d" + }, + "lightClientState": { + "internal_type": "struct LightClientArbitrum2.LightClientState", + "value": "(0, 0, 1234)" + }, + "proxyAddress": { + "internal_type": "address", + "value": "0x17D02a530b251d6728DCDC2D185B08d9Ac398eF0" + } + }, + "timestamp": 1736603316, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603559.json b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603559.json new file mode 100644 index 0000000000..dfcb0e43aa --- /dev/null +++ b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603559.json @@ -0,0 +1,103 @@ +{ + "transactions": [ + { + "hash": null, + "transactionType": "CREATE", + "contractName": "LightClientArbitrum2", + "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x31d178", + "value": "0x0", + "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b72620001046000396000818161121b0152818161124401526113c30152612b726000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120f8565b610584565b005b34801561017e57600080fd5b5061019261018d366004612113565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612267565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b61017061030836600461241b565b6108dd565b34801561031957600080fd5b506102a96108fc565b34801561032e57600080fd5b50610170610919565b34801561034357600080fd5b50610170610988565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b50610398610393366004612113565b61099a565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124d4565b610acd565b34801561041e57600080fd5b5061017061042d3660046124ef565b610b56565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906125c0565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125f3565b610c7a565b34801561055b57600080fd5b5061017061056a3660046120f8565b610de0565b34801561057b57600080fd5b506009546102a9565b61058c610e1e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610e79565b6107338282610ee9565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610fe1565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b60006064803b82036108375760405162461bcd60e51b815260206004820152601f60248201527f41726253797320707265636f6d70696c65206e6f7420617661696c61626c650060448201526064015b60405180910390fd5b6108756040518060400160405280601a81526020017f617262537973507265636f6d70696c6520617661696c61626c650000000000008152506111cd565b806001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190612615565b91505090565b6108e5611210565b6108ee826112b5565b6108f882826112f6565b5050565b60006109066113b8565b50600080516020612b4683398151915290565b610921610e1e565b6008546001600160a01b03161561096d57600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b610990610e1e565b6109866000611401565b600980546000918291906109af600183612644565b815481106109bf576109bf612657565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a0057604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610ac6578460098281548110610a3057610a30612657565b6000918252602090912060029091020154600160801b90046001600160401b031610610abe5760098181548110610a6957610a69612657565b90600052602060002090600202016001015460098281548110610a8e57610a8e612657565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a14565b5050915091565b610ad5610e1e565b610e108163ffffffff161080610af457506301e133808163ffffffff16115b80610b12575060085463ffffffff600160a01b909104811690821611155b15610b30576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b9b5750825b90506000826001600160401b03166001148015610bb75750303b155b905081158015610bc5575080155b15610be35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c0d57845460ff60401b1916600160401b1785555b610c1686611472565b610c1e611483565b610c2989898961148b565b8315610c6f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610c886107de565b841180610c93575080155b80610cde5750600854600980549091600160c01b90046001600160401b0316908110610cc157610cc1612657565b60009182526020909120600290910201546001600160401b031684105b15610cfc5760405163b0b4387760e01b815260040160405180910390fd5b60008080610d0b600185612644565b90505b81610da957600854600160c01b90046001600160401b03168110610da9578660098281548110610d4057610d40612657565b60009182526020909120600290910201546001600160401b031611610d97576001915060098181548110610d7657610d76612657565b60009182526020909120600290910201546001600160401b03169250610da9565b80610da18161266d565b915050610d0e565b81610dc75760405163b0b4387760e01b815260040160405180910390fd5b85610dd28489612644565b119450505050505b92915050565b610de8610e1e565b6001600160a01b038116610e1257604051631e4fbdf760e01b81526000600482015260240161082e565b610e1b81611401565b50565b33610e507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109865760405163118cdaa760e01b815233600482015260240161082e565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108f85760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c640000000000604482015260640161082e565b6000610ef36115b8565b9050610efd611e31565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273085a1ec0d51f4541d81a442a0df4c9e9c70d7d1e9063ce537a7790610f7d9085908590889060040161288b565b602060405180830381865af4158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190612aba565b610fdb576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611057575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b031690811061102157611021612657565b600091825260209091206002909102015461104c90600160401b90046001600160401b031684612adc565b6001600160401b0316115b156110eb57600854600980549091600160c01b90046001600160401b031690811061108457611084612657565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186110c583612b03565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b610e1b816040516024016111e191906125c0565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052611be7565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061129757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661128b600080516020612b46833981519152546001600160a01b031690565b6001600160a01b031614155b156109865760405163703e46dd60e11b815260040160405180910390fd5b6112bd610e1e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611350575060408051601f3d908101601f1916820190925261134d91810190612615565b60015b61137857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161082e565b600080516020612b4683398151915281146113a957604051632a87526960e21b81526004810182905260240161082e565b6113b38383611c08565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109865760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61147a611c5e565b610e1b81611ca7565b610986611c5e565b82516001600160401b03161515806114af575060208301516001600160401b031615155b806114bc57506020820151155b806114c957506040820151155b806114d657506060820151155b806114e057508151155b806114f25750610e108163ffffffff16105b8061150657506301e133808163ffffffff16115b15611524576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6115c0611e4f565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b611c1182611caf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611c56576113b38282611d14565b6108f8611d8a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661098657604051631afcd79f60e31b815260040160405180910390fd5b610de8611c5e565b806001600160a01b03163b600003611ce557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161082e565b600080516020612b4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611d319190612b29565b600060405180830381855af49150503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b5091509150611d81858383611da9565b95945050505050565b34156109865760405163b398979f60e01b815260040160405180910390fd5b606082611dbe57611db982611e08565b611e01565b8151158015611dd557506001600160a01b0384163b155b15611dfe57604051639996b31560e01b81526001600160a01b038516600482015260240161082e565b50805b9392505050565b805115611e185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e86604051806040016040528060008152602001600081525090565b8152602001611ea8604051806040016040528060008152602001600081525090565b8152602001611eca604051806040016040528060008152602001600081525090565b8152602001611eec604051806040016040528060008152602001600081525090565b8152602001611f0e604051806040016040528060008152602001600081525090565b8152602001611f30604051806040016040528060008152602001600081525090565b8152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b8152602001612040604051806040016040528060008152602001600081525090565b8152602001612062604051806040016040528060008152602001600081525090565b8152602001612084604051806040016040528060008152602001600081525090565b81526020016120a6604051806040016040528060008152602001600081525090565b81526020016120c8604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b611e01826120dc565b60006020828403121561212557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156121655761216561212c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121935761219361212c565b604052919050565b80356001600160401b03811681146120f357600080fd5b6000606082840312156121c457600080fd5b604051606081018181106001600160401b03821117156121e6576121e661212c565b6040529050806121f58361219b565b81526122036020840161219b565b6020820152604083013560408201525092915050565b60006040828403121561222b57600080fd5b604051604081018181106001600160401b038211171561224d5761224d61212c565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561227c57600080fd5b61228685856121b2565b925061048080605f198301121561229c57600080fd5b6122a4612142565b91506122b38660608701612219565b82526122c28660a08701612219565b60208301526122d48660e08701612219565b60408301526101206122e887828801612219565b60608401526101606122fc88828901612219565b60808501526101a061231089828a01612219565b60a08601526101e06123248a828b01612219565b60c08701526102206123388b828c01612219565b60e088015261026061234c8c828d01612219565b6101008901526102a06123618d828e01612219565b878a01526123738d6102e08e01612219565b6101408a01526123878d6103208e01612219565b868a01526123998d6103608e01612219565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561242e57600080fd5b612437836120dc565b91506020808401356001600160401b038082111561245457600080fd5b818601915086601f83011261246857600080fd5b81358181111561247a5761247a61212c565b61248c601f8201601f1916850161216b565b915080825287848285010111156124a257600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120f357600080fd5b6000602082840312156124e657600080fd5b611e01826124c0565b60008060008084860361012081121561250757600080fd5b61251187876121b2565b94506080605f198201121561252557600080fd5b50604051608081018181106001600160401b03821117156125485761254861212c565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061258260e086016124c0565b915061259161010086016120dc565b905092959194509250565b60005b838110156125b757818101518382015260200161259f565b50506000910152565b60208152600082518060208401526125df81604085016020870161259c565b601f01601f19169190910160400192915050565b6000806040838503121561260657600080fd5b50508035926020909101359150565b60006020828403121561262757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dda57610dda61262e565b634e487b7160e01b600052603260045260246000fd5b60008161267c5761267c61262e565b506000190190565b8060005b6007811015610fdb578151845260209384019390910190600101612688565b6126bc82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061271f8185018380518252602090810151910152565b60a0830151915061014061273f8186018480518252602090810151910152565b60c0840151925061018061275f8187018580518252602090810151910152565b60e085015193506101c061277f8188018680518252602090810151910152565b9285015193506102009261279f8785018680518252602090810151910152565b61012086015194506102406127c08189018780518252602090810151910152565b928601519450610280926127e08885018780518252602090810151910152565b61016087015195506102c0612801818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516128be604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061290b8185018380518252602090810151910152565b60c0870151915061014061292b8186018480518252602090810151910152565b60e0880151925061018061294b8187018580518252602090810151910152565b9188015192506101c09161296b8684018580518252602090810151910152565b610120890151935061020061298c8188018680518252602090810151910152565b918901519350610240916129ac8784018680518252602090810151910152565b6101608a015194506102806129cd8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612aa4610500830185612684565b612ab26105e08301846126a7565b949350505050565b600060208284031215612acc57600080fd5b81518015158114611e0157600080fd5b6001600160401b03828116828216039080821115612afc57612afc61262e565b5092915050565b60006001600160401b03808316818103612b1f57612b1f61262e565b6001019392505050565b60008251612b3b81846020870161259c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", + "nonce": "0x20", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CREATE", + "contractName": "ERC1967Proxy", + "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "function": null, + "arguments": [ + "0xec09686F9D6C77d8b9C58bEEbd937e8EA6e29a7d", + "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" + ], + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x6a8bd", + "value": "0x0", + "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a000000000000000000000000ec09686f9d6c77d8b9c58beebd937e8ea6e29a7d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e00000000000000000000000000000000000000000000000000000000", + "nonce": "0x21", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "gas": "0x6ec1", + "value": "0x0", + "input": "0x013fa5fc000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", + "nonce": "0x22", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": null, + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "gas": "0x6ec1", + "value": "0x0", + "input": "0xf2fde38b0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be", + "nonce": "0x23", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [ + "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x085a1Ec0d51f4541d81a442a0Df4c9E9C70D7D1e" + ], + "pending": [], + "returns": { + "lightClientState": { + "internal_type": "struct LightClientArbitrum2.LightClientState", + "value": "(0, 0, 1234)" + }, + "proxyAddress": { + "internal_type": "address", + "value": "0x17D02a530b251d6728DCDC2D185B08d9Ac398eF0" + }, + "implementationAddress": { + "internal_type": "address", + "value": "0xec09686F9D6C77d8b9C58bEEbd937e8EA6e29a7d" + } + }, + "timestamp": 1736603559, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603691.json b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603691.json new file mode 100644 index 0000000000..84c9d34d76 --- /dev/null +++ b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603691.json @@ -0,0 +1,263 @@ +{ + "transactions": [ + { + "hash": "0x8c2a6dd318813e579c3cc896cc83b1980e803f705ce7bddfe19dbaff03257df1", + "transactionType": "CREATE", + "contractName": "LightClientArbitrum2", + "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x31cc3a", + "value": "0x0", + "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b72620001046000396000818161121b0152818161124401526113c30152612b726000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120f8565b610584565b005b34801561017e57600080fd5b5061019261018d366004612113565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612267565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b61017061030836600461241b565b6108dd565b34801561031957600080fd5b506102a96108fc565b34801561032e57600080fd5b50610170610919565b34801561034357600080fd5b50610170610988565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b50610398610393366004612113565b61099a565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124d4565b610acd565b34801561041e57600080fd5b5061017061042d3660046124ef565b610b56565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906125c0565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125f3565b610c7a565b34801561055b57600080fd5b5061017061056a3660046120f8565b610de0565b34801561057b57600080fd5b506009546102a9565b61058c610e1e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610e79565b6107338282610ee9565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610fe1565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b60006064803b82036108375760405162461bcd60e51b815260206004820152601f60248201527f41726253797320707265636f6d70696c65206e6f7420617661696c61626c650060448201526064015b60405180910390fd5b6108756040518060400160405280601a81526020017f617262537973507265636f6d70696c6520617661696c61626c650000000000008152506111cd565b806001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190612615565b91505090565b6108e5611210565b6108ee826112b5565b6108f882826112f6565b5050565b60006109066113b8565b50600080516020612b4683398151915290565b610921610e1e565b6008546001600160a01b03161561096d57600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b610990610e1e565b6109866000611401565b600980546000918291906109af600183612644565b815481106109bf576109bf612657565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a0057604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610ac6578460098281548110610a3057610a30612657565b6000918252602090912060029091020154600160801b90046001600160401b031610610abe5760098181548110610a6957610a69612657565b90600052602060002090600202016001015460098281548110610a8e57610a8e612657565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a14565b5050915091565b610ad5610e1e565b610e108163ffffffff161080610af457506301e133808163ffffffff16115b80610b12575060085463ffffffff600160a01b909104811690821611155b15610b30576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b9b5750825b90506000826001600160401b03166001148015610bb75750303b155b905081158015610bc5575080155b15610be35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c0d57845460ff60401b1916600160401b1785555b610c1686611472565b610c1e611483565b610c2989898961148b565b8315610c6f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610c886107de565b841180610c93575080155b80610cde5750600854600980549091600160c01b90046001600160401b0316908110610cc157610cc1612657565b60009182526020909120600290910201546001600160401b031684105b15610cfc5760405163b0b4387760e01b815260040160405180910390fd5b60008080610d0b600185612644565b90505b81610da957600854600160c01b90046001600160401b03168110610da9578660098281548110610d4057610d40612657565b60009182526020909120600290910201546001600160401b031611610d97576001915060098181548110610d7657610d76612657565b60009182526020909120600290910201546001600160401b03169250610da9565b80610da18161266d565b915050610d0e565b81610dc75760405163b0b4387760e01b815260040160405180910390fd5b85610dd28489612644565b119450505050505b92915050565b610de8610e1e565b6001600160a01b038116610e1257604051631e4fbdf760e01b81526000600482015260240161082e565b610e1b81611401565b50565b33610e507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109865760405163118cdaa760e01b815233600482015260240161082e565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108f85760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c640000000000604482015260640161082e565b6000610ef36115b8565b9050610efd611e31565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273085a1ec0d51f4541d81a442a0df4c9e9c70d7d1e9063ce537a7790610f7d9085908590889060040161288b565b602060405180830381865af4158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190612aba565b610fdb576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611057575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b031690811061102157611021612657565b600091825260209091206002909102015461104c90600160401b90046001600160401b031684612adc565b6001600160401b0316115b156110eb57600854600980549091600160c01b90046001600160401b031690811061108457611084612657565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186110c583612b03565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b610e1b816040516024016111e191906125c0565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052611be7565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061129757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661128b600080516020612b46833981519152546001600160a01b031690565b6001600160a01b031614155b156109865760405163703e46dd60e11b815260040160405180910390fd5b6112bd610e1e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611350575060408051601f3d908101601f1916820190925261134d91810190612615565b60015b61137857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161082e565b600080516020612b4683398151915281146113a957604051632a87526960e21b81526004810182905260240161082e565b6113b38383611c08565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109865760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61147a611c5e565b610e1b81611ca7565b610986611c5e565b82516001600160401b03161515806114af575060208301516001600160401b031615155b806114bc57506020820151155b806114c957506040820151155b806114d657506060820151155b806114e057508151155b806114f25750610e108163ffffffff16105b8061150657506301e133808163ffffffff16115b15611524576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6115c0611e4f565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b611c1182611caf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611c56576113b38282611d14565b6108f8611d8a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661098657604051631afcd79f60e31b815260040160405180910390fd5b610de8611c5e565b806001600160a01b03163b600003611ce557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161082e565b600080516020612b4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611d319190612b29565b600060405180830381855af49150503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b5091509150611d81858383611da9565b95945050505050565b34156109865760405163b398979f60e01b815260040160405180910390fd5b606082611dbe57611db982611e08565b611e01565b8151158015611dd557506001600160a01b0384163b155b15611dfe57604051639996b31560e01b81526001600160a01b038516600482015260240161082e565b50805b9392505050565b805115611e185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e86604051806040016040528060008152602001600081525090565b8152602001611ea8604051806040016040528060008152602001600081525090565b8152602001611eca604051806040016040528060008152602001600081525090565b8152602001611eec604051806040016040528060008152602001600081525090565b8152602001611f0e604051806040016040528060008152602001600081525090565b8152602001611f30604051806040016040528060008152602001600081525090565b8152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b8152602001612040604051806040016040528060008152602001600081525090565b8152602001612062604051806040016040528060008152602001600081525090565b8152602001612084604051806040016040528060008152602001600081525090565b81526020016120a6604051806040016040528060008152602001600081525090565b81526020016120c8604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b611e01826120dc565b60006020828403121561212557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156121655761216561212c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121935761219361212c565b604052919050565b80356001600160401b03811681146120f357600080fd5b6000606082840312156121c457600080fd5b604051606081018181106001600160401b03821117156121e6576121e661212c565b6040529050806121f58361219b565b81526122036020840161219b565b6020820152604083013560408201525092915050565b60006040828403121561222b57600080fd5b604051604081018181106001600160401b038211171561224d5761224d61212c565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561227c57600080fd5b61228685856121b2565b925061048080605f198301121561229c57600080fd5b6122a4612142565b91506122b38660608701612219565b82526122c28660a08701612219565b60208301526122d48660e08701612219565b60408301526101206122e887828801612219565b60608401526101606122fc88828901612219565b60808501526101a061231089828a01612219565b60a08601526101e06123248a828b01612219565b60c08701526102206123388b828c01612219565b60e088015261026061234c8c828d01612219565b6101008901526102a06123618d828e01612219565b878a01526123738d6102e08e01612219565b6101408a01526123878d6103208e01612219565b868a01526123998d6103608e01612219565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561242e57600080fd5b612437836120dc565b91506020808401356001600160401b038082111561245457600080fd5b818601915086601f83011261246857600080fd5b81358181111561247a5761247a61212c565b61248c601f8201601f1916850161216b565b915080825287848285010111156124a257600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120f357600080fd5b6000602082840312156124e657600080fd5b611e01826124c0565b60008060008084860361012081121561250757600080fd5b61251187876121b2565b94506080605f198201121561252557600080fd5b50604051608081018181106001600160401b03821117156125485761254861212c565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061258260e086016124c0565b915061259161010086016120dc565b905092959194509250565b60005b838110156125b757818101518382015260200161259f565b50506000910152565b60208152600082518060208401526125df81604085016020870161259c565b601f01601f19169190910160400192915050565b6000806040838503121561260657600080fd5b50508035926020909101359150565b60006020828403121561262757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dda57610dda61262e565b634e487b7160e01b600052603260045260246000fd5b60008161267c5761267c61262e565b506000190190565b8060005b6007811015610fdb578151845260209384019390910190600101612688565b6126bc82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061271f8185018380518252602090810151910152565b60a0830151915061014061273f8186018480518252602090810151910152565b60c0840151925061018061275f8187018580518252602090810151910152565b60e085015193506101c061277f8188018680518252602090810151910152565b9285015193506102009261279f8785018680518252602090810151910152565b61012086015194506102406127c08189018780518252602090810151910152565b928601519450610280926127e08885018780518252602090810151910152565b61016087015195506102c0612801818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516128be604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061290b8185018380518252602090810151910152565b60c0870151915061014061292b8186018480518252602090810151910152565b60e0880151925061018061294b8187018580518252602090810151910152565b9188015192506101c09161296b8684018580518252602090810151910152565b610120890151935061020061298c8188018680518252602090810151910152565b918901519350610240916129ac8784018680518252602090810151910152565b6101608a015194506102806129cd8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612aa4610500830185612684565b612ab26105e08301846126a7565b949350505050565b600060208284031215612acc57600080fd5b81518015158114611e0157600080fd5b6001600160401b03828116828216039080821115612afc57612afc61262e565b5092915050565b60006001600160401b03808316818103612b1f57612b1f61262e565b6001019392505050565b60008251612b3b81846020870161259c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", + "nonce": "0x20", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xe018d2d6d569096b6d22c6ae6df6672e19090de59548d0e3c9fec7ccee94dad0", + "transactionType": "CREATE", + "contractName": "ERC1967Proxy", + "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "function": null, + "arguments": [ + "0xec09686F9D6C77d8b9C58bEEbd937e8EA6e29a7d", + "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" + ], + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x6a8bd", + "value": "0x0", + "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a000000000000000000000000ec09686f9d6c77d8b9c58beebd937e8ea6e29a7d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e00000000000000000000000000000000000000000000000000000000", + "nonce": "0x21", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x8b5473d6fd295b8be4841fcd4b43af2cf34cfa52ff87e9da98fd53c3ac2f9a37", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "gas": "0x6ea1", + "value": "0x0", + "input": "0x013fa5fc000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", + "nonce": "0x22", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xbba206b55480253c7d74f0f70a95890687936266a86c8304fe110b30110915b2", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "gas": "0x6ea0", + "value": "0x0", + "input": "0xf2fde38b0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be", + "nonce": "0x23", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x731cec", + "logs": [ + { + "address": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "blockHash": "0x905841fdb032244931e9779443db986fba23e6bdce3e00f8ee954079a4eea9ce", + "blockNumber": "0x6cf0c56", + "transactionHash": "0x8c2a6dd318813e579c3cc896cc83b1980e803f705ce7bddfe19dbaff03257df1", + "transactionIndex": "0x3", + "logIndex": "0x1", + "removed": false + } + ], + "logsBloom": "0x00000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x8c2a6dd318813e579c3cc896cc83b1980e803f705ce7bddfe19dbaff03257df1", + "transactionIndex": "0x3", + "blockHash": "0x905841fdb032244931e9779443db986fba23e6bdce3e00f8ee954079a4eea9ce", + "blockNumber": "0x6cf0c56", + "gasUsed": "0x25f624", + "effectiveGasPrice": "0xb6ad230", + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": null, + "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", + "gasUsedForL1": "0x1659", + "l1BlockNumber": "0x71f615" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x807a7", + "logs": [ + { + "address": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000ec09686f9d6c77d8b9c58beebd937e8ea6e29a7d" + ], + "data": "0x", + "blockHash": "0xe94889340aa5d0e3858df8ec81685884a5947874b8ca8813b1a71c47f8df34a2", + "blockNumber": "0x6cf0c59", + "transactionHash": "0xe018d2d6d569096b6d22c6ae6df6672e19090de59548d0e3c9fec7ccee94dad0", + "transactionIndex": "0x3", + "logIndex": "0x2", + "removed": false + }, + { + "address": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" + ], + "data": "0x", + "blockHash": "0xe94889340aa5d0e3858df8ec81685884a5947874b8ca8813b1a71c47f8df34a2", + "blockNumber": "0x6cf0c59", + "transactionHash": "0xe018d2d6d569096b6d22c6ae6df6672e19090de59548d0e3c9fec7ccee94dad0", + "transactionIndex": "0x3", + "logIndex": "0x3", + "removed": false + }, + { + "address": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xe94889340aa5d0e3858df8ec81685884a5947874b8ca8813b1a71c47f8df34a2", + "blockNumber": "0x6cf0c59", + "transactionHash": "0xe018d2d6d569096b6d22c6ae6df6672e19090de59548d0e3c9fec7ccee94dad0", + "transactionIndex": "0x3", + "logIndex": "0x4", + "removed": false + } + ], + "logsBloom": "0x00100000000000000100000000000000400000000000000000800000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000001000000000000000000000000000000080000020000000000000000000800000000000000000000000000000000400000000000000000000800000000000000000000000080000000000000020000000000000000000000000000000000000000000000000000000000000000000040000020004000000000000000000000000000000004000000000000000020000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0xe018d2d6d569096b6d22c6ae6df6672e19090de59548d0e3c9fec7ccee94dad0", + "transactionIndex": "0x3", + "blockHash": "0xe94889340aa5d0e3858df8ec81685884a5947874b8ca8813b1a71c47f8df34a2", + "blockNumber": "0x6cf0c59", + "gasUsed": "0x52342", + "effectiveGasPrice": "0xb735db0", + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": null, + "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "gasUsedForL1": "0x391", + "l1BlockNumber": "0x71f615" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x7363d4", + "logs": [ + { + "address": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "topics": [ + "0x8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072" + ], + "data": "0x000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", + "blockHash": "0x9de5adedf857b55887c1ba7884c4451c5fde9c547607e3a28d0fbd16d2b6248f", + "blockNumber": "0x6cf0c5c", + "transactionHash": "0x8b5473d6fd295b8be4841fcd4b43af2cf34cfa52ff87e9da98fd53c3ac2f9a37", + "transactionIndex": "0x2", + "logIndex": "0xc8", + "removed": false + } + ], + "logsBloom": "0x00100000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x8b5473d6fd295b8be4841fcd4b43af2cf34cfa52ff87e9da98fd53c3ac2f9a37", + "transactionIndex": "0x2", + "blockHash": "0x9de5adedf857b55887c1ba7884c4451c5fde9c547607e3a28d0fbd16d2b6248f", + "blockNumber": "0x6cf0c5c", + "gasUsed": "0x89ca", + "effectiveGasPrice": "0xb5e2800", + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "contractAddress": null, + "gasUsedForL1": "0x76", + "l1BlockNumber": "0x71f615" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x83b7", + "logs": [ + { + "address": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e", + "0x0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be" + ], + "data": "0x", + "blockHash": "0xcc7c8aef57009589c1570c4cd815b288e73e1052b54a07895d74a7181e83419f", + "blockNumber": "0x6cf0c60", + "transactionHash": "0xbba206b55480253c7d74f0f70a95890687936266a86c8304fe110b30110915b2", + "transactionIndex": "0x1", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x00100000000000000100000000000000000000000000000000800000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000800020000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000020000000000", + "type": "0x0", + "transactionHash": "0xbba206b55480253c7d74f0f70a95890687936266a86c8304fe110b30110915b2", + "transactionIndex": "0x1", + "blockHash": "0xcc7c8aef57009589c1570c4cd815b288e73e1052b54a07895d74a7181e83419f", + "blockNumber": "0x6cf0c60", + "gasUsed": "0x83b7", + "effectiveGasPrice": "0xb48f250", + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "contractAddress": null, + "gasUsedForL1": "0x77", + "l1BlockNumber": "0x71f616" + } + ], + "libraries": [ + "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x085a1Ec0d51f4541d81a442a0Df4c9E9C70D7D1e" + ], + "pending": [], + "returns": { + "proxyAddress": { + "internal_type": "address", + "value": "0x17D02a530b251d6728DCDC2D185B08d9Ac398eF0" + }, + "lightClientState": { + "internal_type": "struct LightClientArbitrum2.LightClientState", + "value": "(0, 0, 1234)" + }, + "implementationAddress": { + "internal_type": "address", + "value": "0xec09686F9D6C77d8b9C58bEEbd937e8EA6e29a7d" + } + }, + "timestamp": 1736603691, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-latest.json b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-latest.json new file mode 100644 index 0000000000..84c9d34d76 --- /dev/null +++ b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-latest.json @@ -0,0 +1,263 @@ +{ + "transactions": [ + { + "hash": "0x8c2a6dd318813e579c3cc896cc83b1980e803f705ce7bddfe19dbaff03257df1", + "transactionType": "CREATE", + "contractName": "LightClientArbitrum2", + "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x31cc3a", + "value": "0x0", + "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b72620001046000396000818161121b0152818161124401526113c30152612b726000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120f8565b610584565b005b34801561017e57600080fd5b5061019261018d366004612113565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612267565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b61017061030836600461241b565b6108dd565b34801561031957600080fd5b506102a96108fc565b34801561032e57600080fd5b50610170610919565b34801561034357600080fd5b50610170610988565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b50610398610393366004612113565b61099a565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124d4565b610acd565b34801561041e57600080fd5b5061017061042d3660046124ef565b610b56565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906125c0565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125f3565b610c7a565b34801561055b57600080fd5b5061017061056a3660046120f8565b610de0565b34801561057b57600080fd5b506009546102a9565b61058c610e1e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610e79565b6107338282610ee9565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610fe1565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b60006064803b82036108375760405162461bcd60e51b815260206004820152601f60248201527f41726253797320707265636f6d70696c65206e6f7420617661696c61626c650060448201526064015b60405180910390fd5b6108756040518060400160405280601a81526020017f617262537973507265636f6d70696c6520617661696c61626c650000000000008152506111cd565b806001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190612615565b91505090565b6108e5611210565b6108ee826112b5565b6108f882826112f6565b5050565b60006109066113b8565b50600080516020612b4683398151915290565b610921610e1e565b6008546001600160a01b03161561096d57600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b610990610e1e565b6109866000611401565b600980546000918291906109af600183612644565b815481106109bf576109bf612657565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a0057604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610ac6578460098281548110610a3057610a30612657565b6000918252602090912060029091020154600160801b90046001600160401b031610610abe5760098181548110610a6957610a69612657565b90600052602060002090600202016001015460098281548110610a8e57610a8e612657565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a14565b5050915091565b610ad5610e1e565b610e108163ffffffff161080610af457506301e133808163ffffffff16115b80610b12575060085463ffffffff600160a01b909104811690821611155b15610b30576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b9b5750825b90506000826001600160401b03166001148015610bb75750303b155b905081158015610bc5575080155b15610be35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c0d57845460ff60401b1916600160401b1785555b610c1686611472565b610c1e611483565b610c2989898961148b565b8315610c6f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610c886107de565b841180610c93575080155b80610cde5750600854600980549091600160c01b90046001600160401b0316908110610cc157610cc1612657565b60009182526020909120600290910201546001600160401b031684105b15610cfc5760405163b0b4387760e01b815260040160405180910390fd5b60008080610d0b600185612644565b90505b81610da957600854600160c01b90046001600160401b03168110610da9578660098281548110610d4057610d40612657565b60009182526020909120600290910201546001600160401b031611610d97576001915060098181548110610d7657610d76612657565b60009182526020909120600290910201546001600160401b03169250610da9565b80610da18161266d565b915050610d0e565b81610dc75760405163b0b4387760e01b815260040160405180910390fd5b85610dd28489612644565b119450505050505b92915050565b610de8610e1e565b6001600160a01b038116610e1257604051631e4fbdf760e01b81526000600482015260240161082e565b610e1b81611401565b50565b33610e507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109865760405163118cdaa760e01b815233600482015260240161082e565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108f85760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c640000000000604482015260640161082e565b6000610ef36115b8565b9050610efd611e31565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273085a1ec0d51f4541d81a442a0df4c9e9c70d7d1e9063ce537a7790610f7d9085908590889060040161288b565b602060405180830381865af4158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190612aba565b610fdb576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611057575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b031690811061102157611021612657565b600091825260209091206002909102015461104c90600160401b90046001600160401b031684612adc565b6001600160401b0316115b156110eb57600854600980549091600160c01b90046001600160401b031690811061108457611084612657565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186110c583612b03565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b610e1b816040516024016111e191906125c0565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052611be7565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061129757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661128b600080516020612b46833981519152546001600160a01b031690565b6001600160a01b031614155b156109865760405163703e46dd60e11b815260040160405180910390fd5b6112bd610e1e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611350575060408051601f3d908101601f1916820190925261134d91810190612615565b60015b61137857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161082e565b600080516020612b4683398151915281146113a957604051632a87526960e21b81526004810182905260240161082e565b6113b38383611c08565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109865760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61147a611c5e565b610e1b81611ca7565b610986611c5e565b82516001600160401b03161515806114af575060208301516001600160401b031615155b806114bc57506020820151155b806114c957506040820151155b806114d657506060820151155b806114e057508151155b806114f25750610e108163ffffffff16105b8061150657506301e133808163ffffffff16115b15611524576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6115c0611e4f565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b611c1182611caf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611c56576113b38282611d14565b6108f8611d8a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661098657604051631afcd79f60e31b815260040160405180910390fd5b610de8611c5e565b806001600160a01b03163b600003611ce557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161082e565b600080516020612b4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611d319190612b29565b600060405180830381855af49150503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b5091509150611d81858383611da9565b95945050505050565b34156109865760405163b398979f60e01b815260040160405180910390fd5b606082611dbe57611db982611e08565b611e01565b8151158015611dd557506001600160a01b0384163b155b15611dfe57604051639996b31560e01b81526001600160a01b038516600482015260240161082e565b50805b9392505050565b805115611e185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e86604051806040016040528060008152602001600081525090565b8152602001611ea8604051806040016040528060008152602001600081525090565b8152602001611eca604051806040016040528060008152602001600081525090565b8152602001611eec604051806040016040528060008152602001600081525090565b8152602001611f0e604051806040016040528060008152602001600081525090565b8152602001611f30604051806040016040528060008152602001600081525090565b8152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b8152602001612040604051806040016040528060008152602001600081525090565b8152602001612062604051806040016040528060008152602001600081525090565b8152602001612084604051806040016040528060008152602001600081525090565b81526020016120a6604051806040016040528060008152602001600081525090565b81526020016120c8604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b611e01826120dc565b60006020828403121561212557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156121655761216561212c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121935761219361212c565b604052919050565b80356001600160401b03811681146120f357600080fd5b6000606082840312156121c457600080fd5b604051606081018181106001600160401b03821117156121e6576121e661212c565b6040529050806121f58361219b565b81526122036020840161219b565b6020820152604083013560408201525092915050565b60006040828403121561222b57600080fd5b604051604081018181106001600160401b038211171561224d5761224d61212c565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561227c57600080fd5b61228685856121b2565b925061048080605f198301121561229c57600080fd5b6122a4612142565b91506122b38660608701612219565b82526122c28660a08701612219565b60208301526122d48660e08701612219565b60408301526101206122e887828801612219565b60608401526101606122fc88828901612219565b60808501526101a061231089828a01612219565b60a08601526101e06123248a828b01612219565b60c08701526102206123388b828c01612219565b60e088015261026061234c8c828d01612219565b6101008901526102a06123618d828e01612219565b878a01526123738d6102e08e01612219565b6101408a01526123878d6103208e01612219565b868a01526123998d6103608e01612219565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561242e57600080fd5b612437836120dc565b91506020808401356001600160401b038082111561245457600080fd5b818601915086601f83011261246857600080fd5b81358181111561247a5761247a61212c565b61248c601f8201601f1916850161216b565b915080825287848285010111156124a257600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120f357600080fd5b6000602082840312156124e657600080fd5b611e01826124c0565b60008060008084860361012081121561250757600080fd5b61251187876121b2565b94506080605f198201121561252557600080fd5b50604051608081018181106001600160401b03821117156125485761254861212c565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061258260e086016124c0565b915061259161010086016120dc565b905092959194509250565b60005b838110156125b757818101518382015260200161259f565b50506000910152565b60208152600082518060208401526125df81604085016020870161259c565b601f01601f19169190910160400192915050565b6000806040838503121561260657600080fd5b50508035926020909101359150565b60006020828403121561262757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dda57610dda61262e565b634e487b7160e01b600052603260045260246000fd5b60008161267c5761267c61262e565b506000190190565b8060005b6007811015610fdb578151845260209384019390910190600101612688565b6126bc82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061271f8185018380518252602090810151910152565b60a0830151915061014061273f8186018480518252602090810151910152565b60c0840151925061018061275f8187018580518252602090810151910152565b60e085015193506101c061277f8188018680518252602090810151910152565b9285015193506102009261279f8785018680518252602090810151910152565b61012086015194506102406127c08189018780518252602090810151910152565b928601519450610280926127e08885018780518252602090810151910152565b61016087015195506102c0612801818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516128be604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061290b8185018380518252602090810151910152565b60c0870151915061014061292b8186018480518252602090810151910152565b60e0880151925061018061294b8187018580518252602090810151910152565b9188015192506101c09161296b8684018580518252602090810151910152565b610120890151935061020061298c8188018680518252602090810151910152565b918901519350610240916129ac8784018680518252602090810151910152565b6101608a015194506102806129cd8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612aa4610500830185612684565b612ab26105e08301846126a7565b949350505050565b600060208284031215612acc57600080fd5b81518015158114611e0157600080fd5b6001600160401b03828116828216039080821115612afc57612afc61262e565b5092915050565b60006001600160401b03808316818103612b1f57612b1f61262e565b6001019392505050565b60008251612b3b81846020870161259c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", + "nonce": "0x20", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xe018d2d6d569096b6d22c6ae6df6672e19090de59548d0e3c9fec7ccee94dad0", + "transactionType": "CREATE", + "contractName": "ERC1967Proxy", + "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "function": null, + "arguments": [ + "0xec09686F9D6C77d8b9C58bEEbd937e8EA6e29a7d", + "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" + ], + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x6a8bd", + "value": "0x0", + "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a000000000000000000000000ec09686f9d6c77d8b9c58beebd937e8ea6e29a7d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e00000000000000000000000000000000000000000000000000000000", + "nonce": "0x21", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x8b5473d6fd295b8be4841fcd4b43af2cf34cfa52ff87e9da98fd53c3ac2f9a37", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "gas": "0x6ea1", + "value": "0x0", + "input": "0x013fa5fc000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", + "nonce": "0x22", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xbba206b55480253c7d74f0f70a95890687936266a86c8304fe110b30110915b2", + "transactionType": "CALL", + "contractName": "ERC1967Proxy", + "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "gas": "0x6ea0", + "value": "0x0", + "input": "0xf2fde38b0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be", + "nonce": "0x23", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x731cec", + "logs": [ + { + "address": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", + "blockHash": "0x905841fdb032244931e9779443db986fba23e6bdce3e00f8ee954079a4eea9ce", + "blockNumber": "0x6cf0c56", + "transactionHash": "0x8c2a6dd318813e579c3cc896cc83b1980e803f705ce7bddfe19dbaff03257df1", + "transactionIndex": "0x3", + "logIndex": "0x1", + "removed": false + } + ], + "logsBloom": "0x00000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x8c2a6dd318813e579c3cc896cc83b1980e803f705ce7bddfe19dbaff03257df1", + "transactionIndex": "0x3", + "blockHash": "0x905841fdb032244931e9779443db986fba23e6bdce3e00f8ee954079a4eea9ce", + "blockNumber": "0x6cf0c56", + "gasUsed": "0x25f624", + "effectiveGasPrice": "0xb6ad230", + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": null, + "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", + "gasUsedForL1": "0x1659", + "l1BlockNumber": "0x71f615" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x807a7", + "logs": [ + { + "address": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "topics": [ + "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", + "0x000000000000000000000000ec09686f9d6c77d8b9c58beebd937e8ea6e29a7d" + ], + "data": "0x", + "blockHash": "0xe94889340aa5d0e3858df8ec81685884a5947874b8ca8813b1a71c47f8df34a2", + "blockNumber": "0x6cf0c59", + "transactionHash": "0xe018d2d6d569096b6d22c6ae6df6672e19090de59548d0e3c9fec7ccee94dad0", + "transactionIndex": "0x3", + "logIndex": "0x2", + "removed": false + }, + { + "address": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x0000000000000000000000000000000000000000000000000000000000000000", + "0x000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" + ], + "data": "0x", + "blockHash": "0xe94889340aa5d0e3858df8ec81685884a5947874b8ca8813b1a71c47f8df34a2", + "blockNumber": "0x6cf0c59", + "transactionHash": "0xe018d2d6d569096b6d22c6ae6df6672e19090de59548d0e3c9fec7ccee94dad0", + "transactionIndex": "0x3", + "logIndex": "0x3", + "removed": false + }, + { + "address": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "topics": [ + "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000001", + "blockHash": "0xe94889340aa5d0e3858df8ec81685884a5947874b8ca8813b1a71c47f8df34a2", + "blockNumber": "0x6cf0c59", + "transactionHash": "0xe018d2d6d569096b6d22c6ae6df6672e19090de59548d0e3c9fec7ccee94dad0", + "transactionIndex": "0x3", + "logIndex": "0x4", + "removed": false + } + ], + "logsBloom": "0x00100000000000000100000000000000400000000000000000800000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000001000000000000000000000000000000080000020000000000000000000800000000000000000000000000000000400000000000000000000800000000000000000000000080000000000000020000000000000000000000000000000000000000000000000000000000000000000040000020004000000000000000000000000000000004000000000000000020000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0xe018d2d6d569096b6d22c6ae6df6672e19090de59548d0e3c9fec7ccee94dad0", + "transactionIndex": "0x3", + "blockHash": "0xe94889340aa5d0e3858df8ec81685884a5947874b8ca8813b1a71c47f8df34a2", + "blockNumber": "0x6cf0c59", + "gasUsed": "0x52342", + "effectiveGasPrice": "0xb735db0", + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": null, + "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "gasUsedForL1": "0x391", + "l1BlockNumber": "0x71f615" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x7363d4", + "logs": [ + { + "address": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "topics": [ + "0x8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072" + ], + "data": "0x000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", + "blockHash": "0x9de5adedf857b55887c1ba7884c4451c5fde9c547607e3a28d0fbd16d2b6248f", + "blockNumber": "0x6cf0c5c", + "transactionHash": "0x8b5473d6fd295b8be4841fcd4b43af2cf34cfa52ff87e9da98fd53c3ac2f9a37", + "transactionIndex": "0x2", + "logIndex": "0xc8", + "removed": false + } + ], + "logsBloom": "0x00100000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x8b5473d6fd295b8be4841fcd4b43af2cf34cfa52ff87e9da98fd53c3ac2f9a37", + "transactionIndex": "0x2", + "blockHash": "0x9de5adedf857b55887c1ba7884c4451c5fde9c547607e3a28d0fbd16d2b6248f", + "blockNumber": "0x6cf0c5c", + "gasUsed": "0x89ca", + "effectiveGasPrice": "0xb5e2800", + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "contractAddress": null, + "gasUsedForL1": "0x76", + "l1BlockNumber": "0x71f615" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x83b7", + "logs": [ + { + "address": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "topics": [ + "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "0x000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e", + "0x0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be" + ], + "data": "0x", + "blockHash": "0xcc7c8aef57009589c1570c4cd815b288e73e1052b54a07895d74a7181e83419f", + "blockNumber": "0x6cf0c60", + "transactionHash": "0xbba206b55480253c7d74f0f70a95890687936266a86c8304fe110b30110915b2", + "transactionIndex": "0x1", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x00100000000000000100000000000000000000000000000000800000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000800020000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000020000000000", + "type": "0x0", + "transactionHash": "0xbba206b55480253c7d74f0f70a95890687936266a86c8304fe110b30110915b2", + "transactionIndex": "0x1", + "blockHash": "0xcc7c8aef57009589c1570c4cd815b288e73e1052b54a07895d74a7181e83419f", + "blockNumber": "0x6cf0c60", + "gasUsed": "0x83b7", + "effectiveGasPrice": "0xb48f250", + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", + "contractAddress": null, + "gasUsedForL1": "0x77", + "l1BlockNumber": "0x71f616" + } + ], + "libraries": [ + "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x085a1Ec0d51f4541d81a442a0Df4c9E9C70D7D1e" + ], + "pending": [], + "returns": { + "proxyAddress": { + "internal_type": "address", + "value": "0x17D02a530b251d6728DCDC2D185B08d9Ac398eF0" + }, + "lightClientState": { + "internal_type": "struct LightClientArbitrum2.LightClientState", + "value": "(0, 0, 1234)" + }, + "implementationAddress": { + "internal_type": "address", + "value": "0xec09686F9D6C77d8b9C58bEEbd937e8EA6e29a7d" + } + }, + "timestamp": 1736603691, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544341.json b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544341.json new file mode 100644 index 0000000000..3552e50469 --- /dev/null +++ b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544341.json @@ -0,0 +1,34 @@ +{ + "transactions": [ + { + "hash": null, + "transactionType": "CREATE", + "contractName": "PlonkVerifier", + "contractAddress": "0x85fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb", + "function": null, + "arguments": null, + "transaction": { + "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "gas": "0x27e2e0", + "value": "0x0", + "input": "0x61231761003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063ce537a771461003a575b600080fd5b61004d610048366004612099565b610061565b604051901515815260200160405180910390f35b600061006c826100d4565b61007d8360005b602002015161020f565b610088836001610073565b610093836002610073565b61009e836003610073565b6100a9836004610073565b6100b4836005610073565b6100bf836006610073565b6100ca848484610276565b90505b9392505050565b80516100df90610475565b6100ec8160200151610475565b6100f98160400151610475565b6101068160600151610475565b6101138160800151610475565b6101208160a00151610475565b61012d8160c00151610475565b61013a8160e00151610475565b610148816101000151610475565b610156816101200151610475565b610164816101400151610475565b610172816101600151610475565b610180816101800151610475565b61018e816101a0015161020f565b61019c816101c0015161020f565b6101aa816101e0015161020f565b6101b881610200015161020f565b6101c681610220015161020f565b6101d481610240015161020f565b6101e281610260015161020f565b6101f081610280015161020f565b6101fe816102a0015161020f565b61020c816102c0015161020f565b50565b6000805160206122eb8339815191528110806102725760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c64000000000060448201526064015b60405180910390fd5b5050565b6000836020015160071461029d576040516320fa9d8960e11b815260040160405180910390fd5b60006102aa858585610524565b905060006102bb8660000151610a90565b905060006102ce828460a0015188610e6e565b90506102ed604051806040016040528060008152602001600081525090565b604080518082019091526000808252602082015261032287610160015161031d8961018001518860e00151610ece565b610f72565b91506000806103338b88878c611019565b915091506103448161031d84611259565b925061035d8361031d8b61016001518a60a00151610ece565b60a08801516040880151602001519194506000805160206122eb833981519152918290820990508160e08a0151820990506103a18561031d8d610180015184610ece565b9450600060405180608001604052807f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b081526020017f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c181526020017f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e5581526020017f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe48152509050610463878261045689611259565b61045e6112f8565b6113c9565b9e9d5050505050505050505050505050565b805160208201516000917f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd479115901516156104af57505050565b82516020840151826003848585860985090883828309148382108484101616935050508161051f5760405162461bcd60e51b815260206004820152601760248201527f426e3235343a20696e76616c696420473120706f696e740000000000000000006044820152606401610269565b505050565b61056c60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006000805160206122eb8339815191529050604051602081016000815260fe60e01b8152865160c01b6004820152602087015160c01b600c82015261028087015160208201526102a08701516040820152600160608201527f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a60808201527f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02560a08201527f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a60c08201527f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e88160e082015260e087015180516101008301526020810151610120830152506101008701518051610140830152602081015161016083015250610120870151805161018083015260208101516101a08301525061014087015180516101c083015260208101516101e083015250610160870151805161020083015260208101516102208301525061018087015180516102408301526020810151610260830152506101e0870151805161028083015260208101516102a08301525061020087015180516102c083015260208101516102e083015250610220870151805161030083015260208101516103208301525061024087015180516103408301526020810151610360830152506101a0870151805161038083015260208101516103a0830152506101c087015180516103c083015260208101516103e0830152506102608701518051610400830152602081015161042083015250604087015180516104408301526020810151610460830152506060870151805161048083015260208101516104a083015250608087015180516104c083015260208101516104e08301525060a0870151805161050083015260208101516105208301525060c08701518051610540830152602081015161056083015250855161058082015260208601516105a082015260408601516105c082015260608601516105e0820152608086015161060082015260a086015161062082015260c086015161064082015284518051610660830152602081015161068083015250602085015180516106a083015260208101516106c083015250604085015180516106e08301526020810151610700830152506060850151805161072083015260208101516107408301525060808501518051610760830152602081015161078083015250600082526107c08220825282825106606085015260208220825282825106608085015260a085015180518252602081015160208301525060608220808352838106855283818209848282099150806020870152508060408601525060c085015180518252602081015160208301525060e085015180516040830152602081015160608301525061010085015180516080830152602081015160a083015250610120850151805160c0830152602081015160e0830152506101408501518051610100830152602081015161012083015250610160822082528282510660a08501526101a085015181526101c085015160208201526101e085015160408201526102008501516060820152610220850151608082015261024085015160a082015261026085015160c082015261028085015160e08201526102a08501516101008201526102c0850151610120820152610160822082528282510660c08501526101608501518051825260208101516020830152506101808501518051604083015260208101516060830152505060a0812082810660e08501525050509392505050565b610a98611d69565b816201000003610bd7576040518060600160405280601081526020017f30641e0e92bebef818268d663bcad6dbcfd6c0149170f6d7d350b1b1fa6c100181526020016040518060e00160405280600181526020017eeeb2cb5981ed45649abebde081dcff16c8601de4347e7dd1628ba2daac43b781526020017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb81526020017f086812a00ac43ea801669c640171203c41a496671bfbc065ac8db24d52cf31e581526020017f2d965651cdd9e4811f4e51b80ddca8a8b4a93ee17420aae6adaa01c2617c6e8581526020017f12597a56c2e438620b9041b98992ae0d4e705b780057bf7766a2767cece16e1d81526020017f02d94117cd17bcf1290fd67c01155dd40807857dff4a5a0b4dc67befa8aa34fd8152508152509050919050565b816210000003610d17576040518060600160405280601481526020017f30644b6c9c4a72169e4daa317d25f04512ae15c53b34e8f5acd8e155d0a6c10181526020016040518060e00160405280600181526020017f26125da10a0ed06327508aba06d1e303ac616632dbed349f53422da95333785781526020017f2260e724844bca5251829353968e4915305258418357473a5c1d597f613f6cbd81526020017f2087ea2cd664278608fb0ebdb820907f598502c81b6690c185e2bf15cb935f4281526020017f19ddbcaf3a8d46c15c0176fbb5b95e4dc57088ff13f4d1bd84c6bfa57dcdc0e081526020017f05a2c85cfc591789605cae818e37dd4161eef9aa666bec6fe4288d09e6d2341881526020017f11f70e5363258ff4f0d716a653e1dc41f1c64484d7f4b6e219d6377614a3905c8152508152509050919050565b81602003610e55576040518060600160405280600581526020017f2ee12bff4a2813286a8dc388cd754d9a3ef2490635eba50cb9c2e5e75080000181526020016040518060e00160405280600181526020017f09c532c6306b93d29678200d47c0b2a99c18d51b838eeb1d3eed4c533bb512d081526020017f21082ca216cbbf4e1c6e4f4594dd508c996dfbe1174efb98b11509c6e306460b81526020017f1277ae6415f0ef18f2ba5fb162c39eb7311f386e2d26d64401f4a25da77c253b81526020017f2b337de1c8c14f22ec9b9e2f96afef3652627366f8170a0a948dad4ac1bd5e8081526020017f2fbd4dd2976be55d1a163aa9820fb88dfac5ddce77e1872e90632027327a5ebe81526020017f107aab49e65a67f9da9cd2abf78be38bd9dc1d5db39f81de36bcfa5b4b0390438152508152509050919050565b60405163e2ef09e560e01b815260040160405180910390fd5b610e9260405180606001604052806000815260200160008152602001600081525090565b610e9c84846114ad565b808252610eac9085908590611501565b60208201528051610ec290859084908690611575565b60408201529392505050565b6040805180820190915260008082526020820152610eea611d8f565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa90508080610f1c57600080fd5b5080610f6a5760405162461bcd60e51b815260206004820152601960248201527f426e3235343a207363616c6172206d756c206661696c656421000000000000006044820152606401610269565b505092915050565b6040805180820190915260008082526020820152610f8e611dad565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa90508080610fcb57600080fd5b5080610f6a5760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a2067726f7570206164646974696f6e206661696c6564210000006044820152606401610269565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600061104f878787876116cb565b90506000805160206122eb833981519152600061106d888789611b9b565b90506110798183612291565b60c08901516101a0880151919250908190849081908309840892506110a68561031d8a6000015184610ece565b955083828209905083846101c08a01518309840892506110ce8661031d8a6020015184610ece565b955083828209905083846101e08a01518309840892506110f68661031d8a6040015184610ece565b955083828209905083846102008a015183098408925061111e8661031d8a6060015184610ece565b955083828209905083846102208a01518309840892506111468661031d8a6080015184610ece565b955083828209905083846102408a015183098408925061116e8661031d8d6040015184610ece565b955083828209905083846102608a01518309840892506111968661031d8d6060015184610ece565b955083828209905083846102808a01518309840892506111be8661031d8d6080015184610ece565b955083828209905083846102a08a01518309840892506111e68661031d8d60a0015184610ece565b955060008a60e00151905084856102c08b01518309850893506112118761031d8b60a0015184610ece565b9650611248611242604080518082018252600080825260209182015281518083019092526001825260029082015290565b85610ece565b975050505050505094509492505050565b6040805180820190915260008082526020820152815160208301511590151615611281575090565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516112c691906122c8565b6112f0907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47612291565b905292915050565b6113236040518060800160405280600081526020016000815260200160008152602001600081525090565b60405180608001604052807f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed81526020017f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c281526020017f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa81526020017f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b815250905090565b60008060006040518751815260208801516020820152602087015160408201528651606082015260608701516080820152604087015160a0820152855160c0820152602086015160e08201526020850151610100820152845161012082015260608501516101408201526040850151610160820152602060006101808360085afa91505060005191508061149f5760405162461bcd60e51b815260206004820152601c60248201527f426e3235343a2050616972696e6720636865636b206661696c656421000000006044820152606401610269565b50151590505b949350505050565b81516000906000805160206122eb833981519152908380156114f15784935060005b828110156114e5578385860994506001016114cf565b506001840393506114f8565b6001830393505b50505092915050565b600082600103611513575060016100cd565b81600003611523575060006100cd565b60208401516000805160206122eb833981519152906000908281860990508580156115535760018703925061155a565b6001840392505b5061156482611c8b565b915082828209979650505050505050565b60006000805160206122eb8339815191528282036115f257600160005b60078110156115e6578186036115c3578681600781106115b4576115b461227b565b602002015193505050506114a5565b82806115d1576115d16122b2565b60408901516020015183099150600101611592565b506000925050506114a5565b6115fa611dcb565b6040870151600160c0838101828152920190805b600781101561163b5760208403935085868a85518903088309808552601f1990930192915060010161160e565b50505050600080600090506001838960408c015160005b6007811015611692578882518a85518c88518a0909098981880896505088898d84518c030886099450602093840193928301929190910190600101611652565b505050508092505060006116a583611c8b565b905060208a015185818909965050848187099550848287099a9950505050505050505050565b604080518082019091526000808252602082015260008060008060006000805160206122eb833981519152905060808901518160208a015160208c0151099550895194508160a08b015160608c0151099350816101a089015185089250818184089250818584099450817f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a85099250816101c089015184089250818184089250818584099450817f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02585099250816101e089015184089250818184089250818584099450817f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a850992508161020089015184089250818184089250818584099450817f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e8818509925081610220890151840892508181840892505080848309935080848608945061183d8760a0015186610ece565b9550885160608a015160808b0151838284099750836102c08b015189099750836102408b015183099550836101a08b015187089550838187089550838689099750836102608b015183099550836101c08b015187089550838187089550838689099750836102808b015183099550836101e08b015187089550838187089550838689099750836102a08b015183099550836102008b0151870895508381870895505050508083860994506119048661031d8c60c0015188856118ff9190612291565b610ece565b955061191d8661031d8c60e001518a6101a00151610ece565b95506119378661031d8c61010001518a6101c00151610ece565b95506119518661031d8c61012001518a6101e00151610ece565b955061196b8661031d8c61014001518a6102000151610ece565b9550806101c08801516101a08901510992506119908661031d8c610160015186610ece565b9550806102008801516101e08901510992506119b58661031d8c610180015186610ece565b95506101a087015192508083840991508082830991508082840992506119e48661031d8c6101e0015186610ece565b95506101c08701519250808384099150808283099150808284099250611a138661031d8c610200015186610ece565b95506101e08701519250808384099150808283099150808284099250611a428661031d8c610220015186610ece565b95506102008701519250808384099150808283099150808284099250611a718661031d8c610240015186610ece565b9550611a8e8661031d8c6101a001516118ff8b6102200151611d31565b9550611a9f868b6101c00151610f72565b9550806101c08801516101a0890151099250806101e08801518409925080610200880151840992508061022088015184099250611ae58661031d8c610260015186610ece565b9550611af48860000151611d31565b9450611b088661031d8960c0015188610ece565b955080600189510860a08a0151909350819080099150808284099250808386099450611b3c8661031d8960e0015188610ece565b9550808386099450611b578661031d89610100015188610ece565b9550808386099450611b728661031d89610120015188610ece565b9550808386099450611b8d8661031d89610140015188610ece565b9a9950505050505050505050565b6000806000805160206122eb8339815191529050600083602001519050600084604001519050600060019050606088015160808901516101a08901516102408a01518788898387098a868608088609945050506101c08901516102608a01518788898387098a868608088609945050506101e08901516102808a01518788898387098a868608088609945050506102008901516102a08a01518788898387098a8686080886099450505061022089015191506102c0890151868782898587080985099350505050875160208901518586868309870385089650508485838309860387089998505050505050505050565b60008060006000805160206122eb833981519152905060405160208152602080820152602060408201528460608201526002820360808201528160a08201526020600060c08360055afa925050600051925081611d2a5760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a20706f7720707265636f6d70696c65206661696c6564210000006044820152606401610269565b5050919050565b6000611d4b6000805160206122eb833981519152836122c8565b611d63906000805160206122eb833981519152612291565b92915050565b60405180606001604052806000815260200160008152602001611d8a611dcb565b905290565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b6040516102e0810167ffffffffffffffff81118282101715611e2357611e23611de9565b60405290565b6040516102c0810167ffffffffffffffff81118282101715611e2357611e23611de9565b600060408284031215611e5f57600080fd5b6040516040810181811067ffffffffffffffff82111715611e8257611e82611de9565b604052823581526020928301359281019290925250919050565b600082601f830112611ead57600080fd5b60405160e0810181811067ffffffffffffffff82111715611ed057611ed0611de9565b6040528060e0840185811115611ee557600080fd5b845b81811015611eff578035835260209283019201611ee7565b509195945050505050565b60006104808284031215611f1d57600080fd5b611f25611dff565b9050611f318383611e4d565b8152611f408360408401611e4d565b6020820152611f528360808401611e4d565b6040820152611f648360c08401611e4d565b6060820152610100611f7884828501611e4d565b6080830152610140611f8c85828601611e4d565b60a0840152610180611fa086828701611e4d565b60c08501526101c0611fb487828801611e4d565b60e0860152610200611fc888828901611e4d565b858701526102409450611fdd88868901611e4d565b610120870152610280611ff289828a01611e4d565b858801526102c0945061200789868a01611e4d565b61016088015261201b896103008a01611e4d565b848801526103408801356101a0880152610360880135838801526103808801356101e08801526103a0880135828801526103c08801356102208801526103e08801358688015261040088013561026088015261042088013581880152505050506104408401356102a084015261046084013581840152505092915050565b6000806000838503610a608112156120b057600080fd5b610500808212156120c057600080fd5b6120c8611e29565b915085358252602086013560208301526120e58760408801611e4d565b60408301526120f78760808801611e4d565b60608301526121098760c08801611e4d565b608083015261010061211d88828901611e4d565b60a084015261014061213189828a01611e4d565b60c08501526101806121458a828b01611e4d565b60e08601526101c06121598b828c01611e4d565b84870152610200935061216e8b858c01611e4d565b6101208701526102406121838c828d01611e4d565b8488015261028093506121988c858d01611e4d565b6101608801526121ac8c6102c08d01611e4d565b838801526121be8c6103008d01611e4d565b6101a08801526121d28c6103408d01611e4d565b828801526121e48c6103808d01611e4d565b6101e08801526121f88c6103c08d01611e4d565b8588015261220a8c6104008d01611e4d565b61022088015261221e8c6104408d01611e4d565b81880152505050612233896104808a01611e4d565b6102608501526104c08801358185015250506104e08601356102a083015281945061226087828801611e9c565b93505050612272856105e08601611f0a565b90509250925092565b634e487b7160e01b600052603260045260246000fd5b81810381811115611d6357634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6000826122e557634e487b7160e01b600052601260045260246000fd5b50069056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a164736f6c6343000817000a", + "nonce": "0x791", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [], + "pending": [], + "returns": { + "contractAddress": { + "internal_type": "address", + "value": "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB" + } + }, + "timestamp": 1736544341, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544438.json b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544438.json new file mode 100644 index 0000000000..da21e524c8 --- /dev/null +++ b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544438.json @@ -0,0 +1,34 @@ +{ + "transactions": [ + { + "hash": null, + "transactionType": "CREATE", + "contractName": "PlonkVerifier", + "contractAddress": "0x85fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb", + "function": null, + "arguments": null, + "transaction": { + "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "gas": "0x27e2e0", + "value": "0x0", + "input": "0x61231761003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063ce537a771461003a575b600080fd5b61004d610048366004612099565b610061565b604051901515815260200160405180910390f35b600061006c826100d4565b61007d8360005b602002015161020f565b610088836001610073565b610093836002610073565b61009e836003610073565b6100a9836004610073565b6100b4836005610073565b6100bf836006610073565b6100ca848484610276565b90505b9392505050565b80516100df90610475565b6100ec8160200151610475565b6100f98160400151610475565b6101068160600151610475565b6101138160800151610475565b6101208160a00151610475565b61012d8160c00151610475565b61013a8160e00151610475565b610148816101000151610475565b610156816101200151610475565b610164816101400151610475565b610172816101600151610475565b610180816101800151610475565b61018e816101a0015161020f565b61019c816101c0015161020f565b6101aa816101e0015161020f565b6101b881610200015161020f565b6101c681610220015161020f565b6101d481610240015161020f565b6101e281610260015161020f565b6101f081610280015161020f565b6101fe816102a0015161020f565b61020c816102c0015161020f565b50565b6000805160206122eb8339815191528110806102725760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c64000000000060448201526064015b60405180910390fd5b5050565b6000836020015160071461029d576040516320fa9d8960e11b815260040160405180910390fd5b60006102aa858585610524565b905060006102bb8660000151610a90565b905060006102ce828460a0015188610e6e565b90506102ed604051806040016040528060008152602001600081525090565b604080518082019091526000808252602082015261032287610160015161031d8961018001518860e00151610ece565b610f72565b91506000806103338b88878c611019565b915091506103448161031d84611259565b925061035d8361031d8b61016001518a60a00151610ece565b60a08801516040880151602001519194506000805160206122eb833981519152918290820990508160e08a0151820990506103a18561031d8d610180015184610ece565b9450600060405180608001604052807f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b081526020017f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c181526020017f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e5581526020017f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe48152509050610463878261045689611259565b61045e6112f8565b6113c9565b9e9d5050505050505050505050505050565b805160208201516000917f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd479115901516156104af57505050565b82516020840151826003848585860985090883828309148382108484101616935050508161051f5760405162461bcd60e51b815260206004820152601760248201527f426e3235343a20696e76616c696420473120706f696e740000000000000000006044820152606401610269565b505050565b61056c60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006000805160206122eb8339815191529050604051602081016000815260fe60e01b8152865160c01b6004820152602087015160c01b600c82015261028087015160208201526102a08701516040820152600160608201527f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a60808201527f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02560a08201527f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a60c08201527f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e88160e082015260e087015180516101008301526020810151610120830152506101008701518051610140830152602081015161016083015250610120870151805161018083015260208101516101a08301525061014087015180516101c083015260208101516101e083015250610160870151805161020083015260208101516102208301525061018087015180516102408301526020810151610260830152506101e0870151805161028083015260208101516102a08301525061020087015180516102c083015260208101516102e083015250610220870151805161030083015260208101516103208301525061024087015180516103408301526020810151610360830152506101a0870151805161038083015260208101516103a0830152506101c087015180516103c083015260208101516103e0830152506102608701518051610400830152602081015161042083015250604087015180516104408301526020810151610460830152506060870151805161048083015260208101516104a083015250608087015180516104c083015260208101516104e08301525060a0870151805161050083015260208101516105208301525060c08701518051610540830152602081015161056083015250855161058082015260208601516105a082015260408601516105c082015260608601516105e0820152608086015161060082015260a086015161062082015260c086015161064082015284518051610660830152602081015161068083015250602085015180516106a083015260208101516106c083015250604085015180516106e08301526020810151610700830152506060850151805161072083015260208101516107408301525060808501518051610760830152602081015161078083015250600082526107c08220825282825106606085015260208220825282825106608085015260a085015180518252602081015160208301525060608220808352838106855283818209848282099150806020870152508060408601525060c085015180518252602081015160208301525060e085015180516040830152602081015160608301525061010085015180516080830152602081015160a083015250610120850151805160c0830152602081015160e0830152506101408501518051610100830152602081015161012083015250610160822082528282510660a08501526101a085015181526101c085015160208201526101e085015160408201526102008501516060820152610220850151608082015261024085015160a082015261026085015160c082015261028085015160e08201526102a08501516101008201526102c0850151610120820152610160822082528282510660c08501526101608501518051825260208101516020830152506101808501518051604083015260208101516060830152505060a0812082810660e08501525050509392505050565b610a98611d69565b816201000003610bd7576040518060600160405280601081526020017f30641e0e92bebef818268d663bcad6dbcfd6c0149170f6d7d350b1b1fa6c100181526020016040518060e00160405280600181526020017eeeb2cb5981ed45649abebde081dcff16c8601de4347e7dd1628ba2daac43b781526020017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb81526020017f086812a00ac43ea801669c640171203c41a496671bfbc065ac8db24d52cf31e581526020017f2d965651cdd9e4811f4e51b80ddca8a8b4a93ee17420aae6adaa01c2617c6e8581526020017f12597a56c2e438620b9041b98992ae0d4e705b780057bf7766a2767cece16e1d81526020017f02d94117cd17bcf1290fd67c01155dd40807857dff4a5a0b4dc67befa8aa34fd8152508152509050919050565b816210000003610d17576040518060600160405280601481526020017f30644b6c9c4a72169e4daa317d25f04512ae15c53b34e8f5acd8e155d0a6c10181526020016040518060e00160405280600181526020017f26125da10a0ed06327508aba06d1e303ac616632dbed349f53422da95333785781526020017f2260e724844bca5251829353968e4915305258418357473a5c1d597f613f6cbd81526020017f2087ea2cd664278608fb0ebdb820907f598502c81b6690c185e2bf15cb935f4281526020017f19ddbcaf3a8d46c15c0176fbb5b95e4dc57088ff13f4d1bd84c6bfa57dcdc0e081526020017f05a2c85cfc591789605cae818e37dd4161eef9aa666bec6fe4288d09e6d2341881526020017f11f70e5363258ff4f0d716a653e1dc41f1c64484d7f4b6e219d6377614a3905c8152508152509050919050565b81602003610e55576040518060600160405280600581526020017f2ee12bff4a2813286a8dc388cd754d9a3ef2490635eba50cb9c2e5e75080000181526020016040518060e00160405280600181526020017f09c532c6306b93d29678200d47c0b2a99c18d51b838eeb1d3eed4c533bb512d081526020017f21082ca216cbbf4e1c6e4f4594dd508c996dfbe1174efb98b11509c6e306460b81526020017f1277ae6415f0ef18f2ba5fb162c39eb7311f386e2d26d64401f4a25da77c253b81526020017f2b337de1c8c14f22ec9b9e2f96afef3652627366f8170a0a948dad4ac1bd5e8081526020017f2fbd4dd2976be55d1a163aa9820fb88dfac5ddce77e1872e90632027327a5ebe81526020017f107aab49e65a67f9da9cd2abf78be38bd9dc1d5db39f81de36bcfa5b4b0390438152508152509050919050565b60405163e2ef09e560e01b815260040160405180910390fd5b610e9260405180606001604052806000815260200160008152602001600081525090565b610e9c84846114ad565b808252610eac9085908590611501565b60208201528051610ec290859084908690611575565b60408201529392505050565b6040805180820190915260008082526020820152610eea611d8f565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa90508080610f1c57600080fd5b5080610f6a5760405162461bcd60e51b815260206004820152601960248201527f426e3235343a207363616c6172206d756c206661696c656421000000000000006044820152606401610269565b505092915050565b6040805180820190915260008082526020820152610f8e611dad565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa90508080610fcb57600080fd5b5080610f6a5760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a2067726f7570206164646974696f6e206661696c6564210000006044820152606401610269565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600061104f878787876116cb565b90506000805160206122eb833981519152600061106d888789611b9b565b90506110798183612291565b60c08901516101a0880151919250908190849081908309840892506110a68561031d8a6000015184610ece565b955083828209905083846101c08a01518309840892506110ce8661031d8a6020015184610ece565b955083828209905083846101e08a01518309840892506110f68661031d8a6040015184610ece565b955083828209905083846102008a015183098408925061111e8661031d8a6060015184610ece565b955083828209905083846102208a01518309840892506111468661031d8a6080015184610ece565b955083828209905083846102408a015183098408925061116e8661031d8d6040015184610ece565b955083828209905083846102608a01518309840892506111968661031d8d6060015184610ece565b955083828209905083846102808a01518309840892506111be8661031d8d6080015184610ece565b955083828209905083846102a08a01518309840892506111e68661031d8d60a0015184610ece565b955060008a60e00151905084856102c08b01518309850893506112118761031d8b60a0015184610ece565b9650611248611242604080518082018252600080825260209182015281518083019092526001825260029082015290565b85610ece565b975050505050505094509492505050565b6040805180820190915260008082526020820152815160208301511590151615611281575090565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516112c691906122c8565b6112f0907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47612291565b905292915050565b6113236040518060800160405280600081526020016000815260200160008152602001600081525090565b60405180608001604052807f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed81526020017f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c281526020017f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa81526020017f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b815250905090565b60008060006040518751815260208801516020820152602087015160408201528651606082015260608701516080820152604087015160a0820152855160c0820152602086015160e08201526020850151610100820152845161012082015260608501516101408201526040850151610160820152602060006101808360085afa91505060005191508061149f5760405162461bcd60e51b815260206004820152601c60248201527f426e3235343a2050616972696e6720636865636b206661696c656421000000006044820152606401610269565b50151590505b949350505050565b81516000906000805160206122eb833981519152908380156114f15784935060005b828110156114e5578385860994506001016114cf565b506001840393506114f8565b6001830393505b50505092915050565b600082600103611513575060016100cd565b81600003611523575060006100cd565b60208401516000805160206122eb833981519152906000908281860990508580156115535760018703925061155a565b6001840392505b5061156482611c8b565b915082828209979650505050505050565b60006000805160206122eb8339815191528282036115f257600160005b60078110156115e6578186036115c3578681600781106115b4576115b461227b565b602002015193505050506114a5565b82806115d1576115d16122b2565b60408901516020015183099150600101611592565b506000925050506114a5565b6115fa611dcb565b6040870151600160c0838101828152920190805b600781101561163b5760208403935085868a85518903088309808552601f1990930192915060010161160e565b50505050600080600090506001838960408c015160005b6007811015611692578882518a85518c88518a0909098981880896505088898d84518c030886099450602093840193928301929190910190600101611652565b505050508092505060006116a583611c8b565b905060208a015185818909965050848187099550848287099a9950505050505050505050565b604080518082019091526000808252602082015260008060008060006000805160206122eb833981519152905060808901518160208a015160208c0151099550895194508160a08b015160608c0151099350816101a089015185089250818184089250818584099450817f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a85099250816101c089015184089250818184089250818584099450817f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02585099250816101e089015184089250818184089250818584099450817f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a850992508161020089015184089250818184089250818584099450817f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e8818509925081610220890151840892508181840892505080848309935080848608945061183d8760a0015186610ece565b9550885160608a015160808b0151838284099750836102c08b015189099750836102408b015183099550836101a08b015187089550838187089550838689099750836102608b015183099550836101c08b015187089550838187089550838689099750836102808b015183099550836101e08b015187089550838187089550838689099750836102a08b015183099550836102008b0151870895508381870895505050508083860994506119048661031d8c60c0015188856118ff9190612291565b610ece565b955061191d8661031d8c60e001518a6101a00151610ece565b95506119378661031d8c61010001518a6101c00151610ece565b95506119518661031d8c61012001518a6101e00151610ece565b955061196b8661031d8c61014001518a6102000151610ece565b9550806101c08801516101a08901510992506119908661031d8c610160015186610ece565b9550806102008801516101e08901510992506119b58661031d8c610180015186610ece565b95506101a087015192508083840991508082830991508082840992506119e48661031d8c6101e0015186610ece565b95506101c08701519250808384099150808283099150808284099250611a138661031d8c610200015186610ece565b95506101e08701519250808384099150808283099150808284099250611a428661031d8c610220015186610ece565b95506102008701519250808384099150808283099150808284099250611a718661031d8c610240015186610ece565b9550611a8e8661031d8c6101a001516118ff8b6102200151611d31565b9550611a9f868b6101c00151610f72565b9550806101c08801516101a0890151099250806101e08801518409925080610200880151840992508061022088015184099250611ae58661031d8c610260015186610ece565b9550611af48860000151611d31565b9450611b088661031d8960c0015188610ece565b955080600189510860a08a0151909350819080099150808284099250808386099450611b3c8661031d8960e0015188610ece565b9550808386099450611b578661031d89610100015188610ece565b9550808386099450611b728661031d89610120015188610ece565b9550808386099450611b8d8661031d89610140015188610ece565b9a9950505050505050505050565b6000806000805160206122eb8339815191529050600083602001519050600084604001519050600060019050606088015160808901516101a08901516102408a01518788898387098a868608088609945050506101c08901516102608a01518788898387098a868608088609945050506101e08901516102808a01518788898387098a868608088609945050506102008901516102a08a01518788898387098a8686080886099450505061022089015191506102c0890151868782898587080985099350505050875160208901518586868309870385089650508485838309860387089998505050505050505050565b60008060006000805160206122eb833981519152905060405160208152602080820152602060408201528460608201526002820360808201528160a08201526020600060c08360055afa925050600051925081611d2a5760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a20706f7720707265636f6d70696c65206661696c6564210000006044820152606401610269565b5050919050565b6000611d4b6000805160206122eb833981519152836122c8565b611d63906000805160206122eb833981519152612291565b92915050565b60405180606001604052806000815260200160008152602001611d8a611dcb565b905290565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b6040516102e0810167ffffffffffffffff81118282101715611e2357611e23611de9565b60405290565b6040516102c0810167ffffffffffffffff81118282101715611e2357611e23611de9565b600060408284031215611e5f57600080fd5b6040516040810181811067ffffffffffffffff82111715611e8257611e82611de9565b604052823581526020928301359281019290925250919050565b600082601f830112611ead57600080fd5b60405160e0810181811067ffffffffffffffff82111715611ed057611ed0611de9565b6040528060e0840185811115611ee557600080fd5b845b81811015611eff578035835260209283019201611ee7565b509195945050505050565b60006104808284031215611f1d57600080fd5b611f25611dff565b9050611f318383611e4d565b8152611f408360408401611e4d565b6020820152611f528360808401611e4d565b6040820152611f648360c08401611e4d565b6060820152610100611f7884828501611e4d565b6080830152610140611f8c85828601611e4d565b60a0840152610180611fa086828701611e4d565b60c08501526101c0611fb487828801611e4d565b60e0860152610200611fc888828901611e4d565b858701526102409450611fdd88868901611e4d565b610120870152610280611ff289828a01611e4d565b858801526102c0945061200789868a01611e4d565b61016088015261201b896103008a01611e4d565b848801526103408801356101a0880152610360880135838801526103808801356101e08801526103a0880135828801526103c08801356102208801526103e08801358688015261040088013561026088015261042088013581880152505050506104408401356102a084015261046084013581840152505092915050565b6000806000838503610a608112156120b057600080fd5b610500808212156120c057600080fd5b6120c8611e29565b915085358252602086013560208301526120e58760408801611e4d565b60408301526120f78760808801611e4d565b60608301526121098760c08801611e4d565b608083015261010061211d88828901611e4d565b60a084015261014061213189828a01611e4d565b60c08501526101806121458a828b01611e4d565b60e08601526101c06121598b828c01611e4d565b84870152610200935061216e8b858c01611e4d565b6101208701526102406121838c828d01611e4d565b8488015261028093506121988c858d01611e4d565b6101608801526121ac8c6102c08d01611e4d565b838801526121be8c6103008d01611e4d565b6101a08801526121d28c6103408d01611e4d565b828801526121e48c6103808d01611e4d565b6101e08801526121f88c6103c08d01611e4d565b8588015261220a8c6104008d01611e4d565b61022088015261221e8c6104408d01611e4d565b81880152505050612233896104808a01611e4d565b6102608501526104c08801358185015250506104e08601356102a083015281945061226087828801611e9c565b93505050612272856105e08601611f0a565b90509250925092565b634e487b7160e01b600052603260045260246000fd5b81810381811115611d6357634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6000826122e557634e487b7160e01b600052601260045260246000fd5b50069056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a164736f6c6343000817000a", + "nonce": "0x791", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [], + "pending": [], + "returns": { + "contractAddress": { + "internal_type": "address", + "value": "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB" + } + }, + "timestamp": 1736544438, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544485.json b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544485.json new file mode 100644 index 0000000000..942f7c7df4 --- /dev/null +++ b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544485.json @@ -0,0 +1,34 @@ +{ + "transactions": [ + { + "hash": null, + "transactionType": "CREATE", + "contractName": "PlonkVerifier", + "contractAddress": "0x85fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb", + "function": null, + "arguments": null, + "transaction": { + "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "gas": "0x27e2e0", + "value": "0x0", + "input": "0x61231761003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063ce537a771461003a575b600080fd5b61004d610048366004612099565b610061565b604051901515815260200160405180910390f35b600061006c826100d4565b61007d8360005b602002015161020f565b610088836001610073565b610093836002610073565b61009e836003610073565b6100a9836004610073565b6100b4836005610073565b6100bf836006610073565b6100ca848484610276565b90505b9392505050565b80516100df90610475565b6100ec8160200151610475565b6100f98160400151610475565b6101068160600151610475565b6101138160800151610475565b6101208160a00151610475565b61012d8160c00151610475565b61013a8160e00151610475565b610148816101000151610475565b610156816101200151610475565b610164816101400151610475565b610172816101600151610475565b610180816101800151610475565b61018e816101a0015161020f565b61019c816101c0015161020f565b6101aa816101e0015161020f565b6101b881610200015161020f565b6101c681610220015161020f565b6101d481610240015161020f565b6101e281610260015161020f565b6101f081610280015161020f565b6101fe816102a0015161020f565b61020c816102c0015161020f565b50565b6000805160206122eb8339815191528110806102725760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c64000000000060448201526064015b60405180910390fd5b5050565b6000836020015160071461029d576040516320fa9d8960e11b815260040160405180910390fd5b60006102aa858585610524565b905060006102bb8660000151610a90565b905060006102ce828460a0015188610e6e565b90506102ed604051806040016040528060008152602001600081525090565b604080518082019091526000808252602082015261032287610160015161031d8961018001518860e00151610ece565b610f72565b91506000806103338b88878c611019565b915091506103448161031d84611259565b925061035d8361031d8b61016001518a60a00151610ece565b60a08801516040880151602001519194506000805160206122eb833981519152918290820990508160e08a0151820990506103a18561031d8d610180015184610ece565b9450600060405180608001604052807f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b081526020017f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c181526020017f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e5581526020017f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe48152509050610463878261045689611259565b61045e6112f8565b6113c9565b9e9d5050505050505050505050505050565b805160208201516000917f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd479115901516156104af57505050565b82516020840151826003848585860985090883828309148382108484101616935050508161051f5760405162461bcd60e51b815260206004820152601760248201527f426e3235343a20696e76616c696420473120706f696e740000000000000000006044820152606401610269565b505050565b61056c60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006000805160206122eb8339815191529050604051602081016000815260fe60e01b8152865160c01b6004820152602087015160c01b600c82015261028087015160208201526102a08701516040820152600160608201527f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a60808201527f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02560a08201527f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a60c08201527f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e88160e082015260e087015180516101008301526020810151610120830152506101008701518051610140830152602081015161016083015250610120870151805161018083015260208101516101a08301525061014087015180516101c083015260208101516101e083015250610160870151805161020083015260208101516102208301525061018087015180516102408301526020810151610260830152506101e0870151805161028083015260208101516102a08301525061020087015180516102c083015260208101516102e083015250610220870151805161030083015260208101516103208301525061024087015180516103408301526020810151610360830152506101a0870151805161038083015260208101516103a0830152506101c087015180516103c083015260208101516103e0830152506102608701518051610400830152602081015161042083015250604087015180516104408301526020810151610460830152506060870151805161048083015260208101516104a083015250608087015180516104c083015260208101516104e08301525060a0870151805161050083015260208101516105208301525060c08701518051610540830152602081015161056083015250855161058082015260208601516105a082015260408601516105c082015260608601516105e0820152608086015161060082015260a086015161062082015260c086015161064082015284518051610660830152602081015161068083015250602085015180516106a083015260208101516106c083015250604085015180516106e08301526020810151610700830152506060850151805161072083015260208101516107408301525060808501518051610760830152602081015161078083015250600082526107c08220825282825106606085015260208220825282825106608085015260a085015180518252602081015160208301525060608220808352838106855283818209848282099150806020870152508060408601525060c085015180518252602081015160208301525060e085015180516040830152602081015160608301525061010085015180516080830152602081015160a083015250610120850151805160c0830152602081015160e0830152506101408501518051610100830152602081015161012083015250610160822082528282510660a08501526101a085015181526101c085015160208201526101e085015160408201526102008501516060820152610220850151608082015261024085015160a082015261026085015160c082015261028085015160e08201526102a08501516101008201526102c0850151610120820152610160822082528282510660c08501526101608501518051825260208101516020830152506101808501518051604083015260208101516060830152505060a0812082810660e08501525050509392505050565b610a98611d69565b816201000003610bd7576040518060600160405280601081526020017f30641e0e92bebef818268d663bcad6dbcfd6c0149170f6d7d350b1b1fa6c100181526020016040518060e00160405280600181526020017eeeb2cb5981ed45649abebde081dcff16c8601de4347e7dd1628ba2daac43b781526020017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb81526020017f086812a00ac43ea801669c640171203c41a496671bfbc065ac8db24d52cf31e581526020017f2d965651cdd9e4811f4e51b80ddca8a8b4a93ee17420aae6adaa01c2617c6e8581526020017f12597a56c2e438620b9041b98992ae0d4e705b780057bf7766a2767cece16e1d81526020017f02d94117cd17bcf1290fd67c01155dd40807857dff4a5a0b4dc67befa8aa34fd8152508152509050919050565b816210000003610d17576040518060600160405280601481526020017f30644b6c9c4a72169e4daa317d25f04512ae15c53b34e8f5acd8e155d0a6c10181526020016040518060e00160405280600181526020017f26125da10a0ed06327508aba06d1e303ac616632dbed349f53422da95333785781526020017f2260e724844bca5251829353968e4915305258418357473a5c1d597f613f6cbd81526020017f2087ea2cd664278608fb0ebdb820907f598502c81b6690c185e2bf15cb935f4281526020017f19ddbcaf3a8d46c15c0176fbb5b95e4dc57088ff13f4d1bd84c6bfa57dcdc0e081526020017f05a2c85cfc591789605cae818e37dd4161eef9aa666bec6fe4288d09e6d2341881526020017f11f70e5363258ff4f0d716a653e1dc41f1c64484d7f4b6e219d6377614a3905c8152508152509050919050565b81602003610e55576040518060600160405280600581526020017f2ee12bff4a2813286a8dc388cd754d9a3ef2490635eba50cb9c2e5e75080000181526020016040518060e00160405280600181526020017f09c532c6306b93d29678200d47c0b2a99c18d51b838eeb1d3eed4c533bb512d081526020017f21082ca216cbbf4e1c6e4f4594dd508c996dfbe1174efb98b11509c6e306460b81526020017f1277ae6415f0ef18f2ba5fb162c39eb7311f386e2d26d64401f4a25da77c253b81526020017f2b337de1c8c14f22ec9b9e2f96afef3652627366f8170a0a948dad4ac1bd5e8081526020017f2fbd4dd2976be55d1a163aa9820fb88dfac5ddce77e1872e90632027327a5ebe81526020017f107aab49e65a67f9da9cd2abf78be38bd9dc1d5db39f81de36bcfa5b4b0390438152508152509050919050565b60405163e2ef09e560e01b815260040160405180910390fd5b610e9260405180606001604052806000815260200160008152602001600081525090565b610e9c84846114ad565b808252610eac9085908590611501565b60208201528051610ec290859084908690611575565b60408201529392505050565b6040805180820190915260008082526020820152610eea611d8f565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa90508080610f1c57600080fd5b5080610f6a5760405162461bcd60e51b815260206004820152601960248201527f426e3235343a207363616c6172206d756c206661696c656421000000000000006044820152606401610269565b505092915050565b6040805180820190915260008082526020820152610f8e611dad565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa90508080610fcb57600080fd5b5080610f6a5760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a2067726f7570206164646974696f6e206661696c6564210000006044820152606401610269565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600061104f878787876116cb565b90506000805160206122eb833981519152600061106d888789611b9b565b90506110798183612291565b60c08901516101a0880151919250908190849081908309840892506110a68561031d8a6000015184610ece565b955083828209905083846101c08a01518309840892506110ce8661031d8a6020015184610ece565b955083828209905083846101e08a01518309840892506110f68661031d8a6040015184610ece565b955083828209905083846102008a015183098408925061111e8661031d8a6060015184610ece565b955083828209905083846102208a01518309840892506111468661031d8a6080015184610ece565b955083828209905083846102408a015183098408925061116e8661031d8d6040015184610ece565b955083828209905083846102608a01518309840892506111968661031d8d6060015184610ece565b955083828209905083846102808a01518309840892506111be8661031d8d6080015184610ece565b955083828209905083846102a08a01518309840892506111e68661031d8d60a0015184610ece565b955060008a60e00151905084856102c08b01518309850893506112118761031d8b60a0015184610ece565b9650611248611242604080518082018252600080825260209182015281518083019092526001825260029082015290565b85610ece565b975050505050505094509492505050565b6040805180820190915260008082526020820152815160208301511590151615611281575090565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516112c691906122c8565b6112f0907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47612291565b905292915050565b6113236040518060800160405280600081526020016000815260200160008152602001600081525090565b60405180608001604052807f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed81526020017f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c281526020017f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa81526020017f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b815250905090565b60008060006040518751815260208801516020820152602087015160408201528651606082015260608701516080820152604087015160a0820152855160c0820152602086015160e08201526020850151610100820152845161012082015260608501516101408201526040850151610160820152602060006101808360085afa91505060005191508061149f5760405162461bcd60e51b815260206004820152601c60248201527f426e3235343a2050616972696e6720636865636b206661696c656421000000006044820152606401610269565b50151590505b949350505050565b81516000906000805160206122eb833981519152908380156114f15784935060005b828110156114e5578385860994506001016114cf565b506001840393506114f8565b6001830393505b50505092915050565b600082600103611513575060016100cd565b81600003611523575060006100cd565b60208401516000805160206122eb833981519152906000908281860990508580156115535760018703925061155a565b6001840392505b5061156482611c8b565b915082828209979650505050505050565b60006000805160206122eb8339815191528282036115f257600160005b60078110156115e6578186036115c3578681600781106115b4576115b461227b565b602002015193505050506114a5565b82806115d1576115d16122b2565b60408901516020015183099150600101611592565b506000925050506114a5565b6115fa611dcb565b6040870151600160c0838101828152920190805b600781101561163b5760208403935085868a85518903088309808552601f1990930192915060010161160e565b50505050600080600090506001838960408c015160005b6007811015611692578882518a85518c88518a0909098981880896505088898d84518c030886099450602093840193928301929190910190600101611652565b505050508092505060006116a583611c8b565b905060208a015185818909965050848187099550848287099a9950505050505050505050565b604080518082019091526000808252602082015260008060008060006000805160206122eb833981519152905060808901518160208a015160208c0151099550895194508160a08b015160608c0151099350816101a089015185089250818184089250818584099450817f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a85099250816101c089015184089250818184089250818584099450817f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02585099250816101e089015184089250818184089250818584099450817f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a850992508161020089015184089250818184089250818584099450817f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e8818509925081610220890151840892508181840892505080848309935080848608945061183d8760a0015186610ece565b9550885160608a015160808b0151838284099750836102c08b015189099750836102408b015183099550836101a08b015187089550838187089550838689099750836102608b015183099550836101c08b015187089550838187089550838689099750836102808b015183099550836101e08b015187089550838187089550838689099750836102a08b015183099550836102008b0151870895508381870895505050508083860994506119048661031d8c60c0015188856118ff9190612291565b610ece565b955061191d8661031d8c60e001518a6101a00151610ece565b95506119378661031d8c61010001518a6101c00151610ece565b95506119518661031d8c61012001518a6101e00151610ece565b955061196b8661031d8c61014001518a6102000151610ece565b9550806101c08801516101a08901510992506119908661031d8c610160015186610ece565b9550806102008801516101e08901510992506119b58661031d8c610180015186610ece565b95506101a087015192508083840991508082830991508082840992506119e48661031d8c6101e0015186610ece565b95506101c08701519250808384099150808283099150808284099250611a138661031d8c610200015186610ece565b95506101e08701519250808384099150808283099150808284099250611a428661031d8c610220015186610ece565b95506102008701519250808384099150808283099150808284099250611a718661031d8c610240015186610ece565b9550611a8e8661031d8c6101a001516118ff8b6102200151611d31565b9550611a9f868b6101c00151610f72565b9550806101c08801516101a0890151099250806101e08801518409925080610200880151840992508061022088015184099250611ae58661031d8c610260015186610ece565b9550611af48860000151611d31565b9450611b088661031d8960c0015188610ece565b955080600189510860a08a0151909350819080099150808284099250808386099450611b3c8661031d8960e0015188610ece565b9550808386099450611b578661031d89610100015188610ece565b9550808386099450611b728661031d89610120015188610ece565b9550808386099450611b8d8661031d89610140015188610ece565b9a9950505050505050505050565b6000806000805160206122eb8339815191529050600083602001519050600084604001519050600060019050606088015160808901516101a08901516102408a01518788898387098a868608088609945050506101c08901516102608a01518788898387098a868608088609945050506101e08901516102808a01518788898387098a868608088609945050506102008901516102a08a01518788898387098a8686080886099450505061022089015191506102c0890151868782898587080985099350505050875160208901518586868309870385089650508485838309860387089998505050505050505050565b60008060006000805160206122eb833981519152905060405160208152602080820152602060408201528460608201526002820360808201528160a08201526020600060c08360055afa925050600051925081611d2a5760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a20706f7720707265636f6d70696c65206661696c6564210000006044820152606401610269565b5050919050565b6000611d4b6000805160206122eb833981519152836122c8565b611d63906000805160206122eb833981519152612291565b92915050565b60405180606001604052806000815260200160008152602001611d8a611dcb565b905290565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b6040516102e0810167ffffffffffffffff81118282101715611e2357611e23611de9565b60405290565b6040516102c0810167ffffffffffffffff81118282101715611e2357611e23611de9565b600060408284031215611e5f57600080fd5b6040516040810181811067ffffffffffffffff82111715611e8257611e82611de9565b604052823581526020928301359281019290925250919050565b600082601f830112611ead57600080fd5b60405160e0810181811067ffffffffffffffff82111715611ed057611ed0611de9565b6040528060e0840185811115611ee557600080fd5b845b81811015611eff578035835260209283019201611ee7565b509195945050505050565b60006104808284031215611f1d57600080fd5b611f25611dff565b9050611f318383611e4d565b8152611f408360408401611e4d565b6020820152611f528360808401611e4d565b6040820152611f648360c08401611e4d565b6060820152610100611f7884828501611e4d565b6080830152610140611f8c85828601611e4d565b60a0840152610180611fa086828701611e4d565b60c08501526101c0611fb487828801611e4d565b60e0860152610200611fc888828901611e4d565b858701526102409450611fdd88868901611e4d565b610120870152610280611ff289828a01611e4d565b858801526102c0945061200789868a01611e4d565b61016088015261201b896103008a01611e4d565b848801526103408801356101a0880152610360880135838801526103808801356101e08801526103a0880135828801526103c08801356102208801526103e08801358688015261040088013561026088015261042088013581880152505050506104408401356102a084015261046084013581840152505092915050565b6000806000838503610a608112156120b057600080fd5b610500808212156120c057600080fd5b6120c8611e29565b915085358252602086013560208301526120e58760408801611e4d565b60408301526120f78760808801611e4d565b60608301526121098760c08801611e4d565b608083015261010061211d88828901611e4d565b60a084015261014061213189828a01611e4d565b60c08501526101806121458a828b01611e4d565b60e08601526101c06121598b828c01611e4d565b84870152610200935061216e8b858c01611e4d565b6101208701526102406121838c828d01611e4d565b8488015261028093506121988c858d01611e4d565b6101608801526121ac8c6102c08d01611e4d565b838801526121be8c6103008d01611e4d565b6101a08801526121d28c6103408d01611e4d565b828801526121e48c6103808d01611e4d565b6101e08801526121f88c6103c08d01611e4d565b8588015261220a8c6104008d01611e4d565b61022088015261221e8c6104408d01611e4d565b81880152505050612233896104808a01611e4d565b6102608501526104c08801358185015250506104e08601356102a083015281945061226087828801611e9c565b93505050612272856105e08601611f0a565b90509250925092565b634e487b7160e01b600052603260045260246000fd5b81810381811115611d6357634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6000826122e557634e487b7160e01b600052601260045260246000fd5b50069056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a164736f6c6343000817000a", + "nonce": "0x791", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [], + "pending": [], + "returns": { + "contractAddress": { + "internal_type": "address", + "value": "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB" + } + }, + "timestamp": 1736544485, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544842.json b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544842.json new file mode 100644 index 0000000000..4be6cfdb4a --- /dev/null +++ b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544842.json @@ -0,0 +1,34 @@ +{ + "transactions": [ + { + "hash": null, + "transactionType": "CREATE", + "contractName": "PlonkVerifier", + "contractAddress": "0x85fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb", + "function": null, + "arguments": null, + "transaction": { + "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "gas": "0x27e2e0", + "value": "0x0", + "input": "0x61231761003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063ce537a771461003a575b600080fd5b61004d610048366004612099565b610061565b604051901515815260200160405180910390f35b600061006c826100d4565b61007d8360005b602002015161020f565b610088836001610073565b610093836002610073565b61009e836003610073565b6100a9836004610073565b6100b4836005610073565b6100bf836006610073565b6100ca848484610276565b90505b9392505050565b80516100df90610475565b6100ec8160200151610475565b6100f98160400151610475565b6101068160600151610475565b6101138160800151610475565b6101208160a00151610475565b61012d8160c00151610475565b61013a8160e00151610475565b610148816101000151610475565b610156816101200151610475565b610164816101400151610475565b610172816101600151610475565b610180816101800151610475565b61018e816101a0015161020f565b61019c816101c0015161020f565b6101aa816101e0015161020f565b6101b881610200015161020f565b6101c681610220015161020f565b6101d481610240015161020f565b6101e281610260015161020f565b6101f081610280015161020f565b6101fe816102a0015161020f565b61020c816102c0015161020f565b50565b6000805160206122eb8339815191528110806102725760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c64000000000060448201526064015b60405180910390fd5b5050565b6000836020015160071461029d576040516320fa9d8960e11b815260040160405180910390fd5b60006102aa858585610524565b905060006102bb8660000151610a90565b905060006102ce828460a0015188610e6e565b90506102ed604051806040016040528060008152602001600081525090565b604080518082019091526000808252602082015261032287610160015161031d8961018001518860e00151610ece565b610f72565b91506000806103338b88878c611019565b915091506103448161031d84611259565b925061035d8361031d8b61016001518a60a00151610ece565b60a08801516040880151602001519194506000805160206122eb833981519152918290820990508160e08a0151820990506103a18561031d8d610180015184610ece565b9450600060405180608001604052807f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b081526020017f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c181526020017f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e5581526020017f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe48152509050610463878261045689611259565b61045e6112f8565b6113c9565b9e9d5050505050505050505050505050565b805160208201516000917f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd479115901516156104af57505050565b82516020840151826003848585860985090883828309148382108484101616935050508161051f5760405162461bcd60e51b815260206004820152601760248201527f426e3235343a20696e76616c696420473120706f696e740000000000000000006044820152606401610269565b505050565b61056c60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006000805160206122eb8339815191529050604051602081016000815260fe60e01b8152865160c01b6004820152602087015160c01b600c82015261028087015160208201526102a08701516040820152600160608201527f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a60808201527f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02560a08201527f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a60c08201527f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e88160e082015260e087015180516101008301526020810151610120830152506101008701518051610140830152602081015161016083015250610120870151805161018083015260208101516101a08301525061014087015180516101c083015260208101516101e083015250610160870151805161020083015260208101516102208301525061018087015180516102408301526020810151610260830152506101e0870151805161028083015260208101516102a08301525061020087015180516102c083015260208101516102e083015250610220870151805161030083015260208101516103208301525061024087015180516103408301526020810151610360830152506101a0870151805161038083015260208101516103a0830152506101c087015180516103c083015260208101516103e0830152506102608701518051610400830152602081015161042083015250604087015180516104408301526020810151610460830152506060870151805161048083015260208101516104a083015250608087015180516104c083015260208101516104e08301525060a0870151805161050083015260208101516105208301525060c08701518051610540830152602081015161056083015250855161058082015260208601516105a082015260408601516105c082015260608601516105e0820152608086015161060082015260a086015161062082015260c086015161064082015284518051610660830152602081015161068083015250602085015180516106a083015260208101516106c083015250604085015180516106e08301526020810151610700830152506060850151805161072083015260208101516107408301525060808501518051610760830152602081015161078083015250600082526107c08220825282825106606085015260208220825282825106608085015260a085015180518252602081015160208301525060608220808352838106855283818209848282099150806020870152508060408601525060c085015180518252602081015160208301525060e085015180516040830152602081015160608301525061010085015180516080830152602081015160a083015250610120850151805160c0830152602081015160e0830152506101408501518051610100830152602081015161012083015250610160822082528282510660a08501526101a085015181526101c085015160208201526101e085015160408201526102008501516060820152610220850151608082015261024085015160a082015261026085015160c082015261028085015160e08201526102a08501516101008201526102c0850151610120820152610160822082528282510660c08501526101608501518051825260208101516020830152506101808501518051604083015260208101516060830152505060a0812082810660e08501525050509392505050565b610a98611d69565b816201000003610bd7576040518060600160405280601081526020017f30641e0e92bebef818268d663bcad6dbcfd6c0149170f6d7d350b1b1fa6c100181526020016040518060e00160405280600181526020017eeeb2cb5981ed45649abebde081dcff16c8601de4347e7dd1628ba2daac43b781526020017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb81526020017f086812a00ac43ea801669c640171203c41a496671bfbc065ac8db24d52cf31e581526020017f2d965651cdd9e4811f4e51b80ddca8a8b4a93ee17420aae6adaa01c2617c6e8581526020017f12597a56c2e438620b9041b98992ae0d4e705b780057bf7766a2767cece16e1d81526020017f02d94117cd17bcf1290fd67c01155dd40807857dff4a5a0b4dc67befa8aa34fd8152508152509050919050565b816210000003610d17576040518060600160405280601481526020017f30644b6c9c4a72169e4daa317d25f04512ae15c53b34e8f5acd8e155d0a6c10181526020016040518060e00160405280600181526020017f26125da10a0ed06327508aba06d1e303ac616632dbed349f53422da95333785781526020017f2260e724844bca5251829353968e4915305258418357473a5c1d597f613f6cbd81526020017f2087ea2cd664278608fb0ebdb820907f598502c81b6690c185e2bf15cb935f4281526020017f19ddbcaf3a8d46c15c0176fbb5b95e4dc57088ff13f4d1bd84c6bfa57dcdc0e081526020017f05a2c85cfc591789605cae818e37dd4161eef9aa666bec6fe4288d09e6d2341881526020017f11f70e5363258ff4f0d716a653e1dc41f1c64484d7f4b6e219d6377614a3905c8152508152509050919050565b81602003610e55576040518060600160405280600581526020017f2ee12bff4a2813286a8dc388cd754d9a3ef2490635eba50cb9c2e5e75080000181526020016040518060e00160405280600181526020017f09c532c6306b93d29678200d47c0b2a99c18d51b838eeb1d3eed4c533bb512d081526020017f21082ca216cbbf4e1c6e4f4594dd508c996dfbe1174efb98b11509c6e306460b81526020017f1277ae6415f0ef18f2ba5fb162c39eb7311f386e2d26d64401f4a25da77c253b81526020017f2b337de1c8c14f22ec9b9e2f96afef3652627366f8170a0a948dad4ac1bd5e8081526020017f2fbd4dd2976be55d1a163aa9820fb88dfac5ddce77e1872e90632027327a5ebe81526020017f107aab49e65a67f9da9cd2abf78be38bd9dc1d5db39f81de36bcfa5b4b0390438152508152509050919050565b60405163e2ef09e560e01b815260040160405180910390fd5b610e9260405180606001604052806000815260200160008152602001600081525090565b610e9c84846114ad565b808252610eac9085908590611501565b60208201528051610ec290859084908690611575565b60408201529392505050565b6040805180820190915260008082526020820152610eea611d8f565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa90508080610f1c57600080fd5b5080610f6a5760405162461bcd60e51b815260206004820152601960248201527f426e3235343a207363616c6172206d756c206661696c656421000000000000006044820152606401610269565b505092915050565b6040805180820190915260008082526020820152610f8e611dad565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa90508080610fcb57600080fd5b5080610f6a5760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a2067726f7570206164646974696f6e206661696c6564210000006044820152606401610269565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600061104f878787876116cb565b90506000805160206122eb833981519152600061106d888789611b9b565b90506110798183612291565b60c08901516101a0880151919250908190849081908309840892506110a68561031d8a6000015184610ece565b955083828209905083846101c08a01518309840892506110ce8661031d8a6020015184610ece565b955083828209905083846101e08a01518309840892506110f68661031d8a6040015184610ece565b955083828209905083846102008a015183098408925061111e8661031d8a6060015184610ece565b955083828209905083846102208a01518309840892506111468661031d8a6080015184610ece565b955083828209905083846102408a015183098408925061116e8661031d8d6040015184610ece565b955083828209905083846102608a01518309840892506111968661031d8d6060015184610ece565b955083828209905083846102808a01518309840892506111be8661031d8d6080015184610ece565b955083828209905083846102a08a01518309840892506111e68661031d8d60a0015184610ece565b955060008a60e00151905084856102c08b01518309850893506112118761031d8b60a0015184610ece565b9650611248611242604080518082018252600080825260209182015281518083019092526001825260029082015290565b85610ece565b975050505050505094509492505050565b6040805180820190915260008082526020820152815160208301511590151615611281575090565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516112c691906122c8565b6112f0907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47612291565b905292915050565b6113236040518060800160405280600081526020016000815260200160008152602001600081525090565b60405180608001604052807f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed81526020017f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c281526020017f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa81526020017f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b815250905090565b60008060006040518751815260208801516020820152602087015160408201528651606082015260608701516080820152604087015160a0820152855160c0820152602086015160e08201526020850151610100820152845161012082015260608501516101408201526040850151610160820152602060006101808360085afa91505060005191508061149f5760405162461bcd60e51b815260206004820152601c60248201527f426e3235343a2050616972696e6720636865636b206661696c656421000000006044820152606401610269565b50151590505b949350505050565b81516000906000805160206122eb833981519152908380156114f15784935060005b828110156114e5578385860994506001016114cf565b506001840393506114f8565b6001830393505b50505092915050565b600082600103611513575060016100cd565b81600003611523575060006100cd565b60208401516000805160206122eb833981519152906000908281860990508580156115535760018703925061155a565b6001840392505b5061156482611c8b565b915082828209979650505050505050565b60006000805160206122eb8339815191528282036115f257600160005b60078110156115e6578186036115c3578681600781106115b4576115b461227b565b602002015193505050506114a5565b82806115d1576115d16122b2565b60408901516020015183099150600101611592565b506000925050506114a5565b6115fa611dcb565b6040870151600160c0838101828152920190805b600781101561163b5760208403935085868a85518903088309808552601f1990930192915060010161160e565b50505050600080600090506001838960408c015160005b6007811015611692578882518a85518c88518a0909098981880896505088898d84518c030886099450602093840193928301929190910190600101611652565b505050508092505060006116a583611c8b565b905060208a015185818909965050848187099550848287099a9950505050505050505050565b604080518082019091526000808252602082015260008060008060006000805160206122eb833981519152905060808901518160208a015160208c0151099550895194508160a08b015160608c0151099350816101a089015185089250818184089250818584099450817f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a85099250816101c089015184089250818184089250818584099450817f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02585099250816101e089015184089250818184089250818584099450817f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a850992508161020089015184089250818184089250818584099450817f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e8818509925081610220890151840892508181840892505080848309935080848608945061183d8760a0015186610ece565b9550885160608a015160808b0151838284099750836102c08b015189099750836102408b015183099550836101a08b015187089550838187089550838689099750836102608b015183099550836101c08b015187089550838187089550838689099750836102808b015183099550836101e08b015187089550838187089550838689099750836102a08b015183099550836102008b0151870895508381870895505050508083860994506119048661031d8c60c0015188856118ff9190612291565b610ece565b955061191d8661031d8c60e001518a6101a00151610ece565b95506119378661031d8c61010001518a6101c00151610ece565b95506119518661031d8c61012001518a6101e00151610ece565b955061196b8661031d8c61014001518a6102000151610ece565b9550806101c08801516101a08901510992506119908661031d8c610160015186610ece565b9550806102008801516101e08901510992506119b58661031d8c610180015186610ece565b95506101a087015192508083840991508082830991508082840992506119e48661031d8c6101e0015186610ece565b95506101c08701519250808384099150808283099150808284099250611a138661031d8c610200015186610ece565b95506101e08701519250808384099150808283099150808284099250611a428661031d8c610220015186610ece565b95506102008701519250808384099150808283099150808284099250611a718661031d8c610240015186610ece565b9550611a8e8661031d8c6101a001516118ff8b6102200151611d31565b9550611a9f868b6101c00151610f72565b9550806101c08801516101a0890151099250806101e08801518409925080610200880151840992508061022088015184099250611ae58661031d8c610260015186610ece565b9550611af48860000151611d31565b9450611b088661031d8960c0015188610ece565b955080600189510860a08a0151909350819080099150808284099250808386099450611b3c8661031d8960e0015188610ece565b9550808386099450611b578661031d89610100015188610ece565b9550808386099450611b728661031d89610120015188610ece565b9550808386099450611b8d8661031d89610140015188610ece565b9a9950505050505050505050565b6000806000805160206122eb8339815191529050600083602001519050600084604001519050600060019050606088015160808901516101a08901516102408a01518788898387098a868608088609945050506101c08901516102608a01518788898387098a868608088609945050506101e08901516102808a01518788898387098a868608088609945050506102008901516102a08a01518788898387098a8686080886099450505061022089015191506102c0890151868782898587080985099350505050875160208901518586868309870385089650508485838309860387089998505050505050505050565b60008060006000805160206122eb833981519152905060405160208152602080820152602060408201528460608201526002820360808201528160a08201526020600060c08360055afa925050600051925081611d2a5760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a20706f7720707265636f6d70696c65206661696c6564210000006044820152606401610269565b5050919050565b6000611d4b6000805160206122eb833981519152836122c8565b611d63906000805160206122eb833981519152612291565b92915050565b60405180606001604052806000815260200160008152602001611d8a611dcb565b905290565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b6040516102e0810167ffffffffffffffff81118282101715611e2357611e23611de9565b60405290565b6040516102c0810167ffffffffffffffff81118282101715611e2357611e23611de9565b600060408284031215611e5f57600080fd5b6040516040810181811067ffffffffffffffff82111715611e8257611e82611de9565b604052823581526020928301359281019290925250919050565b600082601f830112611ead57600080fd5b60405160e0810181811067ffffffffffffffff82111715611ed057611ed0611de9565b6040528060e0840185811115611ee557600080fd5b845b81811015611eff578035835260209283019201611ee7565b509195945050505050565b60006104808284031215611f1d57600080fd5b611f25611dff565b9050611f318383611e4d565b8152611f408360408401611e4d565b6020820152611f528360808401611e4d565b6040820152611f648360c08401611e4d565b6060820152610100611f7884828501611e4d565b6080830152610140611f8c85828601611e4d565b60a0840152610180611fa086828701611e4d565b60c08501526101c0611fb487828801611e4d565b60e0860152610200611fc888828901611e4d565b858701526102409450611fdd88868901611e4d565b610120870152610280611ff289828a01611e4d565b858801526102c0945061200789868a01611e4d565b61016088015261201b896103008a01611e4d565b848801526103408801356101a0880152610360880135838801526103808801356101e08801526103a0880135828801526103c08801356102208801526103e08801358688015261040088013561026088015261042088013581880152505050506104408401356102a084015261046084013581840152505092915050565b6000806000838503610a608112156120b057600080fd5b610500808212156120c057600080fd5b6120c8611e29565b915085358252602086013560208301526120e58760408801611e4d565b60408301526120f78760808801611e4d565b60608301526121098760c08801611e4d565b608083015261010061211d88828901611e4d565b60a084015261014061213189828a01611e4d565b60c08501526101806121458a828b01611e4d565b60e08601526101c06121598b828c01611e4d565b84870152610200935061216e8b858c01611e4d565b6101208701526102406121838c828d01611e4d565b8488015261028093506121988c858d01611e4d565b6101608801526121ac8c6102c08d01611e4d565b838801526121be8c6103008d01611e4d565b6101a08801526121d28c6103408d01611e4d565b828801526121e48c6103808d01611e4d565b6101e08801526121f88c6103c08d01611e4d565b8588015261220a8c6104008d01611e4d565b61022088015261221e8c6104408d01611e4d565b81880152505050612233896104808a01611e4d565b6102608501526104c08801358185015250506104e08601356102a083015281945061226087828801611e9c565b93505050612272856105e08601611f0a565b90509250925092565b634e487b7160e01b600052603260045260246000fd5b81810381811115611d6357634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6000826122e557634e487b7160e01b600052601260045260246000fd5b50069056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a164736f6c6343000817000a", + "nonce": "0x791", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [], + "pending": [], + "returns": { + "contractAddress": { + "internal_type": "address", + "value": "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB" + } + }, + "timestamp": 1736544842, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544888.json b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544888.json new file mode 100644 index 0000000000..b04d4d5c04 --- /dev/null +++ b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544888.json @@ -0,0 +1,34 @@ +{ + "transactions": [ + { + "hash": null, + "transactionType": "CREATE", + "contractName": "PlonkVerifier", + "contractAddress": "0x9505e8b8546cc9015b2c015826d25821cc48c153", + "function": null, + "arguments": null, + "transaction": { + "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "gas": "0x27e2e0", + "value": "0x0", + "input": "0x61231761003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063ce537a771461003a575b600080fd5b61004d610048366004612099565b610061565b604051901515815260200160405180910390f35b600061006c826100d4565b61007d8360005b602002015161020f565b610088836001610073565b610093836002610073565b61009e836003610073565b6100a9836004610073565b6100b4836005610073565b6100bf836006610073565b6100ca848484610276565b90505b9392505050565b80516100df90610475565b6100ec8160200151610475565b6100f98160400151610475565b6101068160600151610475565b6101138160800151610475565b6101208160a00151610475565b61012d8160c00151610475565b61013a8160e00151610475565b610148816101000151610475565b610156816101200151610475565b610164816101400151610475565b610172816101600151610475565b610180816101800151610475565b61018e816101a0015161020f565b61019c816101c0015161020f565b6101aa816101e0015161020f565b6101b881610200015161020f565b6101c681610220015161020f565b6101d481610240015161020f565b6101e281610260015161020f565b6101f081610280015161020f565b6101fe816102a0015161020f565b61020c816102c0015161020f565b50565b6000805160206122eb8339815191528110806102725760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c64000000000060448201526064015b60405180910390fd5b5050565b6000836020015160071461029d576040516320fa9d8960e11b815260040160405180910390fd5b60006102aa858585610524565b905060006102bb8660000151610a90565b905060006102ce828460a0015188610e6e565b90506102ed604051806040016040528060008152602001600081525090565b604080518082019091526000808252602082015261032287610160015161031d8961018001518860e00151610ece565b610f72565b91506000806103338b88878c611019565b915091506103448161031d84611259565b925061035d8361031d8b61016001518a60a00151610ece565b60a08801516040880151602001519194506000805160206122eb833981519152918290820990508160e08a0151820990506103a18561031d8d610180015184610ece565b9450600060405180608001604052807f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b081526020017f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c181526020017f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e5581526020017f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe48152509050610463878261045689611259565b61045e6112f8565b6113c9565b9e9d5050505050505050505050505050565b805160208201516000917f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd479115901516156104af57505050565b82516020840151826003848585860985090883828309148382108484101616935050508161051f5760405162461bcd60e51b815260206004820152601760248201527f426e3235343a20696e76616c696420473120706f696e740000000000000000006044820152606401610269565b505050565b61056c60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006000805160206122eb8339815191529050604051602081016000815260fe60e01b8152865160c01b6004820152602087015160c01b600c82015261028087015160208201526102a08701516040820152600160608201527f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a60808201527f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02560a08201527f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a60c08201527f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e88160e082015260e087015180516101008301526020810151610120830152506101008701518051610140830152602081015161016083015250610120870151805161018083015260208101516101a08301525061014087015180516101c083015260208101516101e083015250610160870151805161020083015260208101516102208301525061018087015180516102408301526020810151610260830152506101e0870151805161028083015260208101516102a08301525061020087015180516102c083015260208101516102e083015250610220870151805161030083015260208101516103208301525061024087015180516103408301526020810151610360830152506101a0870151805161038083015260208101516103a0830152506101c087015180516103c083015260208101516103e0830152506102608701518051610400830152602081015161042083015250604087015180516104408301526020810151610460830152506060870151805161048083015260208101516104a083015250608087015180516104c083015260208101516104e08301525060a0870151805161050083015260208101516105208301525060c08701518051610540830152602081015161056083015250855161058082015260208601516105a082015260408601516105c082015260608601516105e0820152608086015161060082015260a086015161062082015260c086015161064082015284518051610660830152602081015161068083015250602085015180516106a083015260208101516106c083015250604085015180516106e08301526020810151610700830152506060850151805161072083015260208101516107408301525060808501518051610760830152602081015161078083015250600082526107c08220825282825106606085015260208220825282825106608085015260a085015180518252602081015160208301525060608220808352838106855283818209848282099150806020870152508060408601525060c085015180518252602081015160208301525060e085015180516040830152602081015160608301525061010085015180516080830152602081015160a083015250610120850151805160c0830152602081015160e0830152506101408501518051610100830152602081015161012083015250610160822082528282510660a08501526101a085015181526101c085015160208201526101e085015160408201526102008501516060820152610220850151608082015261024085015160a082015261026085015160c082015261028085015160e08201526102a08501516101008201526102c0850151610120820152610160822082528282510660c08501526101608501518051825260208101516020830152506101808501518051604083015260208101516060830152505060a0812082810660e08501525050509392505050565b610a98611d69565b816201000003610bd7576040518060600160405280601081526020017f30641e0e92bebef818268d663bcad6dbcfd6c0149170f6d7d350b1b1fa6c100181526020016040518060e00160405280600181526020017eeeb2cb5981ed45649abebde081dcff16c8601de4347e7dd1628ba2daac43b781526020017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb81526020017f086812a00ac43ea801669c640171203c41a496671bfbc065ac8db24d52cf31e581526020017f2d965651cdd9e4811f4e51b80ddca8a8b4a93ee17420aae6adaa01c2617c6e8581526020017f12597a56c2e438620b9041b98992ae0d4e705b780057bf7766a2767cece16e1d81526020017f02d94117cd17bcf1290fd67c01155dd40807857dff4a5a0b4dc67befa8aa34fd8152508152509050919050565b816210000003610d17576040518060600160405280601481526020017f30644b6c9c4a72169e4daa317d25f04512ae15c53b34e8f5acd8e155d0a6c10181526020016040518060e00160405280600181526020017f26125da10a0ed06327508aba06d1e303ac616632dbed349f53422da95333785781526020017f2260e724844bca5251829353968e4915305258418357473a5c1d597f613f6cbd81526020017f2087ea2cd664278608fb0ebdb820907f598502c81b6690c185e2bf15cb935f4281526020017f19ddbcaf3a8d46c15c0176fbb5b95e4dc57088ff13f4d1bd84c6bfa57dcdc0e081526020017f05a2c85cfc591789605cae818e37dd4161eef9aa666bec6fe4288d09e6d2341881526020017f11f70e5363258ff4f0d716a653e1dc41f1c64484d7f4b6e219d6377614a3905c8152508152509050919050565b81602003610e55576040518060600160405280600581526020017f2ee12bff4a2813286a8dc388cd754d9a3ef2490635eba50cb9c2e5e75080000181526020016040518060e00160405280600181526020017f09c532c6306b93d29678200d47c0b2a99c18d51b838eeb1d3eed4c533bb512d081526020017f21082ca216cbbf4e1c6e4f4594dd508c996dfbe1174efb98b11509c6e306460b81526020017f1277ae6415f0ef18f2ba5fb162c39eb7311f386e2d26d64401f4a25da77c253b81526020017f2b337de1c8c14f22ec9b9e2f96afef3652627366f8170a0a948dad4ac1bd5e8081526020017f2fbd4dd2976be55d1a163aa9820fb88dfac5ddce77e1872e90632027327a5ebe81526020017f107aab49e65a67f9da9cd2abf78be38bd9dc1d5db39f81de36bcfa5b4b0390438152508152509050919050565b60405163e2ef09e560e01b815260040160405180910390fd5b610e9260405180606001604052806000815260200160008152602001600081525090565b610e9c84846114ad565b808252610eac9085908590611501565b60208201528051610ec290859084908690611575565b60408201529392505050565b6040805180820190915260008082526020820152610eea611d8f565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa90508080610f1c57600080fd5b5080610f6a5760405162461bcd60e51b815260206004820152601960248201527f426e3235343a207363616c6172206d756c206661696c656421000000000000006044820152606401610269565b505092915050565b6040805180820190915260008082526020820152610f8e611dad565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa90508080610fcb57600080fd5b5080610f6a5760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a2067726f7570206164646974696f6e206661696c6564210000006044820152606401610269565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600061104f878787876116cb565b90506000805160206122eb833981519152600061106d888789611b9b565b90506110798183612291565b60c08901516101a0880151919250908190849081908309840892506110a68561031d8a6000015184610ece565b955083828209905083846101c08a01518309840892506110ce8661031d8a6020015184610ece565b955083828209905083846101e08a01518309840892506110f68661031d8a6040015184610ece565b955083828209905083846102008a015183098408925061111e8661031d8a6060015184610ece565b955083828209905083846102208a01518309840892506111468661031d8a6080015184610ece565b955083828209905083846102408a015183098408925061116e8661031d8d6040015184610ece565b955083828209905083846102608a01518309840892506111968661031d8d6060015184610ece565b955083828209905083846102808a01518309840892506111be8661031d8d6080015184610ece565b955083828209905083846102a08a01518309840892506111e68661031d8d60a0015184610ece565b955060008a60e00151905084856102c08b01518309850893506112118761031d8b60a0015184610ece565b9650611248611242604080518082018252600080825260209182015281518083019092526001825260029082015290565b85610ece565b975050505050505094509492505050565b6040805180820190915260008082526020820152815160208301511590151615611281575090565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516112c691906122c8565b6112f0907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47612291565b905292915050565b6113236040518060800160405280600081526020016000815260200160008152602001600081525090565b60405180608001604052807f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed81526020017f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c281526020017f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa81526020017f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b815250905090565b60008060006040518751815260208801516020820152602087015160408201528651606082015260608701516080820152604087015160a0820152855160c0820152602086015160e08201526020850151610100820152845161012082015260608501516101408201526040850151610160820152602060006101808360085afa91505060005191508061149f5760405162461bcd60e51b815260206004820152601c60248201527f426e3235343a2050616972696e6720636865636b206661696c656421000000006044820152606401610269565b50151590505b949350505050565b81516000906000805160206122eb833981519152908380156114f15784935060005b828110156114e5578385860994506001016114cf565b506001840393506114f8565b6001830393505b50505092915050565b600082600103611513575060016100cd565b81600003611523575060006100cd565b60208401516000805160206122eb833981519152906000908281860990508580156115535760018703925061155a565b6001840392505b5061156482611c8b565b915082828209979650505050505050565b60006000805160206122eb8339815191528282036115f257600160005b60078110156115e6578186036115c3578681600781106115b4576115b461227b565b602002015193505050506114a5565b82806115d1576115d16122b2565b60408901516020015183099150600101611592565b506000925050506114a5565b6115fa611dcb565b6040870151600160c0838101828152920190805b600781101561163b5760208403935085868a85518903088309808552601f1990930192915060010161160e565b50505050600080600090506001838960408c015160005b6007811015611692578882518a85518c88518a0909098981880896505088898d84518c030886099450602093840193928301929190910190600101611652565b505050508092505060006116a583611c8b565b905060208a015185818909965050848187099550848287099a9950505050505050505050565b604080518082019091526000808252602082015260008060008060006000805160206122eb833981519152905060808901518160208a015160208c0151099550895194508160a08b015160608c0151099350816101a089015185089250818184089250818584099450817f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a85099250816101c089015184089250818184089250818584099450817f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02585099250816101e089015184089250818184089250818584099450817f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a850992508161020089015184089250818184089250818584099450817f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e8818509925081610220890151840892508181840892505080848309935080848608945061183d8760a0015186610ece565b9550885160608a015160808b0151838284099750836102c08b015189099750836102408b015183099550836101a08b015187089550838187089550838689099750836102608b015183099550836101c08b015187089550838187089550838689099750836102808b015183099550836101e08b015187089550838187089550838689099750836102a08b015183099550836102008b0151870895508381870895505050508083860994506119048661031d8c60c0015188856118ff9190612291565b610ece565b955061191d8661031d8c60e001518a6101a00151610ece565b95506119378661031d8c61010001518a6101c00151610ece565b95506119518661031d8c61012001518a6101e00151610ece565b955061196b8661031d8c61014001518a6102000151610ece565b9550806101c08801516101a08901510992506119908661031d8c610160015186610ece565b9550806102008801516101e08901510992506119b58661031d8c610180015186610ece565b95506101a087015192508083840991508082830991508082840992506119e48661031d8c6101e0015186610ece565b95506101c08701519250808384099150808283099150808284099250611a138661031d8c610200015186610ece565b95506101e08701519250808384099150808283099150808284099250611a428661031d8c610220015186610ece565b95506102008701519250808384099150808283099150808284099250611a718661031d8c610240015186610ece565b9550611a8e8661031d8c6101a001516118ff8b6102200151611d31565b9550611a9f868b6101c00151610f72565b9550806101c08801516101a0890151099250806101e08801518409925080610200880151840992508061022088015184099250611ae58661031d8c610260015186610ece565b9550611af48860000151611d31565b9450611b088661031d8960c0015188610ece565b955080600189510860a08a0151909350819080099150808284099250808386099450611b3c8661031d8960e0015188610ece565b9550808386099450611b578661031d89610100015188610ece565b9550808386099450611b728661031d89610120015188610ece565b9550808386099450611b8d8661031d89610140015188610ece565b9a9950505050505050505050565b6000806000805160206122eb8339815191529050600083602001519050600084604001519050600060019050606088015160808901516101a08901516102408a01518788898387098a868608088609945050506101c08901516102608a01518788898387098a868608088609945050506101e08901516102808a01518788898387098a868608088609945050506102008901516102a08a01518788898387098a8686080886099450505061022089015191506102c0890151868782898587080985099350505050875160208901518586868309870385089650508485838309860387089998505050505050505050565b60008060006000805160206122eb833981519152905060405160208152602080820152602060408201528460608201526002820360808201528160a08201526020600060c08360055afa925050600051925081611d2a5760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a20706f7720707265636f6d70696c65206661696c6564210000006044820152606401610269565b5050919050565b6000611d4b6000805160206122eb833981519152836122c8565b611d63906000805160206122eb833981519152612291565b92915050565b60405180606001604052806000815260200160008152602001611d8a611dcb565b905290565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b6040516102e0810167ffffffffffffffff81118282101715611e2357611e23611de9565b60405290565b6040516102c0810167ffffffffffffffff81118282101715611e2357611e23611de9565b600060408284031215611e5f57600080fd5b6040516040810181811067ffffffffffffffff82111715611e8257611e82611de9565b604052823581526020928301359281019290925250919050565b600082601f830112611ead57600080fd5b60405160e0810181811067ffffffffffffffff82111715611ed057611ed0611de9565b6040528060e0840185811115611ee557600080fd5b845b81811015611eff578035835260209283019201611ee7565b509195945050505050565b60006104808284031215611f1d57600080fd5b611f25611dff565b9050611f318383611e4d565b8152611f408360408401611e4d565b6020820152611f528360808401611e4d565b6040820152611f648360c08401611e4d565b6060820152610100611f7884828501611e4d565b6080830152610140611f8c85828601611e4d565b60a0840152610180611fa086828701611e4d565b60c08501526101c0611fb487828801611e4d565b60e0860152610200611fc888828901611e4d565b858701526102409450611fdd88868901611e4d565b610120870152610280611ff289828a01611e4d565b858801526102c0945061200789868a01611e4d565b61016088015261201b896103008a01611e4d565b848801526103408801356101a0880152610360880135838801526103808801356101e08801526103a0880135828801526103c08801356102208801526103e08801358688015261040088013561026088015261042088013581880152505050506104408401356102a084015261046084013581840152505092915050565b6000806000838503610a608112156120b057600080fd5b610500808212156120c057600080fd5b6120c8611e29565b915085358252602086013560208301526120e58760408801611e4d565b60408301526120f78760808801611e4d565b60608301526121098760c08801611e4d565b608083015261010061211d88828901611e4d565b60a084015261014061213189828a01611e4d565b60c08501526101806121458a828b01611e4d565b60e08601526101c06121598b828c01611e4d565b84870152610200935061216e8b858c01611e4d565b6101208701526102406121838c828d01611e4d565b8488015261028093506121988c858d01611e4d565b6101608801526121ac8c6102c08d01611e4d565b838801526121be8c6103008d01611e4d565b6101a08801526121d28c6103408d01611e4d565b828801526121e48c6103808d01611e4d565b6101e08801526121f88c6103c08d01611e4d565b8588015261220a8c6104008d01611e4d565b61022088015261221e8c6104408d01611e4d565b81880152505050612233896104808a01611e4d565b6102608501526104c08801358185015250506104e08601356102a083015281945061226087828801611e9c565b93505050612272856105e08601611f0a565b90509250925092565b634e487b7160e01b600052603260045260246000fd5b81810381811115611d6357634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6000826122e557634e487b7160e01b600052601260045260246000fd5b50069056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a164736f6c6343000817000a", + "nonce": "0x792", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [], + "pending": [], + "returns": { + "contractAddress": { + "internal_type": "address", + "value": "0x9505E8B8546cC9015B2c015826d25821CC48C153" + } + }, + "timestamp": 1736544888, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736545062.json b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736545062.json new file mode 100644 index 0000000000..8c197ed649 --- /dev/null +++ b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736545062.json @@ -0,0 +1,34 @@ +{ + "transactions": [ + { + "hash": null, + "transactionType": "CREATE", + "contractName": "PlonkVerifier", + "contractAddress": "0x9505e8b8546cc9015b2c015826d25821cc48c153", + "function": null, + "arguments": null, + "transaction": { + "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "gas": "0x27e2e0", + "value": "0x0", + "input": "0x61231761003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063ce537a771461003a575b600080fd5b61004d610048366004612099565b610061565b604051901515815260200160405180910390f35b600061006c826100d4565b61007d8360005b602002015161020f565b610088836001610073565b610093836002610073565b61009e836003610073565b6100a9836004610073565b6100b4836005610073565b6100bf836006610073565b6100ca848484610276565b90505b9392505050565b80516100df90610475565b6100ec8160200151610475565b6100f98160400151610475565b6101068160600151610475565b6101138160800151610475565b6101208160a00151610475565b61012d8160c00151610475565b61013a8160e00151610475565b610148816101000151610475565b610156816101200151610475565b610164816101400151610475565b610172816101600151610475565b610180816101800151610475565b61018e816101a0015161020f565b61019c816101c0015161020f565b6101aa816101e0015161020f565b6101b881610200015161020f565b6101c681610220015161020f565b6101d481610240015161020f565b6101e281610260015161020f565b6101f081610280015161020f565b6101fe816102a0015161020f565b61020c816102c0015161020f565b50565b6000805160206122eb8339815191528110806102725760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c64000000000060448201526064015b60405180910390fd5b5050565b6000836020015160071461029d576040516320fa9d8960e11b815260040160405180910390fd5b60006102aa858585610524565b905060006102bb8660000151610a90565b905060006102ce828460a0015188610e6e565b90506102ed604051806040016040528060008152602001600081525090565b604080518082019091526000808252602082015261032287610160015161031d8961018001518860e00151610ece565b610f72565b91506000806103338b88878c611019565b915091506103448161031d84611259565b925061035d8361031d8b61016001518a60a00151610ece565b60a08801516040880151602001519194506000805160206122eb833981519152918290820990508160e08a0151820990506103a18561031d8d610180015184610ece565b9450600060405180608001604052807f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b081526020017f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c181526020017f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e5581526020017f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe48152509050610463878261045689611259565b61045e6112f8565b6113c9565b9e9d5050505050505050505050505050565b805160208201516000917f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd479115901516156104af57505050565b82516020840151826003848585860985090883828309148382108484101616935050508161051f5760405162461bcd60e51b815260206004820152601760248201527f426e3235343a20696e76616c696420473120706f696e740000000000000000006044820152606401610269565b505050565b61056c60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006000805160206122eb8339815191529050604051602081016000815260fe60e01b8152865160c01b6004820152602087015160c01b600c82015261028087015160208201526102a08701516040820152600160608201527f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a60808201527f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02560a08201527f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a60c08201527f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e88160e082015260e087015180516101008301526020810151610120830152506101008701518051610140830152602081015161016083015250610120870151805161018083015260208101516101a08301525061014087015180516101c083015260208101516101e083015250610160870151805161020083015260208101516102208301525061018087015180516102408301526020810151610260830152506101e0870151805161028083015260208101516102a08301525061020087015180516102c083015260208101516102e083015250610220870151805161030083015260208101516103208301525061024087015180516103408301526020810151610360830152506101a0870151805161038083015260208101516103a0830152506101c087015180516103c083015260208101516103e0830152506102608701518051610400830152602081015161042083015250604087015180516104408301526020810151610460830152506060870151805161048083015260208101516104a083015250608087015180516104c083015260208101516104e08301525060a0870151805161050083015260208101516105208301525060c08701518051610540830152602081015161056083015250855161058082015260208601516105a082015260408601516105c082015260608601516105e0820152608086015161060082015260a086015161062082015260c086015161064082015284518051610660830152602081015161068083015250602085015180516106a083015260208101516106c083015250604085015180516106e08301526020810151610700830152506060850151805161072083015260208101516107408301525060808501518051610760830152602081015161078083015250600082526107c08220825282825106606085015260208220825282825106608085015260a085015180518252602081015160208301525060608220808352838106855283818209848282099150806020870152508060408601525060c085015180518252602081015160208301525060e085015180516040830152602081015160608301525061010085015180516080830152602081015160a083015250610120850151805160c0830152602081015160e0830152506101408501518051610100830152602081015161012083015250610160822082528282510660a08501526101a085015181526101c085015160208201526101e085015160408201526102008501516060820152610220850151608082015261024085015160a082015261026085015160c082015261028085015160e08201526102a08501516101008201526102c0850151610120820152610160822082528282510660c08501526101608501518051825260208101516020830152506101808501518051604083015260208101516060830152505060a0812082810660e08501525050509392505050565b610a98611d69565b816201000003610bd7576040518060600160405280601081526020017f30641e0e92bebef818268d663bcad6dbcfd6c0149170f6d7d350b1b1fa6c100181526020016040518060e00160405280600181526020017eeeb2cb5981ed45649abebde081dcff16c8601de4347e7dd1628ba2daac43b781526020017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb81526020017f086812a00ac43ea801669c640171203c41a496671bfbc065ac8db24d52cf31e581526020017f2d965651cdd9e4811f4e51b80ddca8a8b4a93ee17420aae6adaa01c2617c6e8581526020017f12597a56c2e438620b9041b98992ae0d4e705b780057bf7766a2767cece16e1d81526020017f02d94117cd17bcf1290fd67c01155dd40807857dff4a5a0b4dc67befa8aa34fd8152508152509050919050565b816210000003610d17576040518060600160405280601481526020017f30644b6c9c4a72169e4daa317d25f04512ae15c53b34e8f5acd8e155d0a6c10181526020016040518060e00160405280600181526020017f26125da10a0ed06327508aba06d1e303ac616632dbed349f53422da95333785781526020017f2260e724844bca5251829353968e4915305258418357473a5c1d597f613f6cbd81526020017f2087ea2cd664278608fb0ebdb820907f598502c81b6690c185e2bf15cb935f4281526020017f19ddbcaf3a8d46c15c0176fbb5b95e4dc57088ff13f4d1bd84c6bfa57dcdc0e081526020017f05a2c85cfc591789605cae818e37dd4161eef9aa666bec6fe4288d09e6d2341881526020017f11f70e5363258ff4f0d716a653e1dc41f1c64484d7f4b6e219d6377614a3905c8152508152509050919050565b81602003610e55576040518060600160405280600581526020017f2ee12bff4a2813286a8dc388cd754d9a3ef2490635eba50cb9c2e5e75080000181526020016040518060e00160405280600181526020017f09c532c6306b93d29678200d47c0b2a99c18d51b838eeb1d3eed4c533bb512d081526020017f21082ca216cbbf4e1c6e4f4594dd508c996dfbe1174efb98b11509c6e306460b81526020017f1277ae6415f0ef18f2ba5fb162c39eb7311f386e2d26d64401f4a25da77c253b81526020017f2b337de1c8c14f22ec9b9e2f96afef3652627366f8170a0a948dad4ac1bd5e8081526020017f2fbd4dd2976be55d1a163aa9820fb88dfac5ddce77e1872e90632027327a5ebe81526020017f107aab49e65a67f9da9cd2abf78be38bd9dc1d5db39f81de36bcfa5b4b0390438152508152509050919050565b60405163e2ef09e560e01b815260040160405180910390fd5b610e9260405180606001604052806000815260200160008152602001600081525090565b610e9c84846114ad565b808252610eac9085908590611501565b60208201528051610ec290859084908690611575565b60408201529392505050565b6040805180820190915260008082526020820152610eea611d8f565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa90508080610f1c57600080fd5b5080610f6a5760405162461bcd60e51b815260206004820152601960248201527f426e3235343a207363616c6172206d756c206661696c656421000000000000006044820152606401610269565b505092915050565b6040805180820190915260008082526020820152610f8e611dad565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa90508080610fcb57600080fd5b5080610f6a5760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a2067726f7570206164646974696f6e206661696c6564210000006044820152606401610269565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600061104f878787876116cb565b90506000805160206122eb833981519152600061106d888789611b9b565b90506110798183612291565b60c08901516101a0880151919250908190849081908309840892506110a68561031d8a6000015184610ece565b955083828209905083846101c08a01518309840892506110ce8661031d8a6020015184610ece565b955083828209905083846101e08a01518309840892506110f68661031d8a6040015184610ece565b955083828209905083846102008a015183098408925061111e8661031d8a6060015184610ece565b955083828209905083846102208a01518309840892506111468661031d8a6080015184610ece565b955083828209905083846102408a015183098408925061116e8661031d8d6040015184610ece565b955083828209905083846102608a01518309840892506111968661031d8d6060015184610ece565b955083828209905083846102808a01518309840892506111be8661031d8d6080015184610ece565b955083828209905083846102a08a01518309840892506111e68661031d8d60a0015184610ece565b955060008a60e00151905084856102c08b01518309850893506112118761031d8b60a0015184610ece565b9650611248611242604080518082018252600080825260209182015281518083019092526001825260029082015290565b85610ece565b975050505050505094509492505050565b6040805180820190915260008082526020820152815160208301511590151615611281575090565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516112c691906122c8565b6112f0907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47612291565b905292915050565b6113236040518060800160405280600081526020016000815260200160008152602001600081525090565b60405180608001604052807f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed81526020017f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c281526020017f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa81526020017f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b815250905090565b60008060006040518751815260208801516020820152602087015160408201528651606082015260608701516080820152604087015160a0820152855160c0820152602086015160e08201526020850151610100820152845161012082015260608501516101408201526040850151610160820152602060006101808360085afa91505060005191508061149f5760405162461bcd60e51b815260206004820152601c60248201527f426e3235343a2050616972696e6720636865636b206661696c656421000000006044820152606401610269565b50151590505b949350505050565b81516000906000805160206122eb833981519152908380156114f15784935060005b828110156114e5578385860994506001016114cf565b506001840393506114f8565b6001830393505b50505092915050565b600082600103611513575060016100cd565b81600003611523575060006100cd565b60208401516000805160206122eb833981519152906000908281860990508580156115535760018703925061155a565b6001840392505b5061156482611c8b565b915082828209979650505050505050565b60006000805160206122eb8339815191528282036115f257600160005b60078110156115e6578186036115c3578681600781106115b4576115b461227b565b602002015193505050506114a5565b82806115d1576115d16122b2565b60408901516020015183099150600101611592565b506000925050506114a5565b6115fa611dcb565b6040870151600160c0838101828152920190805b600781101561163b5760208403935085868a85518903088309808552601f1990930192915060010161160e565b50505050600080600090506001838960408c015160005b6007811015611692578882518a85518c88518a0909098981880896505088898d84518c030886099450602093840193928301929190910190600101611652565b505050508092505060006116a583611c8b565b905060208a015185818909965050848187099550848287099a9950505050505050505050565b604080518082019091526000808252602082015260008060008060006000805160206122eb833981519152905060808901518160208a015160208c0151099550895194508160a08b015160608c0151099350816101a089015185089250818184089250818584099450817f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a85099250816101c089015184089250818184089250818584099450817f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02585099250816101e089015184089250818184089250818584099450817f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a850992508161020089015184089250818184089250818584099450817f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e8818509925081610220890151840892508181840892505080848309935080848608945061183d8760a0015186610ece565b9550885160608a015160808b0151838284099750836102c08b015189099750836102408b015183099550836101a08b015187089550838187089550838689099750836102608b015183099550836101c08b015187089550838187089550838689099750836102808b015183099550836101e08b015187089550838187089550838689099750836102a08b015183099550836102008b0151870895508381870895505050508083860994506119048661031d8c60c0015188856118ff9190612291565b610ece565b955061191d8661031d8c60e001518a6101a00151610ece565b95506119378661031d8c61010001518a6101c00151610ece565b95506119518661031d8c61012001518a6101e00151610ece565b955061196b8661031d8c61014001518a6102000151610ece565b9550806101c08801516101a08901510992506119908661031d8c610160015186610ece565b9550806102008801516101e08901510992506119b58661031d8c610180015186610ece565b95506101a087015192508083840991508082830991508082840992506119e48661031d8c6101e0015186610ece565b95506101c08701519250808384099150808283099150808284099250611a138661031d8c610200015186610ece565b95506101e08701519250808384099150808283099150808284099250611a428661031d8c610220015186610ece565b95506102008701519250808384099150808283099150808284099250611a718661031d8c610240015186610ece565b9550611a8e8661031d8c6101a001516118ff8b6102200151611d31565b9550611a9f868b6101c00151610f72565b9550806101c08801516101a0890151099250806101e08801518409925080610200880151840992508061022088015184099250611ae58661031d8c610260015186610ece565b9550611af48860000151611d31565b9450611b088661031d8960c0015188610ece565b955080600189510860a08a0151909350819080099150808284099250808386099450611b3c8661031d8960e0015188610ece565b9550808386099450611b578661031d89610100015188610ece565b9550808386099450611b728661031d89610120015188610ece565b9550808386099450611b8d8661031d89610140015188610ece565b9a9950505050505050505050565b6000806000805160206122eb8339815191529050600083602001519050600084604001519050600060019050606088015160808901516101a08901516102408a01518788898387098a868608088609945050506101c08901516102608a01518788898387098a868608088609945050506101e08901516102808a01518788898387098a868608088609945050506102008901516102a08a01518788898387098a8686080886099450505061022089015191506102c0890151868782898587080985099350505050875160208901518586868309870385089650508485838309860387089998505050505050505050565b60008060006000805160206122eb833981519152905060405160208152602080820152602060408201528460608201526002820360808201528160a08201526020600060c08360055afa925050600051925081611d2a5760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a20706f7720707265636f6d70696c65206661696c6564210000006044820152606401610269565b5050919050565b6000611d4b6000805160206122eb833981519152836122c8565b611d63906000805160206122eb833981519152612291565b92915050565b60405180606001604052806000815260200160008152602001611d8a611dcb565b905290565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b6040516102e0810167ffffffffffffffff81118282101715611e2357611e23611de9565b60405290565b6040516102c0810167ffffffffffffffff81118282101715611e2357611e23611de9565b600060408284031215611e5f57600080fd5b6040516040810181811067ffffffffffffffff82111715611e8257611e82611de9565b604052823581526020928301359281019290925250919050565b600082601f830112611ead57600080fd5b60405160e0810181811067ffffffffffffffff82111715611ed057611ed0611de9565b6040528060e0840185811115611ee557600080fd5b845b81811015611eff578035835260209283019201611ee7565b509195945050505050565b60006104808284031215611f1d57600080fd5b611f25611dff565b9050611f318383611e4d565b8152611f408360408401611e4d565b6020820152611f528360808401611e4d565b6040820152611f648360c08401611e4d565b6060820152610100611f7884828501611e4d565b6080830152610140611f8c85828601611e4d565b60a0840152610180611fa086828701611e4d565b60c08501526101c0611fb487828801611e4d565b60e0860152610200611fc888828901611e4d565b858701526102409450611fdd88868901611e4d565b610120870152610280611ff289828a01611e4d565b858801526102c0945061200789868a01611e4d565b61016088015261201b896103008a01611e4d565b848801526103408801356101a0880152610360880135838801526103808801356101e08801526103a0880135828801526103c08801356102208801526103e08801358688015261040088013561026088015261042088013581880152505050506104408401356102a084015261046084013581840152505092915050565b6000806000838503610a608112156120b057600080fd5b610500808212156120c057600080fd5b6120c8611e29565b915085358252602086013560208301526120e58760408801611e4d565b60408301526120f78760808801611e4d565b60608301526121098760c08801611e4d565b608083015261010061211d88828901611e4d565b60a084015261014061213189828a01611e4d565b60c08501526101806121458a828b01611e4d565b60e08601526101c06121598b828c01611e4d565b84870152610200935061216e8b858c01611e4d565b6101208701526102406121838c828d01611e4d565b8488015261028093506121988c858d01611e4d565b6101608801526121ac8c6102c08d01611e4d565b838801526121be8c6103008d01611e4d565b6101a08801526121d28c6103408d01611e4d565b828801526121e48c6103808d01611e4d565b6101e08801526121f88c6103c08d01611e4d565b8588015261220a8c6104008d01611e4d565b61022088015261221e8c6104408d01611e4d565b81880152505050612233896104808a01611e4d565b6102608501526104c08801358185015250506104e08601356102a083015281945061226087828801611e9c565b93505050612272856105e08601611f0a565b90509250925092565b634e487b7160e01b600052603260045260246000fd5b81810381811115611d6357634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6000826122e557634e487b7160e01b600052601260045260246000fd5b50069056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a164736f6c6343000817000a", + "nonce": "0x792", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [], + "pending": [], + "returns": { + "contractAddress": { + "internal_type": "address", + "value": "0x9505E8B8546cC9015B2c015826d25821CC48C153" + } + }, + "timestamp": 1736545062, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736600901.json b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736600901.json new file mode 100644 index 0000000000..39964334a1 --- /dev/null +++ b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736600901.json @@ -0,0 +1,34 @@ +{ + "transactions": [ + { + "hash": null, + "transactionType": "CREATE", + "contractName": "PlonkVerifier", + "contractAddress": "0xb4f34879c2c3db50934e5069ce01fd5ece3aa051", + "function": null, + "arguments": null, + "transaction": { + "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", + "gas": "0x298398", + "value": "0x0", + "input": "0x6122a4610035600b8282823980515f1a60731461002957634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe7300000000000000000000000000000000000000003014608060405260043610610034575f3560e01c8063ce537a7714610038575b5f80fd5b61004b610046366004612033565b61005f565b604051901515815260200160405180910390f35b5f610069826100d0565b610079835f5b602002015161020b565b61008483600161006f565b61008f83600261006f565b61009a83600361006f565b6100a583600461006f565b6100b083600561006f565b6100bb83600661006f565b6100c6848484610271565b90505b9392505050565b80516100db90610465565b6100e88160200151610465565b6100f58160400151610465565b6101028160600151610465565b61010f8160800151610465565b61011c8160a00151610465565b6101298160c00151610465565b6101368160e00151610465565b610144816101000151610465565b610152816101200151610465565b610160816101400151610465565b61016e816101600151610465565b61017c816101800151610465565b61018a816101a0015161020b565b610198816101c0015161020b565b6101a6816101e0015161020b565b6101b481610200015161020b565b6101c281610220015161020b565b6101d081610240015161020b565b6101de81610260015161020b565b6101ec81610280015161020b565b6101fa816102a0015161020b565b610208816102c0015161020b565b50565b5f8051602061227883398151915281108061026d5760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c64000000000060448201526064015b60405180910390fd5b5050565b5f8360200151600714610297576040516320fa9d8960e11b815260040160405180910390fd5b5f6102a3858585610513565b90505f6102b2865f0151610a73565b90505f6102c4828460a0015188610e51565b90506102e160405180604001604052805f81526020015f81525090565b604080518082019091525f80825260208201526103158761016001516103108961018001518860e00151610eae565b610f4f565b91505f806103258b88878c610ff3565b91509150610336816103108461122b565b925061034f836103108b61016001518a60a00151610eae565b60a08801516040880151602001519194505f80516020612278833981519152918290820990508160e08a015182099050610392856103108d610180015184610eae565b94505f60405180608001604052807f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b081526020017f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c181526020017f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e5581526020017f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe4815250905061045387826104468961122b565b61044e6112c8565b611395565b9e9d5050505050505050505050505050565b805160208201515f917f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4791159015161561049e57505050565b82516020840151826003848585860985090883828309148382108484101616935050508161050e5760405162461bcd60e51b815260206004820152601760248201527f426e3235343a20696e76616c696420473120706f696e740000000000000000006044820152606401610264565b505050565b6105536040518061010001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f5f805160206122788339815191529050604051602081015f815260fe60e01b8152865160c01b6004820152602087015160c01b600c82015261028087015160208201526102a08701516040820152600160608201527f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a60808201527f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02560a08201527f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a60c08201527f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e88160e082015260e087015180516101008301526020810151610120830152506101008701518051610140830152602081015161016083015250610120870151805161018083015260208101516101a08301525061014087015180516101c083015260208101516101e083015250610160870151805161020083015260208101516102208301525061018087015180516102408301526020810151610260830152506101e0870151805161028083015260208101516102a08301525061020087015180516102c083015260208101516102e083015250610220870151805161030083015260208101516103208301525061024087015180516103408301526020810151610360830152506101a0870151805161038083015260208101516103a0830152506101c087015180516103c083015260208101516103e0830152506102608701518051610400830152602081015161042083015250604087015180516104408301526020810151610460830152506060870151805161048083015260208101516104a083015250608087015180516104c083015260208101516104e08301525060a0870151805161050083015260208101516105208301525060c08701518051610540830152602081015161056083015250855161058082015260208601516105a082015260408601516105c082015260608601516105e0820152608086015161060082015260a086015161062082015260c086015161064082015284518051610660830152602081015161068083015250602085015180516106a083015260208101516106c083015250604085015180516106e083015260208101516107008301525060608501518051610720830152602081015161074083015250608085015180516107608301526020810151610780830152505f82526107c08220825282825106606085015260208220825282825106608085015260a085015180518252602081015160208301525060608220808352838106855283818209848282099150806020870152508060408601525060c085015180518252602081015160208301525060e085015180516040830152602081015160608301525061010085015180516080830152602081015160a083015250610120850151805160c0830152602081015160e0830152506101408501518051610100830152602081015161012083015250610160822082528282510660a08501526101a085015181526101c085015160208201526101e085015160408201526102008501516060820152610220850151608082015261024085015160a082015261026085015160c082015261028085015160e08201526102a08501516101008201526102c0850151610120820152610160822082528282510660c08501526101608501518051825260208101516020830152506101808501518051604083015260208101516060830152505060a0812082810660e08501525050509392505050565b610a7b611d0e565b816201000003610bba576040518060600160405280601081526020017f30641e0e92bebef818268d663bcad6dbcfd6c0149170f6d7d350b1b1fa6c100181526020016040518060e00160405280600181526020017eeeb2cb5981ed45649abebde081dcff16c8601de4347e7dd1628ba2daac43b781526020017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb81526020017f086812a00ac43ea801669c640171203c41a496671bfbc065ac8db24d52cf31e581526020017f2d965651cdd9e4811f4e51b80ddca8a8b4a93ee17420aae6adaa01c2617c6e8581526020017f12597a56c2e438620b9041b98992ae0d4e705b780057bf7766a2767cece16e1d81526020017f02d94117cd17bcf1290fd67c01155dd40807857dff4a5a0b4dc67befa8aa34fd8152508152509050919050565b816210000003610cfa576040518060600160405280601481526020017f30644b6c9c4a72169e4daa317d25f04512ae15c53b34e8f5acd8e155d0a6c10181526020016040518060e00160405280600181526020017f26125da10a0ed06327508aba06d1e303ac616632dbed349f53422da95333785781526020017f2260e724844bca5251829353968e4915305258418357473a5c1d597f613f6cbd81526020017f2087ea2cd664278608fb0ebdb820907f598502c81b6690c185e2bf15cb935f4281526020017f19ddbcaf3a8d46c15c0176fbb5b95e4dc57088ff13f4d1bd84c6bfa57dcdc0e081526020017f05a2c85cfc591789605cae818e37dd4161eef9aa666bec6fe4288d09e6d2341881526020017f11f70e5363258ff4f0d716a653e1dc41f1c64484d7f4b6e219d6377614a3905c8152508152509050919050565b81602003610e38576040518060600160405280600581526020017f2ee12bff4a2813286a8dc388cd754d9a3ef2490635eba50cb9c2e5e75080000181526020016040518060e00160405280600181526020017f09c532c6306b93d29678200d47c0b2a99c18d51b838eeb1d3eed4c533bb512d081526020017f21082ca216cbbf4e1c6e4f4594dd508c996dfbe1174efb98b11509c6e306460b81526020017f1277ae6415f0ef18f2ba5fb162c39eb7311f386e2d26d64401f4a25da77c253b81526020017f2b337de1c8c14f22ec9b9e2f96afef3652627366f8170a0a948dad4ac1bd5e8081526020017f2fbd4dd2976be55d1a163aa9820fb88dfac5ddce77e1872e90632027327a5ebe81526020017f107aab49e65a67f9da9cd2abf78be38bd9dc1d5db39f81de36bcfa5b4b0390438152508152509050919050565b60405163e2ef09e560e01b815260040160405180910390fd5b610e7260405180606001604052805f81526020015f81526020015f81525090565b610e7c8484611475565b808252610e8c90859085906114c6565b60208201528051610ea290859084908690611535565b60408201529392505050565b604080518082019091525f8082526020820152610ec9611d32565b8351815260208085015190820152604081018390525f60608360808460076107d05a03fa90508080610ef9575f80fd5b5080610f475760405162461bcd60e51b815260206004820152601960248201527f426e3235343a207363616c6172206d756c206661696c656421000000000000006044820152606401610264565b505092915050565b604080518082019091525f8082526020820152610f6a611d50565b8351815260208085015181830152835160408301528301516060808301919091525f908360c08460066107d05a03fa90508080610fa5575f80fd5b5080610f475760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a2067726f7570206164646974696f6e206661696c6564210000006044820152606401610264565b604080518082019091525f8082526020820152604080518082019091525f80825260208201525f61102687878787611683565b90505f805160206122788339815191525f611042888789611b4d565b905061104e8183612225565b60c08901516101a08801519192509081908490819083098408925061107a856103108a5f015184610eae565b955083828209905083846101c08a01518309840892506110a2866103108a6020015184610eae565b955083828209905083846101e08a01518309840892506110ca866103108a6040015184610eae565b955083828209905083846102008a01518309840892506110f2866103108a6060015184610eae565b955083828209905083846102208a015183098408925061111a866103108a6080015184610eae565b955083828209905083846102408a0151830984089250611142866103108d6040015184610eae565b955083828209905083846102608a015183098408925061116a866103108d6060015184610eae565b955083828209905083846102808a0151830984089250611192866103108d6080015184610eae565b955083828209905083846102a08a01518309840892506111ba866103108d60a0015184610eae565b95505f8a60e00151905084856102c08b01518309850893506111e4876103108b60a0015184610eae565b965061121a6112146040805180820182525f80825260209182015281518083019092526001825260029082015290565b85610eae565b975050505050505094509492505050565b604080518082019091525f8082526020820152815160208301511590151615611252575090565b6040518060400160405280835f015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516112969190612258565b6112c0907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47612225565b905292915050565b6112ef60405180608001604052805f81526020015f81526020015f81526020015f81525090565b60405180608001604052807f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed81526020017f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c281526020017f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa81526020017f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b815250905090565b5f805f6040518751815260208801516020820152602087015160408201528651606082015260608701516080820152604087015160a0820152855160c0820152602086015160e0820152602085015161010082015284516101208201526060850151610140820152604085015161016082015260205f6101808360085afa9150505f519150806114675760405162461bcd60e51b815260206004820152601c60248201527f426e3235343a2050616972696e6720636865636b206661696c656421000000006044820152606401610264565b50151590505b949350505050565b81515f905f80516020612278833981519152908380156114b6578493505f5b828110156114aa57838586099450600101611494565b506001840393506114bd565b6001830393505b50505092915050565b5f826001036114d7575060016100c9565b815f036114e557505f6100c9565b60208401515f80516020612278833981519152905f908281860990508580156115135760018703925061151a565b6001840392505b5061152482611c38565b915082828209979650505050505050565b5f5f805160206122788339815191528282036115ae5760015f5b60078110156115a3578186036115805786816007811061157157611571612211565b6020020151935050505061146d565b828061158e5761158e612244565b6040890151602001518309915060010161154f565b505f9250505061146d565b6115b6611d6e565b6040870151600160c0838101828152920190805b60078110156115f75760208403935085868a85518903088309808552601f199093019291506001016115ca565b505050505f805f90506001838960408c01515f5b600781101561164b578882518a85518c88518a0909098981880896505088898d84518c03088609945060209384019392830192919091019060010161160b565b50505050809250505f61165d83611c38565b905060208a015185818909965050848187099550848287099a9950505050505050505050565b604080518082019091525f80825260208201525f805f805f5f80516020612278833981519152905060808901518160208a015160208c0151099550895194508160a08b015160608c0151099350816101a089015185089250818184089250818584099450817f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a85099250816101c089015184089250818184089250818584099450817f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02585099250816101e089015184089250818184089250818584099450817f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a850992508161020089015184089250818184089250818584099450817f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e881850992508161022089015184089250818184089250508084830993508084860894506117f08760a0015186610eae565b9550885160608a015160808b0151838284099750836102c08b015189099750836102408b015183099550836101a08b015187089550838187089550838689099750836102608b015183099550836101c08b015187089550838187089550838689099750836102808b015183099550836101e08b015187089550838187089550838689099750836102a08b015183099550836102008b0151870895508381870895505050508083860994506118b7866103108c60c0015188856118b29190612225565b610eae565b95506118d0866103108c60e001518a6101a00151610eae565b95506118ea866103108c61010001518a6101c00151610eae565b9550611904866103108c61012001518a6101e00151610eae565b955061191e866103108c61014001518a6102000151610eae565b9550806101c08801516101a0890151099250611943866103108c610160015186610eae565b9550806102008801516101e0890151099250611968866103108c610180015186610eae565b95506101a08701519250808384099150808283099150808284099250611997866103108c6101e0015186610eae565b95506101c087015192508083840991508082830991508082840992506119c6866103108c610200015186610eae565b95506101e087015192508083840991508082830991508082840992506119f5866103108c610220015186610eae565b95506102008701519250808384099150808283099150808284099250611a24866103108c610240015186610eae565b9550611a41866103108c6101a001516118b28b6102200151611cd9565b9550611a52868b6101c00151610f4f565b9550806101c08801516101a0890151099250806101e08801518409925080610200880151840992508061022088015184099250611a98866103108c610260015186610eae565b9550611aa6885f0151611cd9565b9450611aba866103108960c0015188610eae565b955080600189510860a08a0151909350819080099150808284099250808386099450611aee866103108960e0015188610eae565b9550808386099450611b098661031089610100015188610eae565b9550808386099450611b248661031089610120015188610eae565b9550808386099450611b3f8661031089610140015188610eae565b9a9950505050505050505050565b5f805f8051602061227883398151915290505f836020015190505f846040015190505f60019050606088015160808901516101a08901516102408a01518788898387098a868608088609945050506101c08901516102608a01518788898387098a868608088609945050506101e08901516102808a01518788898387098a868608088609945050506102008901516102a08a01518788898387098a8686080886099450505061022089015191506102c0890151868782898587080985099350505050875160208901518586868309870385089650508485838309860387089998505050505050505050565b5f805f5f80516020612278833981519152905060405160208152602080820152602060408201528460608201526002820360808201528160a082015260205f60c08360055afa9250505f51925081611cd25760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a20706f7720707265636f6d70696c65206661696c6564210000006044820152606401610264565b5050919050565b5f611cf15f8051602061227883398151915283612258565b611d08905f80516020612278833981519152612225565b92915050565b60405180606001604052805f81526020015f8152602001611d2d611d6e565b905290565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b634e487b7160e01b5f52604160045260245ffd5b6040516102e0810167ffffffffffffffff81118282101715611dc457611dc4611d8c565b60405290565b6040516102c0810167ffffffffffffffff81118282101715611dc457611dc4611d8c565b5f60408284031215611dfe575f80fd5b6040516040810181811067ffffffffffffffff82111715611e2157611e21611d8c565b604052823581526020928301359281019290925250919050565b5f82601f830112611e4a575f80fd5b60405160e0810181811067ffffffffffffffff82111715611e6d57611e6d611d8c565b6040528060e0840185811115611e81575f80fd5b845b81811015611e9b578035835260209283019201611e83565b509195945050505050565b5f6104808284031215611eb7575f80fd5b611ebf611da0565b9050611ecb8383611dee565b8152611eda8360408401611dee565b6020820152611eec8360808401611dee565b6040820152611efe8360c08401611dee565b6060820152610100611f1284828501611dee565b6080830152610140611f2685828601611dee565b60a0840152610180611f3a86828701611dee565b60c08501526101c0611f4e87828801611dee565b60e0860152610200611f6288828901611dee565b858701526102409450611f7788868901611dee565b610120870152610280611f8c89828a01611dee565b858801526102c09450611fa189868a01611dee565b610160880152611fb5896103008a01611dee565b848801526103408801356101a0880152610360880135838801526103808801356101e08801526103a0880135828801526103c08801356102208801526103e08801358688015261040088013561026088015261042088013581880152505050506104408401356102a084015261046084013581840152505092915050565b5f805f838503610a60811215612047575f80fd5b61050080821215612056575f80fd5b61205e611dca565b9150853582526020860135602083015261207b8760408801611dee565b604083015261208d8760808801611dee565b606083015261209f8760c08801611dee565b60808301526101006120b388828901611dee565b60a08401526101406120c789828a01611dee565b60c08501526101806120db8a828b01611dee565b60e08601526101c06120ef8b828c01611dee565b8487015261020093506121048b858c01611dee565b6101208701526102406121198c828d01611dee565b84880152610280935061212e8c858d01611dee565b6101608801526121428c6102c08d01611dee565b838801526121548c6103008d01611dee565b6101a08801526121688c6103408d01611dee565b8288015261217a8c6103808d01611dee565b6101e088015261218e8c6103c08d01611dee565b858801526121a08c6104008d01611dee565b6102208801526121b48c6104408d01611dee565b818801525050506121c9896104808a01611dee565b6102608501526104c08801358185015250506104e08601356102a08301528194506121f687828801611e3b565b93505050612208856105e08601611ea6565b90509250925092565b634e487b7160e01b5f52603260045260245ffd5b81810381811115611d0857634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b5f8261227257634e487b7160e01b5f52601260045260245ffd5b50069056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a164736f6c6343000817000a", + "nonce": "0x794", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [], + "libraries": [], + "pending": [], + "returns": { + "contractAddress": { + "internal_type": "address", + "value": "0xB4f34879C2c3db50934E5069CE01fD5EcE3Aa051" + } + }, + "timestamp": 1736600901, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736601342.json b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736601342.json new file mode 100644 index 0000000000..8e4a078d77 --- /dev/null +++ b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736601342.json @@ -0,0 +1,53 @@ +{ + "transactions": [ + { + "hash": "0x67b99a3df6529c18cfd17320114dc86e63579c8a6c2717f819de23e4e51a21c5", + "transactionType": "CREATE", + "contractName": "PlonkVerifier", + "contractAddress": "0x5f50c15468edad51e987e8e4c814be8453c84de4", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x290473", + "value": "0x0", + "input": "0x6122a4610035600b8282823980515f1a60731461002957634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe7300000000000000000000000000000000000000003014608060405260043610610034575f3560e01c8063ce537a7714610038575b5f80fd5b61004b610046366004612033565b61005f565b604051901515815260200160405180910390f35b5f610069826100d0565b610079835f5b602002015161020b565b61008483600161006f565b61008f83600261006f565b61009a83600361006f565b6100a583600461006f565b6100b083600561006f565b6100bb83600661006f565b6100c6848484610271565b90505b9392505050565b80516100db90610465565b6100e88160200151610465565b6100f58160400151610465565b6101028160600151610465565b61010f8160800151610465565b61011c8160a00151610465565b6101298160c00151610465565b6101368160e00151610465565b610144816101000151610465565b610152816101200151610465565b610160816101400151610465565b61016e816101600151610465565b61017c816101800151610465565b61018a816101a0015161020b565b610198816101c0015161020b565b6101a6816101e0015161020b565b6101b481610200015161020b565b6101c281610220015161020b565b6101d081610240015161020b565b6101de81610260015161020b565b6101ec81610280015161020b565b6101fa816102a0015161020b565b610208816102c0015161020b565b50565b5f8051602061227883398151915281108061026d5760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c64000000000060448201526064015b60405180910390fd5b5050565b5f8360200151600714610297576040516320fa9d8960e11b815260040160405180910390fd5b5f6102a3858585610513565b90505f6102b2865f0151610a73565b90505f6102c4828460a0015188610e51565b90506102e160405180604001604052805f81526020015f81525090565b604080518082019091525f80825260208201526103158761016001516103108961018001518860e00151610eae565b610f4f565b91505f806103258b88878c610ff3565b91509150610336816103108461122b565b925061034f836103108b61016001518a60a00151610eae565b60a08801516040880151602001519194505f80516020612278833981519152918290820990508160e08a015182099050610392856103108d610180015184610eae565b94505f60405180608001604052807f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b081526020017f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c181526020017f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e5581526020017f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe4815250905061045387826104468961122b565b61044e6112c8565b611395565b9e9d5050505050505050505050505050565b805160208201515f917f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4791159015161561049e57505050565b82516020840151826003848585860985090883828309148382108484101616935050508161050e5760405162461bcd60e51b815260206004820152601760248201527f426e3235343a20696e76616c696420473120706f696e740000000000000000006044820152606401610264565b505050565b6105536040518061010001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f5f805160206122788339815191529050604051602081015f815260fe60e01b8152865160c01b6004820152602087015160c01b600c82015261028087015160208201526102a08701516040820152600160608201527f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a60808201527f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02560a08201527f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a60c08201527f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e88160e082015260e087015180516101008301526020810151610120830152506101008701518051610140830152602081015161016083015250610120870151805161018083015260208101516101a08301525061014087015180516101c083015260208101516101e083015250610160870151805161020083015260208101516102208301525061018087015180516102408301526020810151610260830152506101e0870151805161028083015260208101516102a08301525061020087015180516102c083015260208101516102e083015250610220870151805161030083015260208101516103208301525061024087015180516103408301526020810151610360830152506101a0870151805161038083015260208101516103a0830152506101c087015180516103c083015260208101516103e0830152506102608701518051610400830152602081015161042083015250604087015180516104408301526020810151610460830152506060870151805161048083015260208101516104a083015250608087015180516104c083015260208101516104e08301525060a0870151805161050083015260208101516105208301525060c08701518051610540830152602081015161056083015250855161058082015260208601516105a082015260408601516105c082015260608601516105e0820152608086015161060082015260a086015161062082015260c086015161064082015284518051610660830152602081015161068083015250602085015180516106a083015260208101516106c083015250604085015180516106e083015260208101516107008301525060608501518051610720830152602081015161074083015250608085015180516107608301526020810151610780830152505f82526107c08220825282825106606085015260208220825282825106608085015260a085015180518252602081015160208301525060608220808352838106855283818209848282099150806020870152508060408601525060c085015180518252602081015160208301525060e085015180516040830152602081015160608301525061010085015180516080830152602081015160a083015250610120850151805160c0830152602081015160e0830152506101408501518051610100830152602081015161012083015250610160822082528282510660a08501526101a085015181526101c085015160208201526101e085015160408201526102008501516060820152610220850151608082015261024085015160a082015261026085015160c082015261028085015160e08201526102a08501516101008201526102c0850151610120820152610160822082528282510660c08501526101608501518051825260208101516020830152506101808501518051604083015260208101516060830152505060a0812082810660e08501525050509392505050565b610a7b611d0e565b816201000003610bba576040518060600160405280601081526020017f30641e0e92bebef818268d663bcad6dbcfd6c0149170f6d7d350b1b1fa6c100181526020016040518060e00160405280600181526020017eeeb2cb5981ed45649abebde081dcff16c8601de4347e7dd1628ba2daac43b781526020017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb81526020017f086812a00ac43ea801669c640171203c41a496671bfbc065ac8db24d52cf31e581526020017f2d965651cdd9e4811f4e51b80ddca8a8b4a93ee17420aae6adaa01c2617c6e8581526020017f12597a56c2e438620b9041b98992ae0d4e705b780057bf7766a2767cece16e1d81526020017f02d94117cd17bcf1290fd67c01155dd40807857dff4a5a0b4dc67befa8aa34fd8152508152509050919050565b816210000003610cfa576040518060600160405280601481526020017f30644b6c9c4a72169e4daa317d25f04512ae15c53b34e8f5acd8e155d0a6c10181526020016040518060e00160405280600181526020017f26125da10a0ed06327508aba06d1e303ac616632dbed349f53422da95333785781526020017f2260e724844bca5251829353968e4915305258418357473a5c1d597f613f6cbd81526020017f2087ea2cd664278608fb0ebdb820907f598502c81b6690c185e2bf15cb935f4281526020017f19ddbcaf3a8d46c15c0176fbb5b95e4dc57088ff13f4d1bd84c6bfa57dcdc0e081526020017f05a2c85cfc591789605cae818e37dd4161eef9aa666bec6fe4288d09e6d2341881526020017f11f70e5363258ff4f0d716a653e1dc41f1c64484d7f4b6e219d6377614a3905c8152508152509050919050565b81602003610e38576040518060600160405280600581526020017f2ee12bff4a2813286a8dc388cd754d9a3ef2490635eba50cb9c2e5e75080000181526020016040518060e00160405280600181526020017f09c532c6306b93d29678200d47c0b2a99c18d51b838eeb1d3eed4c533bb512d081526020017f21082ca216cbbf4e1c6e4f4594dd508c996dfbe1174efb98b11509c6e306460b81526020017f1277ae6415f0ef18f2ba5fb162c39eb7311f386e2d26d64401f4a25da77c253b81526020017f2b337de1c8c14f22ec9b9e2f96afef3652627366f8170a0a948dad4ac1bd5e8081526020017f2fbd4dd2976be55d1a163aa9820fb88dfac5ddce77e1872e90632027327a5ebe81526020017f107aab49e65a67f9da9cd2abf78be38bd9dc1d5db39f81de36bcfa5b4b0390438152508152509050919050565b60405163e2ef09e560e01b815260040160405180910390fd5b610e7260405180606001604052805f81526020015f81526020015f81525090565b610e7c8484611475565b808252610e8c90859085906114c6565b60208201528051610ea290859084908690611535565b60408201529392505050565b604080518082019091525f8082526020820152610ec9611d32565b8351815260208085015190820152604081018390525f60608360808460076107d05a03fa90508080610ef9575f80fd5b5080610f475760405162461bcd60e51b815260206004820152601960248201527f426e3235343a207363616c6172206d756c206661696c656421000000000000006044820152606401610264565b505092915050565b604080518082019091525f8082526020820152610f6a611d50565b8351815260208085015181830152835160408301528301516060808301919091525f908360c08460066107d05a03fa90508080610fa5575f80fd5b5080610f475760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a2067726f7570206164646974696f6e206661696c6564210000006044820152606401610264565b604080518082019091525f8082526020820152604080518082019091525f80825260208201525f61102687878787611683565b90505f805160206122788339815191525f611042888789611b4d565b905061104e8183612225565b60c08901516101a08801519192509081908490819083098408925061107a856103108a5f015184610eae565b955083828209905083846101c08a01518309840892506110a2866103108a6020015184610eae565b955083828209905083846101e08a01518309840892506110ca866103108a6040015184610eae565b955083828209905083846102008a01518309840892506110f2866103108a6060015184610eae565b955083828209905083846102208a015183098408925061111a866103108a6080015184610eae565b955083828209905083846102408a0151830984089250611142866103108d6040015184610eae565b955083828209905083846102608a015183098408925061116a866103108d6060015184610eae565b955083828209905083846102808a0151830984089250611192866103108d6080015184610eae565b955083828209905083846102a08a01518309840892506111ba866103108d60a0015184610eae565b95505f8a60e00151905084856102c08b01518309850893506111e4876103108b60a0015184610eae565b965061121a6112146040805180820182525f80825260209182015281518083019092526001825260029082015290565b85610eae565b975050505050505094509492505050565b604080518082019091525f8082526020820152815160208301511590151615611252575090565b6040518060400160405280835f015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516112969190612258565b6112c0907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47612225565b905292915050565b6112ef60405180608001604052805f81526020015f81526020015f81526020015f81525090565b60405180608001604052807f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed81526020017f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c281526020017f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa81526020017f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b815250905090565b5f805f6040518751815260208801516020820152602087015160408201528651606082015260608701516080820152604087015160a0820152855160c0820152602086015160e0820152602085015161010082015284516101208201526060850151610140820152604085015161016082015260205f6101808360085afa9150505f519150806114675760405162461bcd60e51b815260206004820152601c60248201527f426e3235343a2050616972696e6720636865636b206661696c656421000000006044820152606401610264565b50151590505b949350505050565b81515f905f80516020612278833981519152908380156114b6578493505f5b828110156114aa57838586099450600101611494565b506001840393506114bd565b6001830393505b50505092915050565b5f826001036114d7575060016100c9565b815f036114e557505f6100c9565b60208401515f80516020612278833981519152905f908281860990508580156115135760018703925061151a565b6001840392505b5061152482611c38565b915082828209979650505050505050565b5f5f805160206122788339815191528282036115ae5760015f5b60078110156115a3578186036115805786816007811061157157611571612211565b6020020151935050505061146d565b828061158e5761158e612244565b6040890151602001518309915060010161154f565b505f9250505061146d565b6115b6611d6e565b6040870151600160c0838101828152920190805b60078110156115f75760208403935085868a85518903088309808552601f199093019291506001016115ca565b505050505f805f90506001838960408c01515f5b600781101561164b578882518a85518c88518a0909098981880896505088898d84518c03088609945060209384019392830192919091019060010161160b565b50505050809250505f61165d83611c38565b905060208a015185818909965050848187099550848287099a9950505050505050505050565b604080518082019091525f80825260208201525f805f805f5f80516020612278833981519152905060808901518160208a015160208c0151099550895194508160a08b015160608c0151099350816101a089015185089250818184089250818584099450817f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a85099250816101c089015184089250818184089250818584099450817f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02585099250816101e089015184089250818184089250818584099450817f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a850992508161020089015184089250818184089250818584099450817f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e881850992508161022089015184089250818184089250508084830993508084860894506117f08760a0015186610eae565b9550885160608a015160808b0151838284099750836102c08b015189099750836102408b015183099550836101a08b015187089550838187089550838689099750836102608b015183099550836101c08b015187089550838187089550838689099750836102808b015183099550836101e08b015187089550838187089550838689099750836102a08b015183099550836102008b0151870895508381870895505050508083860994506118b7866103108c60c0015188856118b29190612225565b610eae565b95506118d0866103108c60e001518a6101a00151610eae565b95506118ea866103108c61010001518a6101c00151610eae565b9550611904866103108c61012001518a6101e00151610eae565b955061191e866103108c61014001518a6102000151610eae565b9550806101c08801516101a0890151099250611943866103108c610160015186610eae565b9550806102008801516101e0890151099250611968866103108c610180015186610eae565b95506101a08701519250808384099150808283099150808284099250611997866103108c6101e0015186610eae565b95506101c087015192508083840991508082830991508082840992506119c6866103108c610200015186610eae565b95506101e087015192508083840991508082830991508082840992506119f5866103108c610220015186610eae565b95506102008701519250808384099150808283099150808284099250611a24866103108c610240015186610eae565b9550611a41866103108c6101a001516118b28b6102200151611cd9565b9550611a52868b6101c00151610f4f565b9550806101c08801516101a0890151099250806101e08801518409925080610200880151840992508061022088015184099250611a98866103108c610260015186610eae565b9550611aa6885f0151611cd9565b9450611aba866103108960c0015188610eae565b955080600189510860a08a0151909350819080099150808284099250808386099450611aee866103108960e0015188610eae565b9550808386099450611b098661031089610100015188610eae565b9550808386099450611b248661031089610120015188610eae565b9550808386099450611b3f8661031089610140015188610eae565b9a9950505050505050505050565b5f805f8051602061227883398151915290505f836020015190505f846040015190505f60019050606088015160808901516101a08901516102408a01518788898387098a868608088609945050506101c08901516102608a01518788898387098a868608088609945050506101e08901516102808a01518788898387098a868608088609945050506102008901516102a08a01518788898387098a8686080886099450505061022089015191506102c0890151868782898587080985099350505050875160208901518586868309870385089650508485838309860387089998505050505050505050565b5f805f5f80516020612278833981519152905060405160208152602080820152602060408201528460608201526002820360808201528160a082015260205f60c08360055afa9250505f51925081611cd25760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a20706f7720707265636f6d70696c65206661696c6564210000006044820152606401610264565b5050919050565b5f611cf15f8051602061227883398151915283612258565b611d08905f80516020612278833981519152612225565b92915050565b60405180606001604052805f81526020015f8152602001611d2d611d6e565b905290565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b634e487b7160e01b5f52604160045260245ffd5b6040516102e0810167ffffffffffffffff81118282101715611dc457611dc4611d8c565b60405290565b6040516102c0810167ffffffffffffffff81118282101715611dc457611dc4611d8c565b5f60408284031215611dfe575f80fd5b6040516040810181811067ffffffffffffffff82111715611e2157611e21611d8c565b604052823581526020928301359281019290925250919050565b5f82601f830112611e4a575f80fd5b60405160e0810181811067ffffffffffffffff82111715611e6d57611e6d611d8c565b6040528060e0840185811115611e81575f80fd5b845b81811015611e9b578035835260209283019201611e83565b509195945050505050565b5f6104808284031215611eb7575f80fd5b611ebf611da0565b9050611ecb8383611dee565b8152611eda8360408401611dee565b6020820152611eec8360808401611dee565b6040820152611efe8360c08401611dee565b6060820152610100611f1284828501611dee565b6080830152610140611f2685828601611dee565b60a0840152610180611f3a86828701611dee565b60c08501526101c0611f4e87828801611dee565b60e0860152610200611f6288828901611dee565b858701526102409450611f7788868901611dee565b610120870152610280611f8c89828a01611dee565b858801526102c09450611fa189868a01611dee565b610160880152611fb5896103008a01611dee565b848801526103408801356101a0880152610360880135838801526103808801356101e08801526103a0880135828801526103c08801356102208801526103e08801358688015261040088013561026088015261042088013581880152505050506104408401356102a084015261046084013581840152505092915050565b5f805f838503610a60811215612047575f80fd5b61050080821215612056575f80fd5b61205e611dca565b9150853582526020860135602083015261207b8760408801611dee565b604083015261208d8760808801611dee565b606083015261209f8760c08801611dee565b60808301526101006120b388828901611dee565b60a08401526101406120c789828a01611dee565b60c08501526101806120db8a828b01611dee565b60e08601526101c06120ef8b828c01611dee565b8487015261020093506121048b858c01611dee565b6101208701526102406121198c828d01611dee565b84880152610280935061212e8c858d01611dee565b6101608801526121428c6102c08d01611dee565b838801526121548c6103008d01611dee565b6101a08801526121688c6103408d01611dee565b8288015261217a8c6103808d01611dee565b6101e088015261218e8c6103c08d01611dee565b858801526121a08c6104008d01611dee565b6102208801526121b48c6104408d01611dee565b818801525050506121c9896104808a01611dee565b6102608501526104c08801358185015250506104e08601356102a08301528194506121f687828801611e3b565b93505050612208856105e08601611ea6565b90509250925092565b634e487b7160e01b5f52603260045260245ffd5b81810381811115611d0857634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b5f8261227257634e487b7160e01b5f52601260045260245ffd5b50069056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a164736f6c6343000817000a", + "nonce": "0x1e", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x22a7cb", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x67b99a3df6529c18cfd17320114dc86e63579c8a6c2717f819de23e4e51a21c5", + "transactionIndex": "0x5", + "blockHash": "0xf37c135d31cb2f4cc34532eb3336967c42fafa564de035ccb86e7841cd7ff92b", + "blockNumber": "0x6cef6a0", + "gasUsed": "0x1f0392", + "effectiveGasPrice": "0xa6bffd0", + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": null, + "contractAddress": "0x5f50c15468edad51e987e8e4c814be8453c84de4", + "gasUsedForL1": "0xf348", + "l1BlockNumber": "0x71f552" + } + ], + "libraries": [], + "pending": [], + "returns": { + "contractAddress": { + "internal_type": "address", + "value": "0x5F50C15468eDAD51e987E8E4C814be8453c84de4" + } + }, + "timestamp": 1736601342, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/broadcast/PlonkVerifier.s.sol/421614/run-latest.json b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-latest.json new file mode 100644 index 0000000000..8e4a078d77 --- /dev/null +++ b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-latest.json @@ -0,0 +1,53 @@ +{ + "transactions": [ + { + "hash": "0x67b99a3df6529c18cfd17320114dc86e63579c8a6c2717f819de23e4e51a21c5", + "transactionType": "CREATE", + "contractName": "PlonkVerifier", + "contractAddress": "0x5f50c15468edad51e987e8e4c814be8453c84de4", + "function": null, + "arguments": null, + "transaction": { + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "gas": "0x290473", + "value": "0x0", + "input": "0x6122a4610035600b8282823980515f1a60731461002957634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe7300000000000000000000000000000000000000003014608060405260043610610034575f3560e01c8063ce537a7714610038575b5f80fd5b61004b610046366004612033565b61005f565b604051901515815260200160405180910390f35b5f610069826100d0565b610079835f5b602002015161020b565b61008483600161006f565b61008f83600261006f565b61009a83600361006f565b6100a583600461006f565b6100b083600561006f565b6100bb83600661006f565b6100c6848484610271565b90505b9392505050565b80516100db90610465565b6100e88160200151610465565b6100f58160400151610465565b6101028160600151610465565b61010f8160800151610465565b61011c8160a00151610465565b6101298160c00151610465565b6101368160e00151610465565b610144816101000151610465565b610152816101200151610465565b610160816101400151610465565b61016e816101600151610465565b61017c816101800151610465565b61018a816101a0015161020b565b610198816101c0015161020b565b6101a6816101e0015161020b565b6101b481610200015161020b565b6101c281610220015161020b565b6101d081610240015161020b565b6101de81610260015161020b565b6101ec81610280015161020b565b6101fa816102a0015161020b565b610208816102c0015161020b565b50565b5f8051602061227883398151915281108061026d5760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c64000000000060448201526064015b60405180910390fd5b5050565b5f8360200151600714610297576040516320fa9d8960e11b815260040160405180910390fd5b5f6102a3858585610513565b90505f6102b2865f0151610a73565b90505f6102c4828460a0015188610e51565b90506102e160405180604001604052805f81526020015f81525090565b604080518082019091525f80825260208201526103158761016001516103108961018001518860e00151610eae565b610f4f565b91505f806103258b88878c610ff3565b91509150610336816103108461122b565b925061034f836103108b61016001518a60a00151610eae565b60a08801516040880151602001519194505f80516020612278833981519152918290820990508160e08a015182099050610392856103108d610180015184610eae565b94505f60405180608001604052807f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b081526020017f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c181526020017f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e5581526020017f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe4815250905061045387826104468961122b565b61044e6112c8565b611395565b9e9d5050505050505050505050505050565b805160208201515f917f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4791159015161561049e57505050565b82516020840151826003848585860985090883828309148382108484101616935050508161050e5760405162461bcd60e51b815260206004820152601760248201527f426e3235343a20696e76616c696420473120706f696e740000000000000000006044820152606401610264565b505050565b6105536040518061010001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f5f805160206122788339815191529050604051602081015f815260fe60e01b8152865160c01b6004820152602087015160c01b600c82015261028087015160208201526102a08701516040820152600160608201527f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a60808201527f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02560a08201527f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a60c08201527f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e88160e082015260e087015180516101008301526020810151610120830152506101008701518051610140830152602081015161016083015250610120870151805161018083015260208101516101a08301525061014087015180516101c083015260208101516101e083015250610160870151805161020083015260208101516102208301525061018087015180516102408301526020810151610260830152506101e0870151805161028083015260208101516102a08301525061020087015180516102c083015260208101516102e083015250610220870151805161030083015260208101516103208301525061024087015180516103408301526020810151610360830152506101a0870151805161038083015260208101516103a0830152506101c087015180516103c083015260208101516103e0830152506102608701518051610400830152602081015161042083015250604087015180516104408301526020810151610460830152506060870151805161048083015260208101516104a083015250608087015180516104c083015260208101516104e08301525060a0870151805161050083015260208101516105208301525060c08701518051610540830152602081015161056083015250855161058082015260208601516105a082015260408601516105c082015260608601516105e0820152608086015161060082015260a086015161062082015260c086015161064082015284518051610660830152602081015161068083015250602085015180516106a083015260208101516106c083015250604085015180516106e083015260208101516107008301525060608501518051610720830152602081015161074083015250608085015180516107608301526020810151610780830152505f82526107c08220825282825106606085015260208220825282825106608085015260a085015180518252602081015160208301525060608220808352838106855283818209848282099150806020870152508060408601525060c085015180518252602081015160208301525060e085015180516040830152602081015160608301525061010085015180516080830152602081015160a083015250610120850151805160c0830152602081015160e0830152506101408501518051610100830152602081015161012083015250610160822082528282510660a08501526101a085015181526101c085015160208201526101e085015160408201526102008501516060820152610220850151608082015261024085015160a082015261026085015160c082015261028085015160e08201526102a08501516101008201526102c0850151610120820152610160822082528282510660c08501526101608501518051825260208101516020830152506101808501518051604083015260208101516060830152505060a0812082810660e08501525050509392505050565b610a7b611d0e565b816201000003610bba576040518060600160405280601081526020017f30641e0e92bebef818268d663bcad6dbcfd6c0149170f6d7d350b1b1fa6c100181526020016040518060e00160405280600181526020017eeeb2cb5981ed45649abebde081dcff16c8601de4347e7dd1628ba2daac43b781526020017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb81526020017f086812a00ac43ea801669c640171203c41a496671bfbc065ac8db24d52cf31e581526020017f2d965651cdd9e4811f4e51b80ddca8a8b4a93ee17420aae6adaa01c2617c6e8581526020017f12597a56c2e438620b9041b98992ae0d4e705b780057bf7766a2767cece16e1d81526020017f02d94117cd17bcf1290fd67c01155dd40807857dff4a5a0b4dc67befa8aa34fd8152508152509050919050565b816210000003610cfa576040518060600160405280601481526020017f30644b6c9c4a72169e4daa317d25f04512ae15c53b34e8f5acd8e155d0a6c10181526020016040518060e00160405280600181526020017f26125da10a0ed06327508aba06d1e303ac616632dbed349f53422da95333785781526020017f2260e724844bca5251829353968e4915305258418357473a5c1d597f613f6cbd81526020017f2087ea2cd664278608fb0ebdb820907f598502c81b6690c185e2bf15cb935f4281526020017f19ddbcaf3a8d46c15c0176fbb5b95e4dc57088ff13f4d1bd84c6bfa57dcdc0e081526020017f05a2c85cfc591789605cae818e37dd4161eef9aa666bec6fe4288d09e6d2341881526020017f11f70e5363258ff4f0d716a653e1dc41f1c64484d7f4b6e219d6377614a3905c8152508152509050919050565b81602003610e38576040518060600160405280600581526020017f2ee12bff4a2813286a8dc388cd754d9a3ef2490635eba50cb9c2e5e75080000181526020016040518060e00160405280600181526020017f09c532c6306b93d29678200d47c0b2a99c18d51b838eeb1d3eed4c533bb512d081526020017f21082ca216cbbf4e1c6e4f4594dd508c996dfbe1174efb98b11509c6e306460b81526020017f1277ae6415f0ef18f2ba5fb162c39eb7311f386e2d26d64401f4a25da77c253b81526020017f2b337de1c8c14f22ec9b9e2f96afef3652627366f8170a0a948dad4ac1bd5e8081526020017f2fbd4dd2976be55d1a163aa9820fb88dfac5ddce77e1872e90632027327a5ebe81526020017f107aab49e65a67f9da9cd2abf78be38bd9dc1d5db39f81de36bcfa5b4b0390438152508152509050919050565b60405163e2ef09e560e01b815260040160405180910390fd5b610e7260405180606001604052805f81526020015f81526020015f81525090565b610e7c8484611475565b808252610e8c90859085906114c6565b60208201528051610ea290859084908690611535565b60408201529392505050565b604080518082019091525f8082526020820152610ec9611d32565b8351815260208085015190820152604081018390525f60608360808460076107d05a03fa90508080610ef9575f80fd5b5080610f475760405162461bcd60e51b815260206004820152601960248201527f426e3235343a207363616c6172206d756c206661696c656421000000000000006044820152606401610264565b505092915050565b604080518082019091525f8082526020820152610f6a611d50565b8351815260208085015181830152835160408301528301516060808301919091525f908360c08460066107d05a03fa90508080610fa5575f80fd5b5080610f475760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a2067726f7570206164646974696f6e206661696c6564210000006044820152606401610264565b604080518082019091525f8082526020820152604080518082019091525f80825260208201525f61102687878787611683565b90505f805160206122788339815191525f611042888789611b4d565b905061104e8183612225565b60c08901516101a08801519192509081908490819083098408925061107a856103108a5f015184610eae565b955083828209905083846101c08a01518309840892506110a2866103108a6020015184610eae565b955083828209905083846101e08a01518309840892506110ca866103108a6040015184610eae565b955083828209905083846102008a01518309840892506110f2866103108a6060015184610eae565b955083828209905083846102208a015183098408925061111a866103108a6080015184610eae565b955083828209905083846102408a0151830984089250611142866103108d6040015184610eae565b955083828209905083846102608a015183098408925061116a866103108d6060015184610eae565b955083828209905083846102808a0151830984089250611192866103108d6080015184610eae565b955083828209905083846102a08a01518309840892506111ba866103108d60a0015184610eae565b95505f8a60e00151905084856102c08b01518309850893506111e4876103108b60a0015184610eae565b965061121a6112146040805180820182525f80825260209182015281518083019092526001825260029082015290565b85610eae565b975050505050505094509492505050565b604080518082019091525f8082526020820152815160208301511590151615611252575090565b6040518060400160405280835f015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516112969190612258565b6112c0907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47612225565b905292915050565b6112ef60405180608001604052805f81526020015f81526020015f81526020015f81525090565b60405180608001604052807f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed81526020017f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c281526020017f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa81526020017f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b815250905090565b5f805f6040518751815260208801516020820152602087015160408201528651606082015260608701516080820152604087015160a0820152855160c0820152602086015160e0820152602085015161010082015284516101208201526060850151610140820152604085015161016082015260205f6101808360085afa9150505f519150806114675760405162461bcd60e51b815260206004820152601c60248201527f426e3235343a2050616972696e6720636865636b206661696c656421000000006044820152606401610264565b50151590505b949350505050565b81515f905f80516020612278833981519152908380156114b6578493505f5b828110156114aa57838586099450600101611494565b506001840393506114bd565b6001830393505b50505092915050565b5f826001036114d7575060016100c9565b815f036114e557505f6100c9565b60208401515f80516020612278833981519152905f908281860990508580156115135760018703925061151a565b6001840392505b5061152482611c38565b915082828209979650505050505050565b5f5f805160206122788339815191528282036115ae5760015f5b60078110156115a3578186036115805786816007811061157157611571612211565b6020020151935050505061146d565b828061158e5761158e612244565b6040890151602001518309915060010161154f565b505f9250505061146d565b6115b6611d6e565b6040870151600160c0838101828152920190805b60078110156115f75760208403935085868a85518903088309808552601f199093019291506001016115ca565b505050505f805f90506001838960408c01515f5b600781101561164b578882518a85518c88518a0909098981880896505088898d84518c03088609945060209384019392830192919091019060010161160b565b50505050809250505f61165d83611c38565b905060208a015185818909965050848187099550848287099a9950505050505050505050565b604080518082019091525f80825260208201525f805f805f5f80516020612278833981519152905060808901518160208a015160208c0151099550895194508160a08b015160608c0151099350816101a089015185089250818184089250818584099450817f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a85099250816101c089015184089250818184089250818584099450817f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02585099250816101e089015184089250818184089250818584099450817f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a850992508161020089015184089250818184089250818584099450817f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e881850992508161022089015184089250818184089250508084830993508084860894506117f08760a0015186610eae565b9550885160608a015160808b0151838284099750836102c08b015189099750836102408b015183099550836101a08b015187089550838187089550838689099750836102608b015183099550836101c08b015187089550838187089550838689099750836102808b015183099550836101e08b015187089550838187089550838689099750836102a08b015183099550836102008b0151870895508381870895505050508083860994506118b7866103108c60c0015188856118b29190612225565b610eae565b95506118d0866103108c60e001518a6101a00151610eae565b95506118ea866103108c61010001518a6101c00151610eae565b9550611904866103108c61012001518a6101e00151610eae565b955061191e866103108c61014001518a6102000151610eae565b9550806101c08801516101a0890151099250611943866103108c610160015186610eae565b9550806102008801516101e0890151099250611968866103108c610180015186610eae565b95506101a08701519250808384099150808283099150808284099250611997866103108c6101e0015186610eae565b95506101c087015192508083840991508082830991508082840992506119c6866103108c610200015186610eae565b95506101e087015192508083840991508082830991508082840992506119f5866103108c610220015186610eae565b95506102008701519250808384099150808283099150808284099250611a24866103108c610240015186610eae565b9550611a41866103108c6101a001516118b28b6102200151611cd9565b9550611a52868b6101c00151610f4f565b9550806101c08801516101a0890151099250806101e08801518409925080610200880151840992508061022088015184099250611a98866103108c610260015186610eae565b9550611aa6885f0151611cd9565b9450611aba866103108960c0015188610eae565b955080600189510860a08a0151909350819080099150808284099250808386099450611aee866103108960e0015188610eae565b9550808386099450611b098661031089610100015188610eae565b9550808386099450611b248661031089610120015188610eae565b9550808386099450611b3f8661031089610140015188610eae565b9a9950505050505050505050565b5f805f8051602061227883398151915290505f836020015190505f846040015190505f60019050606088015160808901516101a08901516102408a01518788898387098a868608088609945050506101c08901516102608a01518788898387098a868608088609945050506101e08901516102808a01518788898387098a868608088609945050506102008901516102a08a01518788898387098a8686080886099450505061022089015191506102c0890151868782898587080985099350505050875160208901518586868309870385089650508485838309860387089998505050505050505050565b5f805f5f80516020612278833981519152905060405160208152602080820152602060408201528460608201526002820360808201528160a082015260205f60c08360055afa9250505f51925081611cd25760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a20706f7720707265636f6d70696c65206661696c6564210000006044820152606401610264565b5050919050565b5f611cf15f8051602061227883398151915283612258565b611d08905f80516020612278833981519152612225565b92915050565b60405180606001604052805f81526020015f8152602001611d2d611d6e565b905290565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b634e487b7160e01b5f52604160045260245ffd5b6040516102e0810167ffffffffffffffff81118282101715611dc457611dc4611d8c565b60405290565b6040516102c0810167ffffffffffffffff81118282101715611dc457611dc4611d8c565b5f60408284031215611dfe575f80fd5b6040516040810181811067ffffffffffffffff82111715611e2157611e21611d8c565b604052823581526020928301359281019290925250919050565b5f82601f830112611e4a575f80fd5b60405160e0810181811067ffffffffffffffff82111715611e6d57611e6d611d8c565b6040528060e0840185811115611e81575f80fd5b845b81811015611e9b578035835260209283019201611e83565b509195945050505050565b5f6104808284031215611eb7575f80fd5b611ebf611da0565b9050611ecb8383611dee565b8152611eda8360408401611dee565b6020820152611eec8360808401611dee565b6040820152611efe8360c08401611dee565b6060820152610100611f1284828501611dee565b6080830152610140611f2685828601611dee565b60a0840152610180611f3a86828701611dee565b60c08501526101c0611f4e87828801611dee565b60e0860152610200611f6288828901611dee565b858701526102409450611f7788868901611dee565b610120870152610280611f8c89828a01611dee565b858801526102c09450611fa189868a01611dee565b610160880152611fb5896103008a01611dee565b848801526103408801356101a0880152610360880135838801526103808801356101e08801526103a0880135828801526103c08801356102208801526103e08801358688015261040088013561026088015261042088013581880152505050506104408401356102a084015261046084013581840152505092915050565b5f805f838503610a60811215612047575f80fd5b61050080821215612056575f80fd5b61205e611dca565b9150853582526020860135602083015261207b8760408801611dee565b604083015261208d8760808801611dee565b606083015261209f8760c08801611dee565b60808301526101006120b388828901611dee565b60a08401526101406120c789828a01611dee565b60c08501526101806120db8a828b01611dee565b60e08601526101c06120ef8b828c01611dee565b8487015261020093506121048b858c01611dee565b6101208701526102406121198c828d01611dee565b84880152610280935061212e8c858d01611dee565b6101608801526121428c6102c08d01611dee565b838801526121548c6103008d01611dee565b6101a08801526121688c6103408d01611dee565b8288015261217a8c6103808d01611dee565b6101e088015261218e8c6103c08d01611dee565b858801526121a08c6104008d01611dee565b6102208801526121b48c6104408d01611dee565b818801525050506121c9896104808a01611dee565b6102608501526104c08801358185015250506104e08601356102a08301528194506121f687828801611e3b565b93505050612208856105e08601611ea6565b90509250925092565b634e487b7160e01b5f52603260045260245ffd5b81810381811115611d0857634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b5f8261227257634e487b7160e01b5f52601260045260245ffd5b50069056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a164736f6c6343000817000a", + "nonce": "0x1e", + "chainId": "0x66eee" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x22a7cb", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x67b99a3df6529c18cfd17320114dc86e63579c8a6c2717f819de23e4e51a21c5", + "transactionIndex": "0x5", + "blockHash": "0xf37c135d31cb2f4cc34532eb3336967c42fafa564de035ccb86e7841cd7ff92b", + "blockNumber": "0x6cef6a0", + "gasUsed": "0x1f0392", + "effectiveGasPrice": "0xa6bffd0", + "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", + "to": null, + "contractAddress": "0x5f50c15468edad51e987e8e4c814be8453c84de4", + "gasUsedForL1": "0xf348", + "l1BlockNumber": "0x71f552" + } + ], + "libraries": [], + "pending": [], + "returns": { + "contractAddress": { + "internal_type": "address", + "value": "0x5F50C15468eDAD51e987E8E4C814be8453c84de4" + } + }, + "timestamp": 1736601342, + "chain": 421614, + "commit": "9c97b7e0d" +} \ No newline at end of file diff --git a/contracts/script/LightClientArb.s.sol b/contracts/script/LightClientArb.s.sol new file mode 100644 index 0000000000..e3c3ea7182 --- /dev/null +++ b/contracts/script/LightClientArb.s.sol @@ -0,0 +1,85 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.0; + +import { Script } from "forge-std/Script.sol"; +import { LightClientArbitrum } from "../src/LightClientArbitrum.sol"; +import { LightClient as LC } from "../src/LightClient.sol"; +import { Upgrades } from "openzeppelin-foundry-upgrades/Upgrades.sol"; + +contract DeployLightClientArbitrum is Script { + // Deployment Errors + error SetPermissionedProverFailed(); + error OwnerTransferFailed(); + error RetentionPeriodIsNotSetCorrectly(); + error InitialStateIsNotSetCorrectly(); + + function run(uint32 numInitValidators, uint32 stateHistoryRetentionPeriod, address owner) + public + returns ( + address proxyAddress, + address implementationAddress, + LC.LightClientState memory lightClientState + ) + { + address deployer; + + string memory ledgerCommand = vm.envString("USE_HARDWARE_WALLET"); + if (keccak256(bytes(ledgerCommand)) == keccak256(bytes("true"))) { + deployer = vm.envAddress("DEPLOYER_HARDWARE_WALLET_ADDRESS"); + } else { + // get the deployer info from the environment + string memory seedPhrase = vm.envString("DEPLOYER_MNEMONIC"); + uint32 seedPhraseOffset = uint32(vm.envUint("DEPLOYER_MNEMONIC_OFFSET")); + (deployer,) = deriveRememberKey(seedPhrase, seedPhraseOffset); + } + + vm.startBroadcast(deployer); + + string[] memory cmds = new string[](3); + cmds[0] = "diff-test"; + cmds[1] = "mock-genesis"; + cmds[2] = vm.toString(uint256(numInitValidators)); + + bytes memory result = vm.ffi(cmds); + (LC.LightClientState memory state, LC.StakeTableState memory stakeState) = + abi.decode(result, (LC.LightClientState, LC.StakeTableState)); + + proxyAddress = Upgrades.deployUUPSProxy( + "LightClientArbitrum.sol:LightClientArbitrum", + abi.encodeCall( + LC.initialize, (state, stakeState, stateHistoryRetentionPeriod, deployer) + ) + ); + + LightClientArbitrum lightClientArbitrumProxy = LightClientArbitrum(proxyAddress); + + // Currently, the light client is in prover mode so set the permissioned prover + address permissionedProver = vm.envAddress("PERMISSIONED_PROVER_ADDRESS"); + lightClientArbitrumProxy.setPermissionedProver(permissionedProver); + + // transfer ownership to the multisig + lightClientArbitrumProxy.transferOwnership(owner); + + // verify post deployment details + if (lightClientArbitrumProxy.permissionedProver() != permissionedProver) { + revert SetPermissionedProverFailed(); + } + if (lightClientArbitrumProxy.owner() != owner) revert OwnerTransferFailed(); + if (lightClientArbitrumProxy.stateHistoryRetentionPeriod() != stateHistoryRetentionPeriod) { + revert RetentionPeriodIsNotSetCorrectly(); + } + if (lightClientArbitrumProxy.stateHistoryFirstIndex() != 0) { + revert InitialStateIsNotSetCorrectly(); + } + if (lightClientArbitrumProxy.getStateHistoryCount() != 0) { + revert InitialStateIsNotSetCorrectly(); + } + + // Get the implementation address + implementationAddress = Upgrades.getImplementationAddress(proxyAddress); + + vm.stopBroadcast(); + + return (proxyAddress, implementationAddress, state); + } +} diff --git a/contracts/script/PlonkVerifier.s.sol b/contracts/script/PlonkVerifier.s.sol index 23fa0ee7e1..08d24b26fa 100644 --- a/contracts/script/PlonkVerifier.s.sol +++ b/contracts/script/PlonkVerifier.s.sol @@ -3,9 +3,9 @@ pragma solidity ^0.8.20; import { Script } from "forge-std/Script.sol"; import { Options, Upgrades } from "openzeppelin-foundry-upgrades/Upgrades.sol"; - /// @notice Deploys an upgradeable Plonk Verifier Contract using the OpenZeppelin Upgrades plugin. /// @dev The Upgrades library has a deployImplementation function which is used here + contract DeployPlonkVerifierScript is Script { string public contractName = "PlonkVerifier.sol"; diff --git a/contracts/script/README.md b/contracts/script/README.md index 8c508726d5..a60c8514a2 100644 --- a/contracts/script/README.md +++ b/contracts/script/README.md @@ -368,3 +368,22 @@ This error occurs when build_info is set to true in the foundry.toml configurati foundry profile is set to default when running commands like `just gen-bindings`. Solution: `export FOUNDRY_PROFILE=default` + +## Deploy LightClientArbitrum + +Additional Pre-requisites: + +- an API key from arbiscan to verify the contract. + +```bash + source .env.contracts && \ + forge clean && \ + forge script contracts/script/LightClientArb.s.sol:DeployLightClientArbitrum $NUM_INIT_VALIDATORS $STATE_HISTORY_RETENTION_PERIOD $SAFE_MULTISIG_ADDRESS \ + --sig 'run(uint32, uint32, address)' \ + --ffi \ + --rpc-url $RPC_URL \ + --libraries contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:$PLONK_VERIFIER_ADDRESS \ + --build-info true \ + --verify --etherscan-api-key $ARBISCAN_API_KEY \ + --broadcast +``` diff --git a/contracts/src/LightClient.sol b/contracts/src/LightClient.sol index 944ed5f9fb..0cddb9be8f 100644 --- a/contracts/src/LightClient.sol +++ b/contracts/src/LightClient.sol @@ -154,7 +154,7 @@ contract LightClient is Initializable, OwnableUpgradeable, UUPSUpgradeable { StakeTableState memory _genesisStakeTableState, uint32 _stateHistoryRetentionPeriod, address owner - ) public initializer { + ) public virtual initializer { __Ownable_init(owner); //sets owner of the contract __UUPSUpgradeable_init(); _initializeState(_genesis, _genesisStakeTableState, _stateHistoryRetentionPeriod); @@ -215,8 +215,6 @@ contract LightClient is Initializable, OwnableUpgradeable, UUPSUpgradeable { finalizedState = _genesis; stateHistoryRetentionPeriod = _stateHistoryRetentionPeriod; - - updateStateHistory(uint64(currentBlockNumber()), uint64(block.timestamp), _genesis); } // === State Modifying APIs === diff --git a/contracts/src/LightClientArbitrum.sol b/contracts/src/LightClientArbitrum.sol index f173890b6a..fe4e8c210b 100644 --- a/contracts/src/LightClientArbitrum.sol +++ b/contracts/src/LightClientArbitrum.sol @@ -3,13 +3,23 @@ pragma solidity ^0.8.0; import { LightClient } from "./LightClient.sol"; +// import { ArbSys } from "./interfaces/ArbSys.sol"; interface ArbSys { + /** + * @notice Get Arbitrum block number (distinct from L1 block number) + * @return block number + */ function arbBlockNumber() external view returns (uint256); } contract LightClientArbitrum is LightClient { + /// @custom:oz-upgrades-unsafe-allow constructor + constructor() { + _disableInitializers(); + } + function currentBlockNumber() public view virtual override returns (uint256) { - return ArbSys(address(uint160(100))).arbBlockNumber(); + return ArbSys(address(0x0000000000000000000000000000000000000064)).arbBlockNumber(); } } diff --git a/contracts/test/LightClient.t.sol b/contracts/test/LightClient.t.sol index 8b71845da3..36b671afe8 100644 --- a/contracts/test/LightClient.t.sol +++ b/contracts/test/LightClient.t.sol @@ -692,6 +692,9 @@ contract LightClient_StateUpdatesTest is LightClientCommonTest { lc.newFinalizedState(states[i], proofs[i]); } + // assert that the size of the state history is equal to the retention period + assertEq(lc.getStateHistoryCount(), numDays); + // the number of elements are equal to the max state history so the first index would // be 0 assertEq(lc.stateHistoryFirstIndex(), 0); @@ -708,7 +711,7 @@ contract LightClient_StateUpdatesTest is LightClientCommonTest { vm.prank(permissionedProver); vm.expectEmit(true, true, true, true); emit LC.NewState(states[i].viewNum, states[i].blockHeight, states[i].blockCommRoot); - vm.warp(initialBlockTimestamp + ((i + 1) * 1 days)); // increase the timestamp for each + vm.warp((numDays + 3) * 1 days); // increase the timestamp lc.newFinalizedState(states[i], proofs[i]); i++; @@ -716,6 +719,10 @@ contract LightClient_StateUpdatesTest is LightClientCommonTest { // index should be one assertEq(lc.stateHistoryFirstIndex(), 1); + // assert that the first state commitment is zero as it would have been deleted + (, uint256 blocktimestamp,,) = lc.stateHistoryCommitments(0); + assertEq(blocktimestamp, 0); + // continue updating the state for (uint256 j = i; j < states.length; j++) { vm.warp(initialBlockTimestamp + ((j + 1) * 1 days)); // increase the timestamp for each @@ -822,8 +829,8 @@ contract LightClient_StateUpdatesTest is LightClientCommonTest { } function test_revertWhenBlockNumberTooHigh() public { - //assert that there is a state history - assertGt(lc.getStateHistoryCount(), 0); + // assert that there isn't a state history when the light client is first initialized + assertEq(lc.getStateHistoryCount(), 0); vm.expectRevert(LC.InsufficientSnapshotHistory.selector); lc.lagOverEscapeHatchThreshold(block.number + 10, 5); // No updates exist in history diff --git a/justfile b/justfile index 000051aa1d..0424edadd5 100644 --- a/justfile +++ b/justfile @@ -101,7 +101,7 @@ build-docker-images: scripts/build-docker-images-native # generate rust bindings for contracts -REGEXP := "^LightClient$|^LightClientStateUpdateVK$|^FeeContract$|PlonkVerifier$|^ERC1967Proxy$|^LightClientMock$|^LightClientStateUpdateVKMock$|^PlonkVerifier2$|^PermissionedStakeTable$" +REGEXP := "^LightClient$|^LightClientArbitrum$|^LightClientStateUpdateVK$|^FeeContract$|PlonkVerifier$|^ERC1967Proxy$|^LightClientMock$|^LightClientStateUpdateVKMock$|^PlonkVerifier2$|^PermissionedStakeTable$" gen-bindings: forge bind --contracts ./contracts/src/ --crate-name contract-bindings --bindings-path contract-bindings --select "{{REGEXP}}" --overwrite --force @@ -111,6 +111,7 @@ gen-bindings: # date, without needed to recompile the contracts. mkdir -p contract-bindings/artifacts jq '.bytecode.object' < contracts/out/LightClient.sol/LightClient.json > contract-bindings/artifacts/LightClient_bytecode.json + jq '.bytecode.object' < contracts/out/LightClientArbitrum.sol/LightClientArbitrum.json > contract-bindings/artifacts/LightClientArbitrum_bytecode.json jq '.bytecode.object' < contracts/out/LightClientMock.sol/LightClientMock.json > contract-bindings/artifacts/LightClientMock_bytecode.json cargo fmt --all diff --git a/sequencer/src/network/cdn.rs b/sequencer/src/network/cdn.rs index a69c79518f..cc524b026a 100644 --- a/sequencer/src/network/cdn.rs +++ b/sequencer/src/network/cdn.rs @@ -80,7 +80,7 @@ impl SignatureScheme for WrappedSignatureKey { }; todo_by!( - "2025-1-4", + "2025-2-4", "Only accept the namespaced message once everyone has upgraded" ); public_key.0.validate(&signature, message) @@ -112,7 +112,7 @@ impl RunDef for ProductionDef { } todo_by!( - "2025-1-4", + "2025-2-4", "Remove this, switching to TCP+TLS singularly when everyone has updated" ); /// The user definition for the Push CDN. From 22cf5a30c03a84273f1be989aa455b4a50a69571 Mon Sep 17 00:00:00 2001 From: Alysia Huggins Date: Mon, 13 Jan 2025 14:38:21 -0500 Subject: [PATCH 5/8] old broadcasts --- .../421614/run-1736785553.json | 103 ---- .../421614/run-1736785957.json | 197 -------- .../421614/run-1736794002.json | 263 ---------- .../421614/run-1736794243.json | 263 ---------- .../421614/run-1736543852.json | 65 --- .../421614/run-1736543918.json | 65 --- .../421614/run-1736543987.json | 65 --- .../421614/run-1736544036.json | 65 --- .../421614/run-1736544114.json | 65 --- .../421614/run-1736602963.json | 103 ---- .../421614/run-1736603058.json | 103 ---- .../421614/run-1736603225.json | 136 ----- .../421614/run-1736603316.json | 103 ---- .../421614/run-1736603559.json | 103 ---- .../421614/run-1736603691.json | 263 ---------- .../421614/run-latest.json | 263 ---------- .../421614/run-1736544341.json | 34 -- .../421614/run-1736544438.json | 34 -- .../421614/run-1736544485.json | 34 -- .../421614/run-1736544842.json | 34 -- .../421614/run-1736544888.json | 34 -- .../421614/run-1736545062.json | 34 -- .../421614/run-1736600901.json | 34 -- .../421614/run-1736601342.json | 53 -- contracts/src/LightClient.sol | 473 ------------------ 25 files changed, 2989 deletions(-) delete mode 100644 contracts/broadcast/LightClientArb.s.sol/421614/run-1736785553.json delete mode 100644 contracts/broadcast/LightClientArb.s.sol/421614/run-1736785957.json delete mode 100644 contracts/broadcast/LightClientArb.s.sol/421614/run-1736794002.json delete mode 100644 contracts/broadcast/LightClientArb.s.sol/421614/run-1736794243.json delete mode 100644 contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736543852.json delete mode 100644 contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736543918.json delete mode 100644 contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736543987.json delete mode 100644 contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736544036.json delete mode 100644 contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736544114.json delete mode 100644 contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736602963.json delete mode 100644 contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603058.json delete mode 100644 contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603225.json delete mode 100644 contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603316.json delete mode 100644 contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603559.json delete mode 100644 contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603691.json delete mode 100644 contracts/broadcast/LightClientArbitrum.s.sol/421614/run-latest.json delete mode 100644 contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544341.json delete mode 100644 contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544438.json delete mode 100644 contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544485.json delete mode 100644 contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544842.json delete mode 100644 contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544888.json delete mode 100644 contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736545062.json delete mode 100644 contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736600901.json delete mode 100644 contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736601342.json delete mode 100644 contracts/src/LightClient.sol diff --git a/contracts/broadcast/LightClientArb.s.sol/421614/run-1736785553.json b/contracts/broadcast/LightClientArb.s.sol/421614/run-1736785553.json deleted file mode 100644 index 53b0de63cc..0000000000 --- a/contracts/broadcast/LightClientArb.s.sol/421614/run-1736785553.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "transactions": [ - { - "hash": null, - "transactionType": "CREATE", - "contractName": "LightClientArbitrum", - "contractAddress": "0x32ba90a34bb037454fe843c25ed5254aa4723e47", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "gas": "0x327901", - "value": "0x0", - "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000030565b6200002a62000030565b620000e4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000815760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000e15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b416200010e600039600081816111380152818161116101526112e00152612b416000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120c7565b610584565b005b34801561017e57600080fd5b5061019261018d3660046120e2565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612236565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b6101706103083660046123ea565b610848565b34801561031957600080fd5b506102a9610867565b34801561032e57600080fd5b50610170610884565b34801561034357600080fd5b506101706108f3565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b506103986103933660046120e2565b610905565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124a3565b610a38565b34801561041e57600080fd5b5061017061042d3660046124be565b610ac1565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c7919061258f565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125c2565b610bd5565b34801561055b57600080fd5b5061017061056a3660046120c7565b610d3b565b34801561057b57600080fd5b506009546102a9565b61058c610d7e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610dd9565b6107338282610e49565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610f41565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b600060646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084391906125e4565b905090565b61085061112d565b610859826111d2565b6108638282611213565b5050565b60006108716112d5565b50600080516020612b1583398151915290565b61088c610d7e565b6008546001600160a01b0316156108d857600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b6108fb610d7e565b6108f1600061131e565b6009805460009182919061091a600183612613565b8154811061092a5761092a612626565b6000918252602090912060029091020154600160801b90046001600160401b031684111561096b57604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610a3157846009828154811061099b5761099b612626565b6000918252602090912060029091020154600160801b90046001600160401b031610610a2957600981815481106109d4576109d4612626565b906000526020600020906002020160010154600982815481106109f9576109f9612626565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b60010161097f565b5050915091565b610a40610d7e565b610e108163ffffffff161080610a5f57506301e133808163ffffffff16115b80610a7d575060085463ffffffff600160a01b909104811690821611155b15610a9b576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b065750825b90506000826001600160401b03166001148015610b225750303b155b905081158015610b30575080155b15610b4e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b7857845460ff60401b1916600160401b1785555b610b848989898961138f565b8315610bca57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610be36107de565b841180610bee575080155b80610c395750600854600980549091600160c01b90046001600160401b0316908110610c1c57610c1c612626565b60009182526020909120600290910201546001600160401b031684105b15610c575760405163b0b4387760e01b815260040160405180910390fd5b60008080610c66600185612613565b90505b81610d0457600854600160c01b90046001600160401b03168110610d04578660098281548110610c9b57610c9b612626565b60009182526020909120600290910201546001600160401b031611610cf2576001915060098181548110610cd157610cd1612626565b60009182526020909120600290910201546001600160401b03169250610d04565b80610cfc8161263c565b915050610c69565b81610d225760405163b0b4387760e01b815260040160405180910390fd5b85610d2d8489612613565b119450505050505b92915050565b610d43610d7e565b6001600160a01b038116610d7257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d7b8161131e565b50565b33610db07f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146108f15760405163118cdaa760e01b8152336004820152602401610d69565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108635760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610d69565b6000610e53611462565b9050610e5d611e00565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273085a1ec0d51f4541d81a442a0df4c9e9c70d7d1e9063ce537a7790610edd9085908590889060040161285a565b602060405180830381865af4158015610efa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1e9190612a89565b610f3b576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590610fb7575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610f8157610f81612626565b6000918252602090912060029091020154610fac90600160401b90046001600160401b031684612aab565b6001600160401b0316115b1561104b57600854600980549091600160c01b90046001600160401b0316908110610fe457610fe4612626565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b031690601861102583612ad2565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806111b457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111a8600080516020612b15833981519152546001600160a01b031690565b6001600160a01b031614155b156108f15760405163703e46dd60e11b815260040160405180910390fd5b6111da610d7e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561126d575060408051601f3d908101601f1916820190925261126a918101906125e4565b60015b61129557604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d69565b600080516020612b1583398151915281146112c657604051632a87526960e21b815260048101829052602401610d69565b6112d08383611a91565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108f15760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156113d45750825b90506000826001600160401b031660011480156113f05750303b155b9050811580156113fe575080155b1561141c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561144657845460ff60401b1916600160401b1785555b61144f86611ae7565b611457611af8565b610b84898989611b00565b61146a611e1e565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611a9a82611c2d565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611adf576112d08282611c92565b610863611d08565b611aef611d27565b610d7b81611d70565b6108f1611d27565b82516001600160401b0316151580611b24575060208301516001600160401b031615155b80611b3157506020820151155b80611b3e57506040820151155b80611b4b57506060820151155b80611b5557508151155b80611b675750610e108163ffffffff16105b80611b7b57506301e133808163ffffffff16115b15611b99576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b806001600160a01b03163b600003611c6357604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d69565b600080516020612b1583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611caf9190612af8565b600060405180830381855af49150503d8060008114611cea576040519150601f19603f3d011682016040523d82523d6000602084013e611cef565b606091505b5091509150611cff858383611d78565b95945050505050565b34156108f15760405163b398979f60e01b815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166108f157604051631afcd79f60e31b815260040160405180910390fd5b610d43611d27565b606082611d8d57611d8882611dd7565b611dd0565b8151158015611da457506001600160a01b0384163b155b15611dcd57604051639996b31560e01b81526001600160a01b0385166004820152602401610d69565b50805b9392505050565b805115611de75780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e55604051806040016040528060008152602001600081525090565b8152602001611e77604051806040016040528060008152602001600081525090565b8152602001611e99604051806040016040528060008152602001600081525090565b8152602001611ebb604051806040016040528060008152602001600081525090565b8152602001611edd604051806040016040528060008152602001600081525090565b8152602001611eff604051806040016040528060008152602001600081525090565b8152602001611f21604051806040016040528060008152602001600081525090565b8152602001611f43604051806040016040528060008152602001600081525090565b8152602001611f65604051806040016040528060008152602001600081525090565b8152602001611f87604051806040016040528060008152602001600081525090565b8152602001611fa9604051806040016040528060008152602001600081525090565b8152602001611fcb604051806040016040528060008152602001600081525090565b8152602001611fed604051806040016040528060008152602001600081525090565b815260200161200f604051806040016040528060008152602001600081525090565b8152602001612031604051806040016040528060008152602001600081525090565b8152602001612053604051806040016040528060008152602001600081525090565b8152602001612075604051806040016040528060008152602001600081525090565b8152602001612097604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120c257600080fd5b919050565b6000602082840312156120d957600080fd5b611dd0826120ab565b6000602082840312156120f457600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b0381118282101715612134576121346120fb565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612162576121626120fb565b604052919050565b80356001600160401b03811681146120c257600080fd5b60006060828403121561219357600080fd5b604051606081018181106001600160401b03821117156121b5576121b56120fb565b6040529050806121c48361216a565b81526121d26020840161216a565b6020820152604083013560408201525092915050565b6000604082840312156121fa57600080fd5b604051604081018181106001600160401b038211171561221c5761221c6120fb565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561224b57600080fd5b6122558585612181565b925061048080605f198301121561226b57600080fd5b612273612111565b915061228286606087016121e8565b82526122918660a087016121e8565b60208301526122a38660e087016121e8565b60408301526101206122b7878288016121e8565b60608401526101606122cb888289016121e8565b60808501526101a06122df89828a016121e8565b60a08601526101e06122f38a828b016121e8565b60c08701526102206123078b828c016121e8565b60e088015261026061231b8c828d016121e8565b6101008901526102a06123308d828e016121e8565b878a01526123428d6102e08e016121e8565b6101408a01526123568d6103208e016121e8565b868a01526123688d6103608e016121e8565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b600080604083850312156123fd57600080fd5b612406836120ab565b91506020808401356001600160401b038082111561242357600080fd5b818601915086601f83011261243757600080fd5b813581811115612449576124496120fb565b61245b601f8201601f1916850161213a565b9150808252878482850101111561247157600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120c257600080fd5b6000602082840312156124b557600080fd5b611dd08261248f565b6000806000808486036101208112156124d657600080fd5b6124e08787612181565b94506080605f19820112156124f457600080fd5b50604051608081018181106001600160401b0382111715612517576125176120fb565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061255160e0860161248f565b915061256061010086016120ab565b905092959194509250565b60005b8381101561258657818101518382015260200161256e565b50506000910152565b60208152600082518060208401526125ae81604085016020870161256b565b601f01601f19169190910160400192915050565b600080604083850312156125d557600080fd5b50508035926020909101359150565b6000602082840312156125f657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610d3557610d356125fd565b634e487b7160e01b600052603260045260246000fd5b60008161264b5761264b6125fd565b506000190190565b8060005b6007811015610f3b578151845260209384019390910190600101612657565b61268b82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e08401525060808101516101006126ee8185018380518252602090810151910152565b60a0830151915061014061270e8186018480518252602090810151910152565b60c0840151925061018061272e8187018580518252602090810151910152565b60e085015193506101c061274e8188018680518252602090810151910152565b9285015193506102009261276e8785018680518252602090810151910152565b610120860151945061024061278f8189018780518252602090810151910152565b928601519450610280926127af8885018780518252602090810151910152565b61016087015195506102c06127d0818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a60820190508451825260208501516020830152604085015161288d604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a08501516101006128da8185018380518252602090810151910152565b60c087015191506101406128fa8186018480518252602090810151910152565b60e0880151925061018061291a8187018580518252602090810151910152565b9188015192506101c09161293a8684018580518252602090810151910152565b610120890151935061020061295b8188018680518252602090810151910152565b9189015193506102409161297b8784018680518252602090810151910152565b6101608a0151945061028061299c8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612a73610500830185612653565b612a816105e0830184612676565b949350505050565b600060208284031215612a9b57600080fd5b81518015158114611dd057600080fd5b6001600160401b03828116828216039080821115612acb57612acb6125fd565b5092915050565b60006001600160401b03808316818103612aee57612aee6125fd565b6001019392505050565b60008251612b0a81846020870161256b565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", - "nonce": "0x24", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": null, - "transactionType": "CREATE", - "contractName": "ERC1967Proxy", - "contractAddress": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", - "function": null, - "arguments": [ - "0x32BA90a34bb037454fe843c25ed5254aA4723E47", - "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" - ], - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "gas": "0x6ac5f", - "value": "0x0", - "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a00000000000000000000000032ba90a34bb037454fe843c25ed5254aa4723e47000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e00000000000000000000000000000000000000000000000000000000", - "nonce": "0x25", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": null, - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", - "gas": "0x754c", - "value": "0x0", - "input": "0x013fa5fc000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", - "nonce": "0x26", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": null, - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", - "gas": "0x754c", - "value": "0x0", - "input": "0xf2fde38b0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be", - "nonce": "0x27", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [], - "libraries": [ - "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x085a1Ec0d51f4541d81a442a0Df4c9E9C70D7D1e" - ], - "pending": [], - "returns": { - "implementationAddress": { - "internal_type": "address", - "value": "0x32BA90a34bb037454fe843c25ed5254aA4723E47" - }, - "proxyAddress": { - "internal_type": "address", - "value": "0xdD5bc34ef6E04a5E3BDE097cEA889D391CBcF8cd" - }, - "lightClientState": { - "internal_type": "struct LightClient.LightClientState", - "value": "(0, 0, 1234)" - } - }, - "timestamp": 1736785553, - "chain": 421614, - "commit": "9c97b7e0d" -} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArb.s.sol/421614/run-1736785957.json b/contracts/broadcast/LightClientArb.s.sol/421614/run-1736785957.json deleted file mode 100644 index 6f0f2d6262..0000000000 --- a/contracts/broadcast/LightClientArb.s.sol/421614/run-1736785957.json +++ /dev/null @@ -1,197 +0,0 @@ -{ - "transactions": [ - { - "hash": "0x0e7302701b888b6e428b35635a80803c313ad519fc2ace24dd226bc0d2f8ade5", - "transactionType": "CREATE", - "contractName": "LightClientArbitrum", - "contractAddress": "0x32ba90a34bb037454fe843c25ed5254aa4723e47", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "gas": "0x364625", - "value": "0x0", - "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000030565b6200002a62000030565b620000e4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000815760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000e15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b416200010e600039600081816111380152818161116101526112e00152612b416000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120c7565b610584565b005b34801561017e57600080fd5b5061019261018d3660046120e2565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612236565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b6101706103083660046123ea565b610848565b34801561031957600080fd5b506102a9610867565b34801561032e57600080fd5b50610170610884565b34801561034357600080fd5b506101706108f3565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b506103986103933660046120e2565b610905565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124a3565b610a38565b34801561041e57600080fd5b5061017061042d3660046124be565b610ac1565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c7919061258f565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125c2565b610bd5565b34801561055b57600080fd5b5061017061056a3660046120c7565b610d3b565b34801561057b57600080fd5b506009546102a9565b61058c610d7e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610dd9565b6107338282610e49565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610f41565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b600060646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084391906125e4565b905090565b61085061112d565b610859826111d2565b6108638282611213565b5050565b60006108716112d5565b50600080516020612b1583398151915290565b61088c610d7e565b6008546001600160a01b0316156108d857600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b6108fb610d7e565b6108f1600061131e565b6009805460009182919061091a600183612613565b8154811061092a5761092a612626565b6000918252602090912060029091020154600160801b90046001600160401b031684111561096b57604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610a3157846009828154811061099b5761099b612626565b6000918252602090912060029091020154600160801b90046001600160401b031610610a2957600981815481106109d4576109d4612626565b906000526020600020906002020160010154600982815481106109f9576109f9612626565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b60010161097f565b5050915091565b610a40610d7e565b610e108163ffffffff161080610a5f57506301e133808163ffffffff16115b80610a7d575060085463ffffffff600160a01b909104811690821611155b15610a9b576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b065750825b90506000826001600160401b03166001148015610b225750303b155b905081158015610b30575080155b15610b4e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b7857845460ff60401b1916600160401b1785555b610b848989898961138f565b8315610bca57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610be36107de565b841180610bee575080155b80610c395750600854600980549091600160c01b90046001600160401b0316908110610c1c57610c1c612626565b60009182526020909120600290910201546001600160401b031684105b15610c575760405163b0b4387760e01b815260040160405180910390fd5b60008080610c66600185612613565b90505b81610d0457600854600160c01b90046001600160401b03168110610d04578660098281548110610c9b57610c9b612626565b60009182526020909120600290910201546001600160401b031611610cf2576001915060098181548110610cd157610cd1612626565b60009182526020909120600290910201546001600160401b03169250610d04565b80610cfc8161263c565b915050610c69565b81610d225760405163b0b4387760e01b815260040160405180910390fd5b85610d2d8489612613565b119450505050505b92915050565b610d43610d7e565b6001600160a01b038116610d7257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d7b8161131e565b50565b33610db07f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146108f15760405163118cdaa760e01b8152336004820152602401610d69565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108635760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610d69565b6000610e53611462565b9050610e5d611e00565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273085a1ec0d51f4541d81a442a0df4c9e9c70d7d1e9063ce537a7790610edd9085908590889060040161285a565b602060405180830381865af4158015610efa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1e9190612a89565b610f3b576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590610fb7575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610f8157610f81612626565b6000918252602090912060029091020154610fac90600160401b90046001600160401b031684612aab565b6001600160401b0316115b1561104b57600854600980549091600160c01b90046001600160401b0316908110610fe457610fe4612626565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b031690601861102583612ad2565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806111b457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111a8600080516020612b15833981519152546001600160a01b031690565b6001600160a01b031614155b156108f15760405163703e46dd60e11b815260040160405180910390fd5b6111da610d7e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561126d575060408051601f3d908101601f1916820190925261126a918101906125e4565b60015b61129557604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d69565b600080516020612b1583398151915281146112c657604051632a87526960e21b815260048101829052602401610d69565b6112d08383611a91565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108f15760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156113d45750825b90506000826001600160401b031660011480156113f05750303b155b9050811580156113fe575080155b1561141c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561144657845460ff60401b1916600160401b1785555b61144f86611ae7565b611457611af8565b610b84898989611b00565b61146a611e1e565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611a9a82611c2d565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611adf576112d08282611c92565b610863611d08565b611aef611d27565b610d7b81611d70565b6108f1611d27565b82516001600160401b0316151580611b24575060208301516001600160401b031615155b80611b3157506020820151155b80611b3e57506040820151155b80611b4b57506060820151155b80611b5557508151155b80611b675750610e108163ffffffff16105b80611b7b57506301e133808163ffffffff16115b15611b99576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b806001600160a01b03163b600003611c6357604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d69565b600080516020612b1583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611caf9190612af8565b600060405180830381855af49150503d8060008114611cea576040519150601f19603f3d011682016040523d82523d6000602084013e611cef565b606091505b5091509150611cff858383611d78565b95945050505050565b34156108f15760405163b398979f60e01b815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166108f157604051631afcd79f60e31b815260040160405180910390fd5b610d43611d27565b606082611d8d57611d8882611dd7565b611dd0565b8151158015611da457506001600160a01b0384163b155b15611dcd57604051639996b31560e01b81526001600160a01b0385166004820152602401610d69565b50805b9392505050565b805115611de75780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e55604051806040016040528060008152602001600081525090565b8152602001611e77604051806040016040528060008152602001600081525090565b8152602001611e99604051806040016040528060008152602001600081525090565b8152602001611ebb604051806040016040528060008152602001600081525090565b8152602001611edd604051806040016040528060008152602001600081525090565b8152602001611eff604051806040016040528060008152602001600081525090565b8152602001611f21604051806040016040528060008152602001600081525090565b8152602001611f43604051806040016040528060008152602001600081525090565b8152602001611f65604051806040016040528060008152602001600081525090565b8152602001611f87604051806040016040528060008152602001600081525090565b8152602001611fa9604051806040016040528060008152602001600081525090565b8152602001611fcb604051806040016040528060008152602001600081525090565b8152602001611fed604051806040016040528060008152602001600081525090565b815260200161200f604051806040016040528060008152602001600081525090565b8152602001612031604051806040016040528060008152602001600081525090565b8152602001612053604051806040016040528060008152602001600081525090565b8152602001612075604051806040016040528060008152602001600081525090565b8152602001612097604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120c257600080fd5b919050565b6000602082840312156120d957600080fd5b611dd0826120ab565b6000602082840312156120f457600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b0381118282101715612134576121346120fb565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612162576121626120fb565b604052919050565b80356001600160401b03811681146120c257600080fd5b60006060828403121561219357600080fd5b604051606081018181106001600160401b03821117156121b5576121b56120fb565b6040529050806121c48361216a565b81526121d26020840161216a565b6020820152604083013560408201525092915050565b6000604082840312156121fa57600080fd5b604051604081018181106001600160401b038211171561221c5761221c6120fb565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561224b57600080fd5b6122558585612181565b925061048080605f198301121561226b57600080fd5b612273612111565b915061228286606087016121e8565b82526122918660a087016121e8565b60208301526122a38660e087016121e8565b60408301526101206122b7878288016121e8565b60608401526101606122cb888289016121e8565b60808501526101a06122df89828a016121e8565b60a08601526101e06122f38a828b016121e8565b60c08701526102206123078b828c016121e8565b60e088015261026061231b8c828d016121e8565b6101008901526102a06123308d828e016121e8565b878a01526123428d6102e08e016121e8565b6101408a01526123568d6103208e016121e8565b868a01526123688d6103608e016121e8565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b600080604083850312156123fd57600080fd5b612406836120ab565b91506020808401356001600160401b038082111561242357600080fd5b818601915086601f83011261243757600080fd5b813581811115612449576124496120fb565b61245b601f8201601f1916850161213a565b9150808252878482850101111561247157600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120c257600080fd5b6000602082840312156124b557600080fd5b611dd08261248f565b6000806000808486036101208112156124d657600080fd5b6124e08787612181565b94506080605f19820112156124f457600080fd5b50604051608081018181106001600160401b0382111715612517576125176120fb565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061255160e0860161248f565b915061256061010086016120ab565b905092959194509250565b60005b8381101561258657818101518382015260200161256e565b50506000910152565b60208152600082518060208401526125ae81604085016020870161256b565b601f01601f19169190910160400192915050565b600080604083850312156125d557600080fd5b50508035926020909101359150565b6000602082840312156125f657600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610d3557610d356125fd565b634e487b7160e01b600052603260045260246000fd5b60008161264b5761264b6125fd565b506000190190565b8060005b6007811015610f3b578151845260209384019390910190600101612657565b61268b82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e08401525060808101516101006126ee8185018380518252602090810151910152565b60a0830151915061014061270e8186018480518252602090810151910152565b60c0840151925061018061272e8187018580518252602090810151910152565b60e085015193506101c061274e8188018680518252602090810151910152565b9285015193506102009261276e8785018680518252602090810151910152565b610120860151945061024061278f8189018780518252602090810151910152565b928601519450610280926127af8885018780518252602090810151910152565b61016087015195506102c06127d0818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a60820190508451825260208501516020830152604085015161288d604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a08501516101006128da8185018380518252602090810151910152565b60c087015191506101406128fa8186018480518252602090810151910152565b60e0880151925061018061291a8187018580518252602090810151910152565b9188015192506101c09161293a8684018580518252602090810151910152565b610120890151935061020061295b8188018680518252602090810151910152565b9189015193506102409161297b8784018680518252602090810151910152565b6101608a0151945061028061299c8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612a73610500830185612653565b612a816105e0830184612676565b949350505050565b600060208284031215612a9b57600080fd5b81518015158114611dd057600080fd5b6001600160401b03828116828216039080821115612acb57612acb6125fd565b5092915050565b60006001600160401b03808316818103612aee57612aee6125fd565b6001019392505050565b60008251612b0a81846020870161256b565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", - "nonce": "0x24", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x9fa47bd6a050d082431c44f52ba7f76c6d5f20e148074ab1e7dea25fcd0261e9", - "transactionType": "CREATE", - "contractName": "ERC1967Proxy", - "contractAddress": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", - "function": null, - "arguments": [ - "0x32BA90a34bb037454fe843c25ed5254aA4723E47", - "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" - ], - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "gas": "0x6ac5f", - "value": "0x0", - "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a00000000000000000000000032ba90a34bb037454fe843c25ed5254aa4723e47000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e00000000000000000000000000000000000000000000000000000000", - "nonce": "0x25", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": null, - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", - "gas": "0x8e72", - "value": "0x0", - "input": "0x013fa5fc000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", - "nonce": "0x26", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": null, - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", - "gas": "0x8e72", - "value": "0x0", - "input": "0xf2fde38b0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be", - "nonce": "0x27", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "status": "0x1", - "cumulativeGasUsed": "0x5c9c27", - "logs": [ - { - "address": "0x32ba90a34bb037454fe843c25ed5254aa4723e47", - "topics": [ - "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" - ], - "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "blockHash": "0x48c0d61768ac51679adf7461e6f5dec40a79e652f258fa3edfecff7ebaaffa09", - "blockNumber": "0x6d5345f", - "transactionHash": "0x0e7302701b888b6e428b35635a80803c313ad519fc2ace24dd226bc0d2f8ade5", - "transactionIndex": "0x2a", - "logIndex": "0x32", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x0e7302701b888b6e428b35635a80803c313ad519fc2ace24dd226bc0d2f8ade5", - "transactionIndex": "0x2a", - "blockHash": "0x48c0d61768ac51679adf7461e6f5dec40a79e652f258fa3edfecff7ebaaffa09", - "blockNumber": "0x6d5345f", - "gasUsed": "0x290536", - "effectiveGasPrice": "0x5f5e100", - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": null, - "contractAddress": "0x32ba90a34bb037454fe843c25ed5254aa4723e47", - "gasUsedForL1": "0x34cf6", - "l1BlockNumber": "0x72313e" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x210978", - "logs": [ - { - "address": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x00000000000000000000000032ba90a34bb037454fe843c25ed5254aa4723e47" - ], - "data": "0x", - "blockHash": "0x670cba6f141e068053986ec8782ed834bef4ead5c22a25efb282a4b1d503b72d", - "blockNumber": "0x6d53462", - "transactionHash": "0x9fa47bd6a050d082431c44f52ba7f76c6d5f20e148074ab1e7dea25fcd0261e9", - "transactionIndex": "0x22", - "logIndex": "0x21", - "removed": false - }, - { - "address": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" - ], - "data": "0x", - "blockHash": "0x670cba6f141e068053986ec8782ed834bef4ead5c22a25efb282a4b1d503b72d", - "blockNumber": "0x6d53462", - "transactionHash": "0x9fa47bd6a050d082431c44f52ba7f76c6d5f20e148074ab1e7dea25fcd0261e9", - "transactionIndex": "0x22", - "logIndex": "0x22", - "removed": false - }, - { - "address": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", - "topics": [ - "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0x670cba6f141e068053986ec8782ed834bef4ead5c22a25efb282a4b1d503b72d", - "blockNumber": "0x6d53462", - "transactionHash": "0x9fa47bd6a050d082431c44f52ba7f76c6d5f20e148074ab1e7dea25fcd0261e9", - "transactionIndex": "0x22", - "logIndex": "0x23", - "removed": false - } - ], - "logsBloom": "0x00000000000000000100000000000000400000010000000000800000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000002000001000000000000000000000000000000080000020000000000400000000800020000000000000000000000000000400000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020004000000000000000000000000000000004004000000000000020000000000000000000000000000000000000000000000000000000000000000200", - "type": "0x2", - "transactionHash": "0x9fa47bd6a050d082431c44f52ba7f76c6d5f20e148074ab1e7dea25fcd0261e9", - "transactionIndex": "0x22", - "blockHash": "0x670cba6f141e068053986ec8782ed834bef4ead5c22a25efb282a4b1d503b72d", - "blockNumber": "0x6d53462", - "gasUsed": "0x5ac4b", - "effectiveGasPrice": "0x5f5e100", - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": null, - "contractAddress": "0xdd5bc34ef6e04a5e3bde097cea889d391cbcf8cd", - "gasUsedForL1": "0x89cf", - "l1BlockNumber": "0x72313e" - } - ], - "libraries": [ - "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x085a1Ec0d51f4541d81a442a0Df4c9E9C70D7D1e" - ], - "pending": [], - "returns": { - "lightClientState": { - "internal_type": "struct LightClient.LightClientState", - "value": "(0, 0, 1234)" - }, - "proxyAddress": { - "internal_type": "address", - "value": "0xdD5bc34ef6E04a5E3BDE097cEA889D391CBcF8cd" - }, - "implementationAddress": { - "internal_type": "address", - "value": "0x32BA90a34bb037454fe843c25ed5254aA4723E47" - } - }, - "timestamp": 1736785957, - "chain": 421614, - "commit": "9c97b7e0d" -} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArb.s.sol/421614/run-1736794002.json b/contracts/broadcast/LightClientArb.s.sol/421614/run-1736794002.json deleted file mode 100644 index c5692b0459..0000000000 --- a/contracts/broadcast/LightClientArb.s.sol/421614/run-1736794002.json +++ /dev/null @@ -1,263 +0,0 @@ -{ - "transactions": [ - { - "hash": "0x8ee4fc5716aab2d9a20d449801f173d3cf161c7f3be5636619a125fece62d466", - "transactionType": "CREATE", - "contractName": "LightClientArbitrum", - "contractAddress": "0xbc46bbc10e6a3b4578011a8f5a91c1ca7214a541", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "gas": "0x36f946", - "value": "0x0", - "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000030565b6200002a62000030565b620000e4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000815760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000e15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612a7e6200010e600039600081816111480152818161117101526112f00152612a7e6000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b366004612004565b610584565b005b34801561017e57600080fd5b5061019261018d36600461201f565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612173565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b610170610308366004612327565b610848565b34801561031957600080fd5b506102a9610867565b34801561032e57600080fd5b50610170610884565b34801561034357600080fd5b506101706108f3565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b5061039861039336600461201f565b610905565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046123e0565b610a38565b34801561041e57600080fd5b5061017061042d3660046123fb565b610ac1565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906124cc565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046124ff565b610be5565b34801561055b57600080fd5b5061017061056a366004612004565b610d4b565b34801561057b57600080fd5b506009546102a9565b61058c610d8e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610de9565b6107338282610e59565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610f51565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b600060646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108439190612521565b905090565b61085061113d565b610859826111e2565b6108638282611223565b5050565b60006108716112e5565b50600080516020612a5283398151915290565b61088c610d8e565b6008546001600160a01b0316156108d857600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b6108fb610d8e565b6108f1600061132e565b6009805460009182919061091a600183612550565b8154811061092a5761092a612563565b6000918252602090912060029091020154600160801b90046001600160401b031684111561096b57604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610a3157846009828154811061099b5761099b612563565b6000918252602090912060029091020154600160801b90046001600160401b031610610a2957600981815481106109d4576109d4612563565b906000526020600020906002020160010154600982815481106109f9576109f9612563565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b60010161097f565b5050915091565b610a40610d8e565b610e108163ffffffff161080610a5f57506301e133808163ffffffff16115b80610a7d575060085463ffffffff600160a01b909104811690821611155b15610a9b576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b065750825b90506000826001600160401b03166001148015610b225750303b155b905081158015610b30575080155b15610b4e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b7857845460ff60401b1916600160401b1785555b610b818661139f565b610b896113b0565b610b948989896113b8565b8315610bda57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610bf36107de565b841180610bfe575080155b80610c495750600854600980549091600160c01b90046001600160401b0316908110610c2c57610c2c612563565b60009182526020909120600290910201546001600160401b031684105b15610c675760405163b0b4387760e01b815260040160405180910390fd5b60008080610c76600185612550565b90505b81610d1457600854600160c01b90046001600160401b03168110610d14578660098281548110610cab57610cab612563565b60009182526020909120600290910201546001600160401b031611610d02576001915060098181548110610ce157610ce1612563565b60009182526020909120600290910201546001600160401b03169250610d14565b80610d0c81612579565b915050610c79565b81610d325760405163b0b4387760e01b815260040160405180910390fd5b85610d3d8489612550565b119450505050505b92915050565b610d53610d8e565b6001600160a01b038116610d8257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d8b8161132e565b50565b33610dc07f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146108f15760405163118cdaa760e01b8152336004820152602401610d79565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108635760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610d79565b6000610e636114e5565b9050610e6d611d3d565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273085a1ec0d51f4541d81a442a0df4c9e9c70d7d1e9063ce537a7790610eed90859085908890600401612797565b602060405180830381865af4158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e91906129c6565b610f4b576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590610fc7575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610f9157610f91612563565b6000918252602090912060029091020154610fbc90600160401b90046001600160401b0316846129e8565b6001600160401b0316115b1561105b57600854600980549091600160c01b90046001600160401b0316908110610ff457610ff4612563565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b031690601861103583612a0f565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806111c457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111b8600080516020612a52833981519152546001600160a01b031690565b6001600160a01b031614155b156108f15760405163703e46dd60e11b815260040160405180910390fd5b6111ea610d8e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561127d575060408051601f3d908101601f1916820190925261127a91810190612521565b60015b6112a557604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d79565b600080516020612a5283398151915281146112d657604051632a87526960e21b815260048101829052602401610d79565b6112e08383611b14565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108f15760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6113a7611b6a565b610d8b81611bb3565b6108f1611b6a565b82516001600160401b03161515806113dc575060208301516001600160401b031615155b806113e957506020820151155b806113f657506040820151155b8061140357506060820151155b8061140d57508151155b8061141f5750610e108163ffffffff16105b8061143357506301e133808163ffffffff16115b15611451576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6114ed611d5b565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611b1d82611bbb565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611b62576112e08282611c20565b610863611c96565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166108f157604051631afcd79f60e31b815260040160405180910390fd5b610d53611b6a565b806001600160a01b03163b600003611bf157604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d79565b600080516020612a5283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611c3d9190612a35565b600060405180830381855af49150503d8060008114611c78576040519150601f19603f3d011682016040523d82523d6000602084013e611c7d565b606091505b5091509150611c8d858383611cb5565b95945050505050565b34156108f15760405163b398979f60e01b815260040160405180910390fd5b606082611cca57611cc582611d14565b611d0d565b8151158015611ce157506001600160a01b0384163b155b15611d0a57604051639996b31560e01b81526001600160a01b0385166004820152602401610d79565b50805b9392505050565b805115611d245780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611d92604051806040016040528060008152602001600081525090565b8152602001611db4604051806040016040528060008152602001600081525090565b8152602001611dd6604051806040016040528060008152602001600081525090565b8152602001611df8604051806040016040528060008152602001600081525090565b8152602001611e1a604051806040016040528060008152602001600081525090565b8152602001611e3c604051806040016040528060008152602001600081525090565b8152602001611e5e604051806040016040528060008152602001600081525090565b8152602001611e80604051806040016040528060008152602001600081525090565b8152602001611ea2604051806040016040528060008152602001600081525090565b8152602001611ec4604051806040016040528060008152602001600081525090565b8152602001611ee6604051806040016040528060008152602001600081525090565b8152602001611f08604051806040016040528060008152602001600081525090565b8152602001611f2a604051806040016040528060008152602001600081525090565b8152602001611f4c604051806040016040528060008152602001600081525090565b8152602001611f6e604051806040016040528060008152602001600081525090565b8152602001611f90604051806040016040528060008152602001600081525090565b8152602001611fb2604051806040016040528060008152602001600081525090565b8152602001611fd4604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b0381168114611fff57600080fd5b919050565b60006020828403121561201657600080fd5b611d0d82611fe8565b60006020828403121561203157600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b038111828210171561207157612071612038565b60405290565b604051601f8201601f191681016001600160401b038111828210171561209f5761209f612038565b604052919050565b80356001600160401b0381168114611fff57600080fd5b6000606082840312156120d057600080fd5b604051606081018181106001600160401b03821117156120f2576120f2612038565b604052905080612101836120a7565b815261210f602084016120a7565b6020820152604083013560408201525092915050565b60006040828403121561213757600080fd5b604051604081018181106001600160401b038211171561215957612159612038565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561218857600080fd5b61219285856120be565b925061048080605f19830112156121a857600080fd5b6121b061204e565b91506121bf8660608701612125565b82526121ce8660a08701612125565b60208301526121e08660e08701612125565b60408301526101206121f487828801612125565b606084015261016061220888828901612125565b60808501526101a061221c89828a01612125565b60a08601526101e06122308a828b01612125565b60c08701526102206122448b828c01612125565b60e08801526102606122588c828d01612125565b6101008901526102a061226d8d828e01612125565b878a015261227f8d6102e08e01612125565b6101408a01526122938d6103208e01612125565b868a01526122a58d6103608e01612125565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561233a57600080fd5b61234383611fe8565b91506020808401356001600160401b038082111561236057600080fd5b818601915086601f83011261237457600080fd5b81358181111561238657612386612038565b612398601f8201601f19168501612077565b915080825287848285010111156123ae57600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff81168114611fff57600080fd5b6000602082840312156123f257600080fd5b611d0d826123cc565b60008060008084860361012081121561241357600080fd5b61241d87876120be565b94506080605f198201121561243157600080fd5b50604051608081018181106001600160401b038211171561245457612454612038565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061248e60e086016123cc565b915061249d6101008601611fe8565b905092959194509250565b60005b838110156124c35781810151838201526020016124ab565b50506000910152565b60208152600082518060208401526124eb8160408501602087016124a8565b601f01601f19169190910160400192915050565b6000806040838503121561251257600080fd5b50508035926020909101359150565b60006020828403121561253357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610d4557610d4561253a565b634e487b7160e01b600052603260045260246000fd5b6000816125885761258861253a565b506000190190565b8060005b6007811015610f4b578151845260209384019390910190600101612594565b6125c882825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061262b8185018380518252602090810151910152565b60a0830151915061014061264b8186018480518252602090810151910152565b60c0840151925061018061266b8187018580518252602090810151910152565b60e085015193506101c061268b8188018680518252602090810151910152565b928501519350610200926126ab8785018680518252602090810151910152565b61012086015194506102406126cc8189018780518252602090810151910152565b928601519450610280926126ec8885018780518252602090810151910152565b61016087015195506102c061270d818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516127ca604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a08501516101006128178185018380518252602090810151910152565b60c087015191506101406128378186018480518252602090810151910152565b60e088015192506101806128578187018580518252602090810151910152565b9188015192506101c0916128778684018580518252602090810151910152565b61012089015193506102006128988188018680518252602090810151910152565b918901519350610240916128b88784018680518252602090810151910152565b6101608a015194506102806128d98189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e08301526129b0610500830185612590565b6129be6105e08301846125b3565b949350505050565b6000602082840312156129d857600080fd5b81518015158114611d0d57600080fd5b6001600160401b03828116828216039080821115612a0857612a0861253a565b5092915050565b60006001600160401b03808316818103612a2b57612a2b61253a565b6001019392505050565b60008251612a478184602087016124a8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", - "nonce": "0x27", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xbcf29ebae56fcdb3236c61b7bbc490bc66e86be47bfc91cc049fbc8f28b7b0e7", - "transactionType": "CREATE", - "contractName": "ERC1967Proxy", - "contractAddress": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", - "function": null, - "arguments": [ - "0xbC46bBC10E6A3B4578011A8F5A91c1Ca7214a541", - "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" - ], - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "gas": "0x6a8bd", - "value": "0x0", - "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a000000000000000000000000bc46bbc10e6a3b4578011a8f5a91c1ca7214a541000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e00000000000000000000000000000000000000000000000000000000", - "nonce": "0x28", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xfaf043edabb524e6e96666bb2e1067ed55efa7fe93640273e7728f0ba1e98400", - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", - "gas": "0x98f7", - "value": "0x0", - "input": "0x013fa5fc000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", - "nonce": "0x29", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xf66e104b03cc22d470375cad370469f4aee371d721ee833107c5eb88556e4fc2", - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", - "gas": "0x98f7", - "value": "0x0", - "input": "0xf2fde38b0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be", - "nonce": "0x2a", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "status": "0x1", - "cumulativeGasUsed": "0x10e525a", - "logs": [ - { - "address": "0xbc46bbc10e6a3b4578011a8f5a91c1ca7214a541", - "topics": [ - "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" - ], - "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "blockHash": "0xba34f5d1c0bd2957d8b5332ab36948712f2f3b1b52216af997dccca51e8eb48f", - "blockNumber": "0x6d557b3", - "transactionHash": "0x8ee4fc5716aab2d9a20d449801f173d3cf161c7f3be5636619a125fece62d466", - "transactionIndex": "0x22", - "logIndex": "0x135", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000004000000000002000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x8ee4fc5716aab2d9a20d449801f173d3cf161c7f3be5636619a125fece62d466", - "transactionIndex": "0x22", - "blockHash": "0xba34f5d1c0bd2957d8b5332ab36948712f2f3b1b52216af997dccca51e8eb48f", - "blockNumber": "0x6d557b3", - "gasUsed": "0x296f40", - "effectiveGasPrice": "0x5f5e100", - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": null, - "contractAddress": "0xbc46bbc10e6a3b4578011a8f5a91c1ca7214a541", - "gasUsedForL1": "0x45b8c", - "l1BlockNumber": "0x7233dc" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x586756", - "logs": [ - { - "address": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x000000000000000000000000bc46bbc10e6a3b4578011a8f5a91c1ca7214a541" - ], - "data": "0x", - "blockHash": "0x63aef7ccc37414cbffca1463329e5a499fafadd9d0d8c70673c667c83e684f5e", - "blockNumber": "0x6d557b5", - "transactionHash": "0xbcf29ebae56fcdb3236c61b7bbc490bc66e86be47bfc91cc049fbc8f28b7b0e7", - "transactionIndex": "0x15", - "logIndex": "0x20", - "removed": false - }, - { - "address": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" - ], - "data": "0x", - "blockHash": "0x63aef7ccc37414cbffca1463329e5a499fafadd9d0d8c70673c667c83e684f5e", - "blockNumber": "0x6d557b5", - "transactionHash": "0xbcf29ebae56fcdb3236c61b7bbc490bc66e86be47bfc91cc049fbc8f28b7b0e7", - "transactionIndex": "0x15", - "logIndex": "0x21", - "removed": false - }, - { - "address": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", - "topics": [ - "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0x63aef7ccc37414cbffca1463329e5a499fafadd9d0d8c70673c667c83e684f5e", - "blockNumber": "0x6d557b5", - "transactionHash": "0xbcf29ebae56fcdb3236c61b7bbc490bc66e86be47bfc91cc049fbc8f28b7b0e7", - "transactionIndex": "0x15", - "logIndex": "0x22", - "removed": false - } - ], - "logsBloom": "0x00000000000000000100000000000000400000000000000000800000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000002000001000000000000000000000000000000080000020000000000000000000800000000000000000000000000000000400000000000000000000800000000000400000000000080000000000000000000000000000000000002000000000000000000000000008000000000000000000000000020004000000000000000000000000000000004000000000000008020000004000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xbcf29ebae56fcdb3236c61b7bbc490bc66e86be47bfc91cc049fbc8f28b7b0e7", - "transactionIndex": "0x15", - "blockHash": "0x63aef7ccc37414cbffca1463329e5a499fafadd9d0d8c70673c667c83e684f5e", - "blockNumber": "0x6d557b5", - "gasUsed": "0x5d71d", - "effectiveGasPrice": "0x5f5e100", - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": null, - "contractAddress": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", - "gasUsedForL1": "0xb76c", - "l1BlockNumber": "0x7233dc" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0xd5b4b", - "logs": [ - { - "address": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", - "topics": [ - "0x8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072" - ], - "data": "0x000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", - "blockHash": "0x916e3a1862d770bbba2605b5f8bdaccb5e326deb13456d2dd1578170a1e1d1d5", - "blockNumber": "0x6d557b7", - "transactionHash": "0xfaf043edabb524e6e96666bb2e1067ed55efa7fe93640273e7728f0ba1e98400", - "transactionIndex": "0x11", - "logIndex": "0x12", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400200000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xfaf043edabb524e6e96666bb2e1067ed55efa7fe93640273e7728f0ba1e98400", - "transactionIndex": "0x11", - "blockHash": "0x916e3a1862d770bbba2605b5f8bdaccb5e326deb13456d2dd1578170a1e1d1d5", - "blockNumber": "0x6d557b7", - "gasUsed": "0xa1b8", - "effectiveGasPrice": "0x5f5e100", - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", - "contractAddress": null, - "gasUsedForL1": "0x1864", - "l1BlockNumber": "0x7233dc" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0xed1a1", - "logs": [ - { - "address": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e", - "0x0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be" - ], - "data": "0x", - "blockHash": "0xb9f1375d9bbe224e44bc816b9bd486b80df08ce7458d5e2db84c0cb761072328", - "blockNumber": "0x6d557b9", - "transactionHash": "0xf66e104b03cc22d470375cad370469f4aee371d721ee833107c5eb88556e4fc2", - "transactionIndex": "0x17", - "logIndex": "0x17", - "removed": false - } - ], - "logsBloom": "0x00000000000000000100000000000000000000000000000000800000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000400000000000000000000000800000000000000000000000002000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000020000000000", - "type": "0x2", - "transactionHash": "0xf66e104b03cc22d470375cad370469f4aee371d721ee833107c5eb88556e4fc2", - "transactionIndex": "0x17", - "blockHash": "0xb9f1375d9bbe224e44bc816b9bd486b80df08ce7458d5e2db84c0cb761072328", - "blockNumber": "0x6d557b9", - "gasUsed": "0x9ba4", - "effectiveGasPrice": "0x5f5e100", - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0xaaafdd37b6ed54094f9bef8613777f1b05d9acb5", - "contractAddress": null, - "gasUsedForL1": "0x1864", - "l1BlockNumber": "0x7233dd" - } - ], - "libraries": [ - "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x085a1Ec0d51f4541d81a442a0Df4c9E9C70D7D1e" - ], - "pending": [], - "returns": { - "implementationAddress": { - "internal_type": "address", - "value": "0xbC46bBC10E6A3B4578011A8F5A91c1Ca7214a541" - }, - "lightClientState": { - "internal_type": "struct LightClient.LightClientState", - "value": "(0, 0, 1234)" - }, - "proxyAddress": { - "internal_type": "address", - "value": "0xAAaFDD37B6ed54094f9beF8613777f1B05d9aCb5" - } - }, - "timestamp": 1736794002, - "chain": 421614, - "commit": "9c97b7e0d" -} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArb.s.sol/421614/run-1736794243.json b/contracts/broadcast/LightClientArb.s.sol/421614/run-1736794243.json deleted file mode 100644 index 73675365ac..0000000000 --- a/contracts/broadcast/LightClientArb.s.sol/421614/run-1736794243.json +++ /dev/null @@ -1,263 +0,0 @@ -{ - "transactions": [ - { - "hash": "0xc8bd6be597bd34f8bcf5704c80814b870656bdfc7d398525990b82a781e9903c", - "transactionType": "CREATE", - "contractName": "LightClientArbitrum", - "contractAddress": "0x9ba96998a54340241cd0778feb78f30427b5c080", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "gas": "0x32ee06", - "value": "0x0", - "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000030565b6200002a62000030565b620000e4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000815760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000e15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612a7e6200010e600039600081816111480152818161117101526112f00152612a7e6000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b366004612004565b610584565b005b34801561017e57600080fd5b5061019261018d36600461201f565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612173565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b610170610308366004612327565b610848565b34801561031957600080fd5b506102a9610867565b34801561032e57600080fd5b50610170610884565b34801561034357600080fd5b506101706108f3565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b5061039861039336600461201f565b610905565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046123e0565b610a38565b34801561041e57600080fd5b5061017061042d3660046123fb565b610ac1565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906124cc565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046124ff565b610be5565b34801561055b57600080fd5b5061017061056a366004612004565b610d4b565b34801561057b57600080fd5b506009546102a9565b61058c610d8e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610de9565b6107338282610e59565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610f51565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b600060646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108439190612521565b905090565b61085061113d565b610859826111e2565b6108638282611223565b5050565b60006108716112e5565b50600080516020612a5283398151915290565b61088c610d8e565b6008546001600160a01b0316156108d857600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b6108fb610d8e565b6108f1600061132e565b6009805460009182919061091a600183612550565b8154811061092a5761092a612563565b6000918252602090912060029091020154600160801b90046001600160401b031684111561096b57604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610a3157846009828154811061099b5761099b612563565b6000918252602090912060029091020154600160801b90046001600160401b031610610a2957600981815481106109d4576109d4612563565b906000526020600020906002020160010154600982815481106109f9576109f9612563565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b60010161097f565b5050915091565b610a40610d8e565b610e108163ffffffff161080610a5f57506301e133808163ffffffff16115b80610a7d575060085463ffffffff600160a01b909104811690821611155b15610a9b576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b065750825b90506000826001600160401b03166001148015610b225750303b155b905081158015610b30575080155b15610b4e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b7857845460ff60401b1916600160401b1785555b610b818661139f565b610b896113b0565b610b948989896113b8565b8315610bda57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610bf36107de565b841180610bfe575080155b80610c495750600854600980549091600160c01b90046001600160401b0316908110610c2c57610c2c612563565b60009182526020909120600290910201546001600160401b031684105b15610c675760405163b0b4387760e01b815260040160405180910390fd5b60008080610c76600185612550565b90505b81610d1457600854600160c01b90046001600160401b03168110610d14578660098281548110610cab57610cab612563565b60009182526020909120600290910201546001600160401b031611610d02576001915060098181548110610ce157610ce1612563565b60009182526020909120600290910201546001600160401b03169250610d14565b80610d0c81612579565b915050610c79565b81610d325760405163b0b4387760e01b815260040160405180910390fd5b85610d3d8489612550565b119450505050505b92915050565b610d53610d8e565b6001600160a01b038116610d8257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d8b8161132e565b50565b33610dc07f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146108f15760405163118cdaa760e01b8152336004820152602401610d79565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108635760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610d79565b6000610e636114e5565b9050610e6d611d3d565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273085a1ec0d51f4541d81a442a0df4c9e9c70d7d1e9063ce537a7790610eed90859085908890600401612797565b602060405180830381865af4158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e91906129c6565b610f4b576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590610fc7575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610f9157610f91612563565b6000918252602090912060029091020154610fbc90600160401b90046001600160401b0316846129e8565b6001600160401b0316115b1561105b57600854600980549091600160c01b90046001600160401b0316908110610ff457610ff4612563565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b031690601861103583612a0f565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806111c457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111b8600080516020612a52833981519152546001600160a01b031690565b6001600160a01b031614155b156108f15760405163703e46dd60e11b815260040160405180910390fd5b6111ea610d8e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561127d575060408051601f3d908101601f1916820190925261127a91810190612521565b60015b6112a557604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d79565b600080516020612a5283398151915281146112d657604051632a87526960e21b815260048101829052602401610d79565b6112e08383611b14565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108f15760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6113a7611b6a565b610d8b81611bb3565b6108f1611b6a565b82516001600160401b03161515806113dc575060208301516001600160401b031615155b806113e957506020820151155b806113f657506040820151155b8061140357506060820151155b8061140d57508151155b8061141f5750610e108163ffffffff16105b8061143357506301e133808163ffffffff16115b15611451576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6114ed611d5b565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611b1d82611bbb565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611b62576112e08282611c20565b610863611c96565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166108f157604051631afcd79f60e31b815260040160405180910390fd5b610d53611b6a565b806001600160a01b03163b600003611bf157604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d79565b600080516020612a5283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611c3d9190612a35565b600060405180830381855af49150503d8060008114611c78576040519150601f19603f3d011682016040523d82523d6000602084013e611c7d565b606091505b5091509150611c8d858383611cb5565b95945050505050565b34156108f15760405163b398979f60e01b815260040160405180910390fd5b606082611cca57611cc582611d14565b611d0d565b8151158015611ce157506001600160a01b0384163b155b15611d0a57604051639996b31560e01b81526001600160a01b0385166004820152602401610d79565b50805b9392505050565b805115611d245780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611d92604051806040016040528060008152602001600081525090565b8152602001611db4604051806040016040528060008152602001600081525090565b8152602001611dd6604051806040016040528060008152602001600081525090565b8152602001611df8604051806040016040528060008152602001600081525090565b8152602001611e1a604051806040016040528060008152602001600081525090565b8152602001611e3c604051806040016040528060008152602001600081525090565b8152602001611e5e604051806040016040528060008152602001600081525090565b8152602001611e80604051806040016040528060008152602001600081525090565b8152602001611ea2604051806040016040528060008152602001600081525090565b8152602001611ec4604051806040016040528060008152602001600081525090565b8152602001611ee6604051806040016040528060008152602001600081525090565b8152602001611f08604051806040016040528060008152602001600081525090565b8152602001611f2a604051806040016040528060008152602001600081525090565b8152602001611f4c604051806040016040528060008152602001600081525090565b8152602001611f6e604051806040016040528060008152602001600081525090565b8152602001611f90604051806040016040528060008152602001600081525090565b8152602001611fb2604051806040016040528060008152602001600081525090565b8152602001611fd4604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b0381168114611fff57600080fd5b919050565b60006020828403121561201657600080fd5b611d0d82611fe8565b60006020828403121561203157600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b038111828210171561207157612071612038565b60405290565b604051601f8201601f191681016001600160401b038111828210171561209f5761209f612038565b604052919050565b80356001600160401b0381168114611fff57600080fd5b6000606082840312156120d057600080fd5b604051606081018181106001600160401b03821117156120f2576120f2612038565b604052905080612101836120a7565b815261210f602084016120a7565b6020820152604083013560408201525092915050565b60006040828403121561213757600080fd5b604051604081018181106001600160401b038211171561215957612159612038565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561218857600080fd5b61219285856120be565b925061048080605f19830112156121a857600080fd5b6121b061204e565b91506121bf8660608701612125565b82526121ce8660a08701612125565b60208301526121e08660e08701612125565b60408301526101206121f487828801612125565b606084015261016061220888828901612125565b60808501526101a061221c89828a01612125565b60a08601526101e06122308a828b01612125565b60c08701526102206122448b828c01612125565b60e08801526102606122588c828d01612125565b6101008901526102a061226d8d828e01612125565b878a015261227f8d6102e08e01612125565b6101408a01526122938d6103208e01612125565b868a01526122a58d6103608e01612125565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561233a57600080fd5b61234383611fe8565b91506020808401356001600160401b038082111561236057600080fd5b818601915086601f83011261237457600080fd5b81358181111561238657612386612038565b612398601f8201601f19168501612077565b915080825287848285010111156123ae57600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff81168114611fff57600080fd5b6000602082840312156123f257600080fd5b611d0d826123cc565b60008060008084860361012081121561241357600080fd5b61241d87876120be565b94506080605f198201121561243157600080fd5b50604051608081018181106001600160401b038211171561245457612454612038565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061248e60e086016123cc565b915061249d6101008601611fe8565b905092959194509250565b60005b838110156124c35781810151838201526020016124ab565b50506000910152565b60208152600082518060208401526124eb8160408501602087016124a8565b601f01601f19169190910160400192915050565b6000806040838503121561251257600080fd5b50508035926020909101359150565b60006020828403121561253357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610d4557610d4561253a565b634e487b7160e01b600052603260045260246000fd5b6000816125885761258861253a565b506000190190565b8060005b6007811015610f4b578151845260209384019390910190600101612594565b6125c882825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061262b8185018380518252602090810151910152565b60a0830151915061014061264b8186018480518252602090810151910152565b60c0840151925061018061266b8187018580518252602090810151910152565b60e085015193506101c061268b8188018680518252602090810151910152565b928501519350610200926126ab8785018680518252602090810151910152565b61012086015194506102406126cc8189018780518252602090810151910152565b928601519450610280926126ec8885018780518252602090810151910152565b61016087015195506102c061270d818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516127ca604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a08501516101006128178185018380518252602090810151910152565b60c087015191506101406128378186018480518252602090810151910152565b60e088015192506101806128578187018580518252602090810151910152565b9188015192506101c0916128778684018580518252602090810151910152565b61012089015193506102006128988188018680518252602090810151910152565b918901519350610240916128b88784018680518252602090810151910152565b6101608a015194506102806128d98189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e08301526129b0610500830185612590565b6129be6105e08301846125b3565b949350505050565b6000602082840312156129d857600080fd5b81518015158114611d0d57600080fd5b6001600160401b03828116828216039080821115612a0857612a0861253a565b5092915050565b60006001600160401b03808316818103612a2b57612a2b61253a565b6001019392505050565b60008251612a478184602087016124a8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", - "nonce": "0x2b", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x21e0ab5833d3e2fe8efd9ffbac2865d8122c42af6a4b8830a793f4b4dae6661d", - "transactionType": "CREATE", - "contractName": "ERC1967Proxy", - "contractAddress": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", - "function": null, - "arguments": [ - "0x9BA96998A54340241Cd0778feb78F30427b5c080", - "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" - ], - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "gas": "0x6a8bd", - "value": "0x0", - "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a0000000000000000000000009ba96998a54340241cd0778feb78f30427b5c080000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e00000000000000000000000000000000000000000000000000000000", - "nonce": "0x2c", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xe34e2b35ce2e9dd71acf56f37b0b71f314d10465c8f158375e955b4f11eccdd4", - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", - "gas": "0x7e03", - "value": "0x0", - "input": "0x013fa5fc000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", - "nonce": "0x2d", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x7e87dff33b5529741c8fda84bb2f544234f2fe98754af514911b5a9a7c8a5bf1", - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", - "gas": "0x7e03", - "value": "0x0", - "input": "0xf2fde38b0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be", - "nonce": "0x2e", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "status": "0x1", - "cumulativeGasUsed": "0xee3338", - "logs": [ - { - "address": "0x9ba96998a54340241cd0778feb78f30427b5c080", - "topics": [ - "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" - ], - "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "blockHash": "0xd54d7070159f7dce625447d28f9b9bdd0b9e5314a94f8400821e2bdd4c5efc32", - "blockNumber": "0x6d5586b", - "transactionHash": "0xc8bd6be597bd34f8bcf5704c80814b870656bdfc7d398525990b82a781e9903c", - "transactionIndex": "0x6d", - "logIndex": "0xb4", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000010000002000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xc8bd6be597bd34f8bcf5704c80814b870656bdfc7d398525990b82a781e9903c", - "transactionIndex": "0x6d", - "blockHash": "0xd54d7070159f7dce625447d28f9b9bdd0b9e5314a94f8400821e2bdd4c5efc32", - "blockNumber": "0x6d5586b", - "gasUsed": "0x26aaa5", - "effectiveGasPrice": "0x5f5e100", - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": null, - "contractAddress": "0x9ba96998a54340241cd0778feb78f30427b5c080", - "gasUsedForL1": "0x196f1", - "l1BlockNumber": "0x7233ec" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0xbfe2a", - "logs": [ - { - "address": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000009ba96998a54340241cd0778feb78f30427b5c080" - ], - "data": "0x", - "blockHash": "0x67ecfe8cf0257c29a130d54c1b2e21c1c3004ac3e537e17687dc54f08d83a9b8", - "blockNumber": "0x6d5586e", - "transactionHash": "0x21e0ab5833d3e2fe8efd9ffbac2865d8122c42af6a4b8830a793f4b4dae6661d", - "transactionIndex": "0xa", - "logIndex": "0xa", - "removed": false - }, - { - "address": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" - ], - "data": "0x", - "blockHash": "0x67ecfe8cf0257c29a130d54c1b2e21c1c3004ac3e537e17687dc54f08d83a9b8", - "blockNumber": "0x6d5586e", - "transactionHash": "0x21e0ab5833d3e2fe8efd9ffbac2865d8122c42af6a4b8830a793f4b4dae6661d", - "transactionIndex": "0xa", - "logIndex": "0xb", - "removed": false - }, - { - "address": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", - "topics": [ - "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0x67ecfe8cf0257c29a130d54c1b2e21c1c3004ac3e537e17687dc54f08d83a9b8", - "blockNumber": "0x6d5586e", - "transactionHash": "0x21e0ab5833d3e2fe8efd9ffbac2865d8122c42af6a4b8830a793f4b4dae6661d", - "transactionIndex": "0xa", - "logIndex": "0xc", - "removed": false - } - ], - "logsBloom": "0x00000000000000000100000000000000400080000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000001000000000000000000000000000000080000020000000000000000000800000000000000000001000000000000400000000000000000000800000000000000000000000080000000000000002000000000000000000000000000000000000000000000080000000000000000000000000020004000000000000000000000000000000004000000000000001020000000000000000000000000200000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x21e0ab5833d3e2fe8efd9ffbac2865d8122c42af6a4b8830a793f4b4dae6661d", - "transactionIndex": "0xa", - "blockHash": "0x67ecfe8cf0257c29a130d54c1b2e21c1c3004ac3e537e17687dc54f08d83a9b8", - "blockNumber": "0x6d5586e", - "gasUsed": "0x562b1", - "effectiveGasPrice": "0x5f5e100", - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": null, - "contractAddress": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", - "gasUsedForL1": "0x4300", - "l1BlockNumber": "0x7233ec" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x1ff20a", - "logs": [ - { - "address": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", - "topics": [ - "0x8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072" - ], - "data": "0x000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", - "blockHash": "0xbbb37ce067e484a7dcd4026d2ad507e0ab3a1bd2ec226e16efef0652e2e83ba0", - "blockNumber": "0x6d55870", - "transactionHash": "0xe34e2b35ce2e9dd71acf56f37b0b71f314d10465c8f158375e955b4f11eccdd4", - "transactionIndex": "0x13", - "logIndex": "0x41", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000200000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000200000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xe34e2b35ce2e9dd71acf56f37b0b71f314d10465c8f158375e955b4f11eccdd4", - "transactionIndex": "0x13", - "blockHash": "0xbbb37ce067e484a7dcd4026d2ad507e0ab3a1bd2ec226e16efef0652e2e83ba0", - "blockNumber": "0x6d55870", - "gasUsed": "0x923a", - "effectiveGasPrice": "0x5f5e100", - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", - "contractAddress": null, - "gasUsedForL1": "0x8e6", - "l1BlockNumber": "0x7233ec" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x32aaa9", - "logs": [ - { - "address": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e", - "0x0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be" - ], - "data": "0x", - "blockHash": "0x9356d5c6408430e337ff0155c0ca5fe5c9b44c29b037fd08b8e5a54462063b60", - "blockNumber": "0x6d55872", - "transactionHash": "0x7e87dff33b5529741c8fda84bb2f544234f2fe98754af514911b5a9a7c8a5bf1", - "transactionIndex": "0x32", - "logIndex": "0x37", - "removed": false - } - ], - "logsBloom": "0x00000000000000000100000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000080000000000000000000000000000000000000000000001000000000000400000000000000000000000000000000000000000000000000000000800002000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000040200000000000000000000000000000020000000000", - "type": "0x2", - "transactionHash": "0x7e87dff33b5529741c8fda84bb2f544234f2fe98754af514911b5a9a7c8a5bf1", - "transactionIndex": "0x32", - "blockHash": "0x9356d5c6408430e337ff0155c0ca5fe5c9b44c29b037fd08b8e5a54462063b60", - "blockNumber": "0x6d55872", - "gasUsed": "0x8c26", - "effectiveGasPrice": "0x5f5e100", - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0x1e28b9ee6711bdf72b94d2159d23e93784d8f008", - "contractAddress": null, - "gasUsedForL1": "0x8e6", - "l1BlockNumber": "0x7233ec" - } - ], - "libraries": [ - "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x085a1Ec0d51f4541d81a442a0Df4c9E9C70D7D1e" - ], - "pending": [], - "returns": { - "proxyAddress": { - "internal_type": "address", - "value": "0x1e28b9eE6711Bdf72b94d2159D23E93784D8F008" - }, - "lightClientState": { - "internal_type": "struct LightClient.LightClientState", - "value": "(0, 0, 1234)" - }, - "implementationAddress": { - "internal_type": "address", - "value": "0x9BA96998A54340241Cd0778feb78F30427b5c080" - } - }, - "timestamp": 1736794243, - "chain": 421614, - "commit": "9c97b7e0d" -} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736543852.json b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736543852.json deleted file mode 100644 index 3e5621b960..0000000000 --- a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736543852.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "transactions": [ - { - "hash": null, - "transactionType": "CREATE", - "contractName": "LightClientArbitrum2", - "contractAddress": "0x85fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb", - "function": null, - "arguments": null, - "transaction": { - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "gas": "0x31a67f", - "value": "0x0", - "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b72620001046000396000818161121b0152818161124401526113c30152612b726000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120f8565b610584565b005b34801561017e57600080fd5b5061019261018d366004612113565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612267565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b61017061030836600461241b565b6108dd565b34801561031957600080fd5b506102a96108fc565b34801561032e57600080fd5b50610170610919565b34801561034357600080fd5b50610170610988565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b50610398610393366004612113565b61099a565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124d4565b610acd565b34801561041e57600080fd5b5061017061042d3660046124ef565b610b56565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906125c0565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125f3565b610c7a565b34801561055b57600080fd5b5061017061056a3660046120f8565b610de0565b34801561057b57600080fd5b506009546102a9565b61058c610e1e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610e79565b6107338282610ee9565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610fe1565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b60006064803b82036108375760405162461bcd60e51b815260206004820152601f60248201527f41726253797320707265636f6d70696c65206e6f7420617661696c61626c650060448201526064015b60405180910390fd5b6108756040518060400160405280601a81526020017f617262537973507265636f6d70696c6520617661696c61626c650000000000008152506111cd565b806001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190612615565b91505090565b6108e5611210565b6108ee826112b5565b6108f882826112f6565b5050565b60006109066113b8565b50600080516020612b4683398151915290565b610921610e1e565b6008546001600160a01b03161561096d57600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b610990610e1e565b6109866000611401565b600980546000918291906109af600183612644565b815481106109bf576109bf612657565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a0057604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610ac6578460098281548110610a3057610a30612657565b6000918252602090912060029091020154600160801b90046001600160401b031610610abe5760098181548110610a6957610a69612657565b90600052602060002090600202016001015460098281548110610a8e57610a8e612657565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a14565b5050915091565b610ad5610e1e565b610e108163ffffffff161080610af457506301e133808163ffffffff16115b80610b12575060085463ffffffff600160a01b909104811690821611155b15610b30576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b9b5750825b90506000826001600160401b03166001148015610bb75750303b155b905081158015610bc5575080155b15610be35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c0d57845460ff60401b1916600160401b1785555b610c1686611472565b610c1e611483565b610c2989898961148b565b8315610c6f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610c886107de565b841180610c93575080155b80610cde5750600854600980549091600160c01b90046001600160401b0316908110610cc157610cc1612657565b60009182526020909120600290910201546001600160401b031684105b15610cfc5760405163b0b4387760e01b815260040160405180910390fd5b60008080610d0b600185612644565b90505b81610da957600854600160c01b90046001600160401b03168110610da9578660098281548110610d4057610d40612657565b60009182526020909120600290910201546001600160401b031611610d97576001915060098181548110610d7657610d76612657565b60009182526020909120600290910201546001600160401b03169250610da9565b80610da18161266d565b915050610d0e565b81610dc75760405163b0b4387760e01b815260040160405180910390fd5b85610dd28489612644565b119450505050505b92915050565b610de8610e1e565b6001600160a01b038116610e1257604051631e4fbdf760e01b81526000600482015260240161082e565b610e1b81611401565b50565b33610e507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109865760405163118cdaa760e01b815233600482015260240161082e565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108f85760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c640000000000604482015260640161082e565b6000610ef36115b8565b9050610efd611e31565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273364dbd12edeb5061435f3f185f9587241bbce5279063ce537a7790610f7d9085908590889060040161288b565b602060405180830381865af4158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190612aba565b610fdb576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611057575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b031690811061102157611021612657565b600091825260209091206002909102015461104c90600160401b90046001600160401b031684612adc565b6001600160401b0316115b156110eb57600854600980549091600160c01b90046001600160401b031690811061108457611084612657565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186110c583612b03565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b610e1b816040516024016111e191906125c0565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052611be7565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061129757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661128b600080516020612b46833981519152546001600160a01b031690565b6001600160a01b031614155b156109865760405163703e46dd60e11b815260040160405180910390fd5b6112bd610e1e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611350575060408051601f3d908101601f1916820190925261134d91810190612615565b60015b61137857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161082e565b600080516020612b4683398151915281146113a957604051632a87526960e21b81526004810182905260240161082e565b6113b38383611c08565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109865760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61147a611c5e565b610e1b81611ca7565b610986611c5e565b82516001600160401b03161515806114af575060208301516001600160401b031615155b806114bc57506020820151155b806114c957506040820151155b806114d657506060820151155b806114e057508151155b806114f25750610e108163ffffffff16105b8061150657506301e133808163ffffffff16115b15611524576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6115c0611e4f565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b611c1182611caf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611c56576113b38282611d14565b6108f8611d8a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661098657604051631afcd79f60e31b815260040160405180910390fd5b610de8611c5e565b806001600160a01b03163b600003611ce557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161082e565b600080516020612b4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611d319190612b29565b600060405180830381855af49150503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b5091509150611d81858383611da9565b95945050505050565b34156109865760405163b398979f60e01b815260040160405180910390fd5b606082611dbe57611db982611e08565b611e01565b8151158015611dd557506001600160a01b0384163b155b15611dfe57604051639996b31560e01b81526001600160a01b038516600482015260240161082e565b50805b9392505050565b805115611e185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e86604051806040016040528060008152602001600081525090565b8152602001611ea8604051806040016040528060008152602001600081525090565b8152602001611eca604051806040016040528060008152602001600081525090565b8152602001611eec604051806040016040528060008152602001600081525090565b8152602001611f0e604051806040016040528060008152602001600081525090565b8152602001611f30604051806040016040528060008152602001600081525090565b8152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b8152602001612040604051806040016040528060008152602001600081525090565b8152602001612062604051806040016040528060008152602001600081525090565b8152602001612084604051806040016040528060008152602001600081525090565b81526020016120a6604051806040016040528060008152602001600081525090565b81526020016120c8604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b611e01826120dc565b60006020828403121561212557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156121655761216561212c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121935761219361212c565b604052919050565b80356001600160401b03811681146120f357600080fd5b6000606082840312156121c457600080fd5b604051606081018181106001600160401b03821117156121e6576121e661212c565b6040529050806121f58361219b565b81526122036020840161219b565b6020820152604083013560408201525092915050565b60006040828403121561222b57600080fd5b604051604081018181106001600160401b038211171561224d5761224d61212c565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561227c57600080fd5b61228685856121b2565b925061048080605f198301121561229c57600080fd5b6122a4612142565b91506122b38660608701612219565b82526122c28660a08701612219565b60208301526122d48660e08701612219565b60408301526101206122e887828801612219565b60608401526101606122fc88828901612219565b60808501526101a061231089828a01612219565b60a08601526101e06123248a828b01612219565b60c08701526102206123388b828c01612219565b60e088015261026061234c8c828d01612219565b6101008901526102a06123618d828e01612219565b878a01526123738d6102e08e01612219565b6101408a01526123878d6103208e01612219565b868a01526123998d6103608e01612219565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561242e57600080fd5b612437836120dc565b91506020808401356001600160401b038082111561245457600080fd5b818601915086601f83011261246857600080fd5b81358181111561247a5761247a61212c565b61248c601f8201601f1916850161216b565b915080825287848285010111156124a257600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120f357600080fd5b6000602082840312156124e657600080fd5b611e01826124c0565b60008060008084860361012081121561250757600080fd5b61251187876121b2565b94506080605f198201121561252557600080fd5b50604051608081018181106001600160401b03821117156125485761254861212c565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061258260e086016124c0565b915061259161010086016120dc565b905092959194509250565b60005b838110156125b757818101518382015260200161259f565b50506000910152565b60208152600082518060208401526125df81604085016020870161259c565b601f01601f19169190910160400192915050565b6000806040838503121561260657600080fd5b50508035926020909101359150565b60006020828403121561262757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dda57610dda61262e565b634e487b7160e01b600052603260045260246000fd5b60008161267c5761267c61262e565b506000190190565b8060005b6007811015610fdb578151845260209384019390910190600101612688565b6126bc82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061271f8185018380518252602090810151910152565b60a0830151915061014061273f8186018480518252602090810151910152565b60c0840151925061018061275f8187018580518252602090810151910152565b60e085015193506101c061277f8188018680518252602090810151910152565b9285015193506102009261279f8785018680518252602090810151910152565b61012086015194506102406127c08189018780518252602090810151910152565b928601519450610280926127e08885018780518252602090810151910152565b61016087015195506102c0612801818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516128be604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061290b8185018380518252602090810151910152565b60c0870151915061014061292b8186018480518252602090810151910152565b60e0880151925061018061294b8187018580518252602090810151910152565b9188015192506101c09161296b8684018580518252602090810151910152565b610120890151935061020061298c8188018680518252602090810151910152565b918901519350610240916129ac8784018680518252602090810151910152565b6101608a015194506102806129cd8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612aa4610500830185612684565b612ab26105e08301846126a7565b949350505050565b600060208284031215612acc57600080fd5b81518015158114611e0157600080fd5b6001600160401b03828116828216039080821115612afc57612afc61262e565b5092915050565b60006001600160401b03808316818103612b1f57612b1f61262e565b6001019392505050565b60008251612b3b81846020870161259c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", - "nonce": "0x791", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": null, - "transactionType": "CREATE", - "contractName": "ERC1967Proxy", - "contractAddress": "0x9505e8b8546cc9015b2c015826d25821cc48c153", - "function": null, - "arguments": [ - "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB", - "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" - ], - "transaction": { - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "gas": "0x6a8bd", - "value": "0x0", - "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a00000000000000000000000085fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000000000000000000000000000000000000", - "nonce": "0x792", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [], - "libraries": [ - "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x364dbd12eDEB5061435F3f185f9587241bbcE527" - ], - "pending": [], - "returns": { - "lightClientState": { - "internal_type": "struct LightClientArbitrum2.LightClientState", - "value": "(0, 0, 1234)" - }, - "implementationAddress": { - "internal_type": "address", - "value": "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB" - }, - "proxyAddress": { - "internal_type": "address", - "value": "0x9505E8B8546cC9015B2c015826d25821CC48C153" - } - }, - "timestamp": 1736543852, - "chain": 421614, - "commit": "9c97b7e0d" -} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736543918.json b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736543918.json deleted file mode 100644 index c691629200..0000000000 --- a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736543918.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "transactions": [ - { - "hash": null, - "transactionType": "CREATE", - "contractName": "LightClientArbitrum2", - "contractAddress": "0x85fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb", - "function": null, - "arguments": null, - "transaction": { - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "gas": "0x31a67f", - "value": "0x0", - "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b72620001046000396000818161121b0152818161124401526113c30152612b726000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120f8565b610584565b005b34801561017e57600080fd5b5061019261018d366004612113565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612267565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b61017061030836600461241b565b6108dd565b34801561031957600080fd5b506102a96108fc565b34801561032e57600080fd5b50610170610919565b34801561034357600080fd5b50610170610988565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b50610398610393366004612113565b61099a565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124d4565b610acd565b34801561041e57600080fd5b5061017061042d3660046124ef565b610b56565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906125c0565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125f3565b610c7a565b34801561055b57600080fd5b5061017061056a3660046120f8565b610de0565b34801561057b57600080fd5b506009546102a9565b61058c610e1e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610e79565b6107338282610ee9565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610fe1565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b60006064803b82036108375760405162461bcd60e51b815260206004820152601f60248201527f41726253797320707265636f6d70696c65206e6f7420617661696c61626c650060448201526064015b60405180910390fd5b6108756040518060400160405280601a81526020017f617262537973507265636f6d70696c6520617661696c61626c650000000000008152506111cd565b806001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190612615565b91505090565b6108e5611210565b6108ee826112b5565b6108f882826112f6565b5050565b60006109066113b8565b50600080516020612b4683398151915290565b610921610e1e565b6008546001600160a01b03161561096d57600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b610990610e1e565b6109866000611401565b600980546000918291906109af600183612644565b815481106109bf576109bf612657565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a0057604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610ac6578460098281548110610a3057610a30612657565b6000918252602090912060029091020154600160801b90046001600160401b031610610abe5760098181548110610a6957610a69612657565b90600052602060002090600202016001015460098281548110610a8e57610a8e612657565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a14565b5050915091565b610ad5610e1e565b610e108163ffffffff161080610af457506301e133808163ffffffff16115b80610b12575060085463ffffffff600160a01b909104811690821611155b15610b30576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b9b5750825b90506000826001600160401b03166001148015610bb75750303b155b905081158015610bc5575080155b15610be35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c0d57845460ff60401b1916600160401b1785555b610c1686611472565b610c1e611483565b610c2989898961148b565b8315610c6f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610c886107de565b841180610c93575080155b80610cde5750600854600980549091600160c01b90046001600160401b0316908110610cc157610cc1612657565b60009182526020909120600290910201546001600160401b031684105b15610cfc5760405163b0b4387760e01b815260040160405180910390fd5b60008080610d0b600185612644565b90505b81610da957600854600160c01b90046001600160401b03168110610da9578660098281548110610d4057610d40612657565b60009182526020909120600290910201546001600160401b031611610d97576001915060098181548110610d7657610d76612657565b60009182526020909120600290910201546001600160401b03169250610da9565b80610da18161266d565b915050610d0e565b81610dc75760405163b0b4387760e01b815260040160405180910390fd5b85610dd28489612644565b119450505050505b92915050565b610de8610e1e565b6001600160a01b038116610e1257604051631e4fbdf760e01b81526000600482015260240161082e565b610e1b81611401565b50565b33610e507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109865760405163118cdaa760e01b815233600482015260240161082e565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108f85760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c640000000000604482015260640161082e565b6000610ef36115b8565b9050610efd611e31565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273364dbd12edeb5061435f3f185f9587241bbce5279063ce537a7790610f7d9085908590889060040161288b565b602060405180830381865af4158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190612aba565b610fdb576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611057575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b031690811061102157611021612657565b600091825260209091206002909102015461104c90600160401b90046001600160401b031684612adc565b6001600160401b0316115b156110eb57600854600980549091600160c01b90046001600160401b031690811061108457611084612657565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186110c583612b03565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b610e1b816040516024016111e191906125c0565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052611be7565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061129757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661128b600080516020612b46833981519152546001600160a01b031690565b6001600160a01b031614155b156109865760405163703e46dd60e11b815260040160405180910390fd5b6112bd610e1e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611350575060408051601f3d908101601f1916820190925261134d91810190612615565b60015b61137857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161082e565b600080516020612b4683398151915281146113a957604051632a87526960e21b81526004810182905260240161082e565b6113b38383611c08565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109865760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61147a611c5e565b610e1b81611ca7565b610986611c5e565b82516001600160401b03161515806114af575060208301516001600160401b031615155b806114bc57506020820151155b806114c957506040820151155b806114d657506060820151155b806114e057508151155b806114f25750610e108163ffffffff16105b8061150657506301e133808163ffffffff16115b15611524576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6115c0611e4f565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b611c1182611caf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611c56576113b38282611d14565b6108f8611d8a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661098657604051631afcd79f60e31b815260040160405180910390fd5b610de8611c5e565b806001600160a01b03163b600003611ce557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161082e565b600080516020612b4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611d319190612b29565b600060405180830381855af49150503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b5091509150611d81858383611da9565b95945050505050565b34156109865760405163b398979f60e01b815260040160405180910390fd5b606082611dbe57611db982611e08565b611e01565b8151158015611dd557506001600160a01b0384163b155b15611dfe57604051639996b31560e01b81526001600160a01b038516600482015260240161082e565b50805b9392505050565b805115611e185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e86604051806040016040528060008152602001600081525090565b8152602001611ea8604051806040016040528060008152602001600081525090565b8152602001611eca604051806040016040528060008152602001600081525090565b8152602001611eec604051806040016040528060008152602001600081525090565b8152602001611f0e604051806040016040528060008152602001600081525090565b8152602001611f30604051806040016040528060008152602001600081525090565b8152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b8152602001612040604051806040016040528060008152602001600081525090565b8152602001612062604051806040016040528060008152602001600081525090565b8152602001612084604051806040016040528060008152602001600081525090565b81526020016120a6604051806040016040528060008152602001600081525090565b81526020016120c8604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b611e01826120dc565b60006020828403121561212557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156121655761216561212c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121935761219361212c565b604052919050565b80356001600160401b03811681146120f357600080fd5b6000606082840312156121c457600080fd5b604051606081018181106001600160401b03821117156121e6576121e661212c565b6040529050806121f58361219b565b81526122036020840161219b565b6020820152604083013560408201525092915050565b60006040828403121561222b57600080fd5b604051604081018181106001600160401b038211171561224d5761224d61212c565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561227c57600080fd5b61228685856121b2565b925061048080605f198301121561229c57600080fd5b6122a4612142565b91506122b38660608701612219565b82526122c28660a08701612219565b60208301526122d48660e08701612219565b60408301526101206122e887828801612219565b60608401526101606122fc88828901612219565b60808501526101a061231089828a01612219565b60a08601526101e06123248a828b01612219565b60c08701526102206123388b828c01612219565b60e088015261026061234c8c828d01612219565b6101008901526102a06123618d828e01612219565b878a01526123738d6102e08e01612219565b6101408a01526123878d6103208e01612219565b868a01526123998d6103608e01612219565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561242e57600080fd5b612437836120dc565b91506020808401356001600160401b038082111561245457600080fd5b818601915086601f83011261246857600080fd5b81358181111561247a5761247a61212c565b61248c601f8201601f1916850161216b565b915080825287848285010111156124a257600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120f357600080fd5b6000602082840312156124e657600080fd5b611e01826124c0565b60008060008084860361012081121561250757600080fd5b61251187876121b2565b94506080605f198201121561252557600080fd5b50604051608081018181106001600160401b03821117156125485761254861212c565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061258260e086016124c0565b915061259161010086016120dc565b905092959194509250565b60005b838110156125b757818101518382015260200161259f565b50506000910152565b60208152600082518060208401526125df81604085016020870161259c565b601f01601f19169190910160400192915050565b6000806040838503121561260657600080fd5b50508035926020909101359150565b60006020828403121561262757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dda57610dda61262e565b634e487b7160e01b600052603260045260246000fd5b60008161267c5761267c61262e565b506000190190565b8060005b6007811015610fdb578151845260209384019390910190600101612688565b6126bc82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061271f8185018380518252602090810151910152565b60a0830151915061014061273f8186018480518252602090810151910152565b60c0840151925061018061275f8187018580518252602090810151910152565b60e085015193506101c061277f8188018680518252602090810151910152565b9285015193506102009261279f8785018680518252602090810151910152565b61012086015194506102406127c08189018780518252602090810151910152565b928601519450610280926127e08885018780518252602090810151910152565b61016087015195506102c0612801818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516128be604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061290b8185018380518252602090810151910152565b60c0870151915061014061292b8186018480518252602090810151910152565b60e0880151925061018061294b8187018580518252602090810151910152565b9188015192506101c09161296b8684018580518252602090810151910152565b610120890151935061020061298c8188018680518252602090810151910152565b918901519350610240916129ac8784018680518252602090810151910152565b6101608a015194506102806129cd8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612aa4610500830185612684565b612ab26105e08301846126a7565b949350505050565b600060208284031215612acc57600080fd5b81518015158114611e0157600080fd5b6001600160401b03828116828216039080821115612afc57612afc61262e565b5092915050565b60006001600160401b03808316818103612b1f57612b1f61262e565b6001019392505050565b60008251612b3b81846020870161259c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", - "nonce": "0x791", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": null, - "transactionType": "CREATE", - "contractName": "ERC1967Proxy", - "contractAddress": "0x9505e8b8546cc9015b2c015826d25821cc48c153", - "function": null, - "arguments": [ - "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB", - "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" - ], - "transaction": { - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "gas": "0x6a8bd", - "value": "0x0", - "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a00000000000000000000000085fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000000000000000000000000000000000000", - "nonce": "0x792", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [], - "libraries": [ - "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x364dbd12eDEB5061435F3f185f9587241bbcE527" - ], - "pending": [], - "returns": { - "implementationAddress": { - "internal_type": "address", - "value": "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB" - }, - "proxyAddress": { - "internal_type": "address", - "value": "0x9505E8B8546cC9015B2c015826d25821CC48C153" - }, - "lightClientState": { - "internal_type": "struct LightClientArbitrum2.LightClientState", - "value": "(0, 0, 1234)" - } - }, - "timestamp": 1736543918, - "chain": 421614, - "commit": "9c97b7e0d" -} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736543987.json b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736543987.json deleted file mode 100644 index cc9175d099..0000000000 --- a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736543987.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "transactions": [ - { - "hash": null, - "transactionType": "CREATE", - "contractName": "LightClientArbitrum2", - "contractAddress": "0x85fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb", - "function": null, - "arguments": null, - "transaction": { - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "gas": "0x31a67f", - "value": "0x0", - "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b72620001046000396000818161121b0152818161124401526113c30152612b726000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120f8565b610584565b005b34801561017e57600080fd5b5061019261018d366004612113565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612267565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b61017061030836600461241b565b6108dd565b34801561031957600080fd5b506102a96108fc565b34801561032e57600080fd5b50610170610919565b34801561034357600080fd5b50610170610988565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b50610398610393366004612113565b61099a565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124d4565b610acd565b34801561041e57600080fd5b5061017061042d3660046124ef565b610b56565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906125c0565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125f3565b610c7a565b34801561055b57600080fd5b5061017061056a3660046120f8565b610de0565b34801561057b57600080fd5b506009546102a9565b61058c610e1e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610e79565b6107338282610ee9565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610fe1565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b60006064803b82036108375760405162461bcd60e51b815260206004820152601f60248201527f41726253797320707265636f6d70696c65206e6f7420617661696c61626c650060448201526064015b60405180910390fd5b6108756040518060400160405280601a81526020017f617262537973507265636f6d70696c6520617661696c61626c650000000000008152506111cd565b806001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190612615565b91505090565b6108e5611210565b6108ee826112b5565b6108f882826112f6565b5050565b60006109066113b8565b50600080516020612b4683398151915290565b610921610e1e565b6008546001600160a01b03161561096d57600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b610990610e1e565b6109866000611401565b600980546000918291906109af600183612644565b815481106109bf576109bf612657565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a0057604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610ac6578460098281548110610a3057610a30612657565b6000918252602090912060029091020154600160801b90046001600160401b031610610abe5760098181548110610a6957610a69612657565b90600052602060002090600202016001015460098281548110610a8e57610a8e612657565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a14565b5050915091565b610ad5610e1e565b610e108163ffffffff161080610af457506301e133808163ffffffff16115b80610b12575060085463ffffffff600160a01b909104811690821611155b15610b30576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b9b5750825b90506000826001600160401b03166001148015610bb75750303b155b905081158015610bc5575080155b15610be35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c0d57845460ff60401b1916600160401b1785555b610c1686611472565b610c1e611483565b610c2989898961148b565b8315610c6f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610c886107de565b841180610c93575080155b80610cde5750600854600980549091600160c01b90046001600160401b0316908110610cc157610cc1612657565b60009182526020909120600290910201546001600160401b031684105b15610cfc5760405163b0b4387760e01b815260040160405180910390fd5b60008080610d0b600185612644565b90505b81610da957600854600160c01b90046001600160401b03168110610da9578660098281548110610d4057610d40612657565b60009182526020909120600290910201546001600160401b031611610d97576001915060098181548110610d7657610d76612657565b60009182526020909120600290910201546001600160401b03169250610da9565b80610da18161266d565b915050610d0e565b81610dc75760405163b0b4387760e01b815260040160405180910390fd5b85610dd28489612644565b119450505050505b92915050565b610de8610e1e565b6001600160a01b038116610e1257604051631e4fbdf760e01b81526000600482015260240161082e565b610e1b81611401565b50565b33610e507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109865760405163118cdaa760e01b815233600482015260240161082e565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108f85760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c640000000000604482015260640161082e565b6000610ef36115b8565b9050610efd611e31565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273364dbd12edeb5061435f3f185f9587241bbce5279063ce537a7790610f7d9085908590889060040161288b565b602060405180830381865af4158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190612aba565b610fdb576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611057575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b031690811061102157611021612657565b600091825260209091206002909102015461104c90600160401b90046001600160401b031684612adc565b6001600160401b0316115b156110eb57600854600980549091600160c01b90046001600160401b031690811061108457611084612657565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186110c583612b03565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b610e1b816040516024016111e191906125c0565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052611be7565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061129757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661128b600080516020612b46833981519152546001600160a01b031690565b6001600160a01b031614155b156109865760405163703e46dd60e11b815260040160405180910390fd5b6112bd610e1e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611350575060408051601f3d908101601f1916820190925261134d91810190612615565b60015b61137857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161082e565b600080516020612b4683398151915281146113a957604051632a87526960e21b81526004810182905260240161082e565b6113b38383611c08565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109865760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61147a611c5e565b610e1b81611ca7565b610986611c5e565b82516001600160401b03161515806114af575060208301516001600160401b031615155b806114bc57506020820151155b806114c957506040820151155b806114d657506060820151155b806114e057508151155b806114f25750610e108163ffffffff16105b8061150657506301e133808163ffffffff16115b15611524576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6115c0611e4f565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b611c1182611caf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611c56576113b38282611d14565b6108f8611d8a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661098657604051631afcd79f60e31b815260040160405180910390fd5b610de8611c5e565b806001600160a01b03163b600003611ce557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161082e565b600080516020612b4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611d319190612b29565b600060405180830381855af49150503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b5091509150611d81858383611da9565b95945050505050565b34156109865760405163b398979f60e01b815260040160405180910390fd5b606082611dbe57611db982611e08565b611e01565b8151158015611dd557506001600160a01b0384163b155b15611dfe57604051639996b31560e01b81526001600160a01b038516600482015260240161082e565b50805b9392505050565b805115611e185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e86604051806040016040528060008152602001600081525090565b8152602001611ea8604051806040016040528060008152602001600081525090565b8152602001611eca604051806040016040528060008152602001600081525090565b8152602001611eec604051806040016040528060008152602001600081525090565b8152602001611f0e604051806040016040528060008152602001600081525090565b8152602001611f30604051806040016040528060008152602001600081525090565b8152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b8152602001612040604051806040016040528060008152602001600081525090565b8152602001612062604051806040016040528060008152602001600081525090565b8152602001612084604051806040016040528060008152602001600081525090565b81526020016120a6604051806040016040528060008152602001600081525090565b81526020016120c8604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b611e01826120dc565b60006020828403121561212557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156121655761216561212c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121935761219361212c565b604052919050565b80356001600160401b03811681146120f357600080fd5b6000606082840312156121c457600080fd5b604051606081018181106001600160401b03821117156121e6576121e661212c565b6040529050806121f58361219b565b81526122036020840161219b565b6020820152604083013560408201525092915050565b60006040828403121561222b57600080fd5b604051604081018181106001600160401b038211171561224d5761224d61212c565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561227c57600080fd5b61228685856121b2565b925061048080605f198301121561229c57600080fd5b6122a4612142565b91506122b38660608701612219565b82526122c28660a08701612219565b60208301526122d48660e08701612219565b60408301526101206122e887828801612219565b60608401526101606122fc88828901612219565b60808501526101a061231089828a01612219565b60a08601526101e06123248a828b01612219565b60c08701526102206123388b828c01612219565b60e088015261026061234c8c828d01612219565b6101008901526102a06123618d828e01612219565b878a01526123738d6102e08e01612219565b6101408a01526123878d6103208e01612219565b868a01526123998d6103608e01612219565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561242e57600080fd5b612437836120dc565b91506020808401356001600160401b038082111561245457600080fd5b818601915086601f83011261246857600080fd5b81358181111561247a5761247a61212c565b61248c601f8201601f1916850161216b565b915080825287848285010111156124a257600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120f357600080fd5b6000602082840312156124e657600080fd5b611e01826124c0565b60008060008084860361012081121561250757600080fd5b61251187876121b2565b94506080605f198201121561252557600080fd5b50604051608081018181106001600160401b03821117156125485761254861212c565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061258260e086016124c0565b915061259161010086016120dc565b905092959194509250565b60005b838110156125b757818101518382015260200161259f565b50506000910152565b60208152600082518060208401526125df81604085016020870161259c565b601f01601f19169190910160400192915050565b6000806040838503121561260657600080fd5b50508035926020909101359150565b60006020828403121561262757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dda57610dda61262e565b634e487b7160e01b600052603260045260246000fd5b60008161267c5761267c61262e565b506000190190565b8060005b6007811015610fdb578151845260209384019390910190600101612688565b6126bc82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061271f8185018380518252602090810151910152565b60a0830151915061014061273f8186018480518252602090810151910152565b60c0840151925061018061275f8187018580518252602090810151910152565b60e085015193506101c061277f8188018680518252602090810151910152565b9285015193506102009261279f8785018680518252602090810151910152565b61012086015194506102406127c08189018780518252602090810151910152565b928601519450610280926127e08885018780518252602090810151910152565b61016087015195506102c0612801818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516128be604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061290b8185018380518252602090810151910152565b60c0870151915061014061292b8186018480518252602090810151910152565b60e0880151925061018061294b8187018580518252602090810151910152565b9188015192506101c09161296b8684018580518252602090810151910152565b610120890151935061020061298c8188018680518252602090810151910152565b918901519350610240916129ac8784018680518252602090810151910152565b6101608a015194506102806129cd8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612aa4610500830185612684565b612ab26105e08301846126a7565b949350505050565b600060208284031215612acc57600080fd5b81518015158114611e0157600080fd5b6001600160401b03828116828216039080821115612afc57612afc61262e565b5092915050565b60006001600160401b03808316818103612b1f57612b1f61262e565b6001019392505050565b60008251612b3b81846020870161259c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", - "nonce": "0x791", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": null, - "transactionType": "CREATE", - "contractName": "ERC1967Proxy", - "contractAddress": "0x9505e8b8546cc9015b2c015826d25821cc48c153", - "function": null, - "arguments": [ - "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB", - "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" - ], - "transaction": { - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "gas": "0x6a8bd", - "value": "0x0", - "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a00000000000000000000000085fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000000000000000000000000000000000000", - "nonce": "0x792", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [], - "libraries": [ - "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x364dbd12eDEB5061435F3f185f9587241bbcE527" - ], - "pending": [], - "returns": { - "implementationAddress": { - "internal_type": "address", - "value": "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB" - }, - "proxyAddress": { - "internal_type": "address", - "value": "0x9505E8B8546cC9015B2c015826d25821CC48C153" - }, - "lightClientState": { - "internal_type": "struct LightClientArbitrum2.LightClientState", - "value": "(0, 0, 1234)" - } - }, - "timestamp": 1736543987, - "chain": 421614, - "commit": "9c97b7e0d" -} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736544036.json b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736544036.json deleted file mode 100644 index 2bad0bb360..0000000000 --- a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736544036.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "transactions": [ - { - "hash": null, - "transactionType": "CREATE", - "contractName": "LightClientArbitrum2", - "contractAddress": "0x85fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb", - "function": null, - "arguments": null, - "transaction": { - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "gas": "0x31a67f", - "value": "0x0", - "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b72620001046000396000818161121b0152818161124401526113c30152612b726000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120f8565b610584565b005b34801561017e57600080fd5b5061019261018d366004612113565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612267565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b61017061030836600461241b565b6108dd565b34801561031957600080fd5b506102a96108fc565b34801561032e57600080fd5b50610170610919565b34801561034357600080fd5b50610170610988565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b50610398610393366004612113565b61099a565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124d4565b610acd565b34801561041e57600080fd5b5061017061042d3660046124ef565b610b56565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906125c0565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125f3565b610c7a565b34801561055b57600080fd5b5061017061056a3660046120f8565b610de0565b34801561057b57600080fd5b506009546102a9565b61058c610e1e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610e79565b6107338282610ee9565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610fe1565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b60006064803b82036108375760405162461bcd60e51b815260206004820152601f60248201527f41726253797320707265636f6d70696c65206e6f7420617661696c61626c650060448201526064015b60405180910390fd5b6108756040518060400160405280601a81526020017f617262537973507265636f6d70696c6520617661696c61626c650000000000008152506111cd565b806001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190612615565b91505090565b6108e5611210565b6108ee826112b5565b6108f882826112f6565b5050565b60006109066113b8565b50600080516020612b4683398151915290565b610921610e1e565b6008546001600160a01b03161561096d57600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b610990610e1e565b6109866000611401565b600980546000918291906109af600183612644565b815481106109bf576109bf612657565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a0057604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610ac6578460098281548110610a3057610a30612657565b6000918252602090912060029091020154600160801b90046001600160401b031610610abe5760098181548110610a6957610a69612657565b90600052602060002090600202016001015460098281548110610a8e57610a8e612657565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a14565b5050915091565b610ad5610e1e565b610e108163ffffffff161080610af457506301e133808163ffffffff16115b80610b12575060085463ffffffff600160a01b909104811690821611155b15610b30576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b9b5750825b90506000826001600160401b03166001148015610bb75750303b155b905081158015610bc5575080155b15610be35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c0d57845460ff60401b1916600160401b1785555b610c1686611472565b610c1e611483565b610c2989898961148b565b8315610c6f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610c886107de565b841180610c93575080155b80610cde5750600854600980549091600160c01b90046001600160401b0316908110610cc157610cc1612657565b60009182526020909120600290910201546001600160401b031684105b15610cfc5760405163b0b4387760e01b815260040160405180910390fd5b60008080610d0b600185612644565b90505b81610da957600854600160c01b90046001600160401b03168110610da9578660098281548110610d4057610d40612657565b60009182526020909120600290910201546001600160401b031611610d97576001915060098181548110610d7657610d76612657565b60009182526020909120600290910201546001600160401b03169250610da9565b80610da18161266d565b915050610d0e565b81610dc75760405163b0b4387760e01b815260040160405180910390fd5b85610dd28489612644565b119450505050505b92915050565b610de8610e1e565b6001600160a01b038116610e1257604051631e4fbdf760e01b81526000600482015260240161082e565b610e1b81611401565b50565b33610e507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109865760405163118cdaa760e01b815233600482015260240161082e565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108f85760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c640000000000604482015260640161082e565b6000610ef36115b8565b9050610efd611e31565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273364dbd12edeb5061435f3f185f9587241bbce5279063ce537a7790610f7d9085908590889060040161288b565b602060405180830381865af4158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190612aba565b610fdb576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611057575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b031690811061102157611021612657565b600091825260209091206002909102015461104c90600160401b90046001600160401b031684612adc565b6001600160401b0316115b156110eb57600854600980549091600160c01b90046001600160401b031690811061108457611084612657565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186110c583612b03565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b610e1b816040516024016111e191906125c0565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052611be7565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061129757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661128b600080516020612b46833981519152546001600160a01b031690565b6001600160a01b031614155b156109865760405163703e46dd60e11b815260040160405180910390fd5b6112bd610e1e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611350575060408051601f3d908101601f1916820190925261134d91810190612615565b60015b61137857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161082e565b600080516020612b4683398151915281146113a957604051632a87526960e21b81526004810182905260240161082e565b6113b38383611c08565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109865760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61147a611c5e565b610e1b81611ca7565b610986611c5e565b82516001600160401b03161515806114af575060208301516001600160401b031615155b806114bc57506020820151155b806114c957506040820151155b806114d657506060820151155b806114e057508151155b806114f25750610e108163ffffffff16105b8061150657506301e133808163ffffffff16115b15611524576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6115c0611e4f565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b611c1182611caf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611c56576113b38282611d14565b6108f8611d8a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661098657604051631afcd79f60e31b815260040160405180910390fd5b610de8611c5e565b806001600160a01b03163b600003611ce557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161082e565b600080516020612b4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611d319190612b29565b600060405180830381855af49150503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b5091509150611d81858383611da9565b95945050505050565b34156109865760405163b398979f60e01b815260040160405180910390fd5b606082611dbe57611db982611e08565b611e01565b8151158015611dd557506001600160a01b0384163b155b15611dfe57604051639996b31560e01b81526001600160a01b038516600482015260240161082e565b50805b9392505050565b805115611e185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e86604051806040016040528060008152602001600081525090565b8152602001611ea8604051806040016040528060008152602001600081525090565b8152602001611eca604051806040016040528060008152602001600081525090565b8152602001611eec604051806040016040528060008152602001600081525090565b8152602001611f0e604051806040016040528060008152602001600081525090565b8152602001611f30604051806040016040528060008152602001600081525090565b8152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b8152602001612040604051806040016040528060008152602001600081525090565b8152602001612062604051806040016040528060008152602001600081525090565b8152602001612084604051806040016040528060008152602001600081525090565b81526020016120a6604051806040016040528060008152602001600081525090565b81526020016120c8604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b611e01826120dc565b60006020828403121561212557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156121655761216561212c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121935761219361212c565b604052919050565b80356001600160401b03811681146120f357600080fd5b6000606082840312156121c457600080fd5b604051606081018181106001600160401b03821117156121e6576121e661212c565b6040529050806121f58361219b565b81526122036020840161219b565b6020820152604083013560408201525092915050565b60006040828403121561222b57600080fd5b604051604081018181106001600160401b038211171561224d5761224d61212c565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561227c57600080fd5b61228685856121b2565b925061048080605f198301121561229c57600080fd5b6122a4612142565b91506122b38660608701612219565b82526122c28660a08701612219565b60208301526122d48660e08701612219565b60408301526101206122e887828801612219565b60608401526101606122fc88828901612219565b60808501526101a061231089828a01612219565b60a08601526101e06123248a828b01612219565b60c08701526102206123388b828c01612219565b60e088015261026061234c8c828d01612219565b6101008901526102a06123618d828e01612219565b878a01526123738d6102e08e01612219565b6101408a01526123878d6103208e01612219565b868a01526123998d6103608e01612219565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561242e57600080fd5b612437836120dc565b91506020808401356001600160401b038082111561245457600080fd5b818601915086601f83011261246857600080fd5b81358181111561247a5761247a61212c565b61248c601f8201601f1916850161216b565b915080825287848285010111156124a257600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120f357600080fd5b6000602082840312156124e657600080fd5b611e01826124c0565b60008060008084860361012081121561250757600080fd5b61251187876121b2565b94506080605f198201121561252557600080fd5b50604051608081018181106001600160401b03821117156125485761254861212c565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061258260e086016124c0565b915061259161010086016120dc565b905092959194509250565b60005b838110156125b757818101518382015260200161259f565b50506000910152565b60208152600082518060208401526125df81604085016020870161259c565b601f01601f19169190910160400192915050565b6000806040838503121561260657600080fd5b50508035926020909101359150565b60006020828403121561262757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dda57610dda61262e565b634e487b7160e01b600052603260045260246000fd5b60008161267c5761267c61262e565b506000190190565b8060005b6007811015610fdb578151845260209384019390910190600101612688565b6126bc82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061271f8185018380518252602090810151910152565b60a0830151915061014061273f8186018480518252602090810151910152565b60c0840151925061018061275f8187018580518252602090810151910152565b60e085015193506101c061277f8188018680518252602090810151910152565b9285015193506102009261279f8785018680518252602090810151910152565b61012086015194506102406127c08189018780518252602090810151910152565b928601519450610280926127e08885018780518252602090810151910152565b61016087015195506102c0612801818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516128be604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061290b8185018380518252602090810151910152565b60c0870151915061014061292b8186018480518252602090810151910152565b60e0880151925061018061294b8187018580518252602090810151910152565b9188015192506101c09161296b8684018580518252602090810151910152565b610120890151935061020061298c8188018680518252602090810151910152565b918901519350610240916129ac8784018680518252602090810151910152565b6101608a015194506102806129cd8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612aa4610500830185612684565b612ab26105e08301846126a7565b949350505050565b600060208284031215612acc57600080fd5b81518015158114611e0157600080fd5b6001600160401b03828116828216039080821115612afc57612afc61262e565b5092915050565b60006001600160401b03808316818103612b1f57612b1f61262e565b6001019392505050565b60008251612b3b81846020870161259c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", - "nonce": "0x791", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": null, - "transactionType": "CREATE", - "contractName": "ERC1967Proxy", - "contractAddress": "0x9505e8b8546cc9015b2c015826d25821cc48c153", - "function": null, - "arguments": [ - "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB", - "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" - ], - "transaction": { - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "gas": "0x6a8bd", - "value": "0x0", - "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a00000000000000000000000085fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000000000000000000000000000000000000", - "nonce": "0x792", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [], - "libraries": [ - "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x364dbd12eDEB5061435F3f185f9587241bbcE527" - ], - "pending": [], - "returns": { - "lightClientState": { - "internal_type": "struct LightClientArbitrum2.LightClientState", - "value": "(0, 0, 1234)" - }, - "proxyAddress": { - "internal_type": "address", - "value": "0x9505E8B8546cC9015B2c015826d25821CC48C153" - }, - "implementationAddress": { - "internal_type": "address", - "value": "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB" - } - }, - "timestamp": 1736544036, - "chain": 421614, - "commit": "9c97b7e0d" -} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736544114.json b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736544114.json deleted file mode 100644 index a7dc16ebd4..0000000000 --- a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736544114.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "transactions": [ - { - "hash": null, - "transactionType": "CREATE", - "contractName": "LightClientArbitrum2", - "contractAddress": "0x85fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb", - "function": null, - "arguments": null, - "transaction": { - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "gas": "0x31a67f", - "value": "0x0", - "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b72620001046000396000818161121b0152818161124401526113c30152612b726000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120f8565b610584565b005b34801561017e57600080fd5b5061019261018d366004612113565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612267565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b61017061030836600461241b565b6108dd565b34801561031957600080fd5b506102a96108fc565b34801561032e57600080fd5b50610170610919565b34801561034357600080fd5b50610170610988565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b50610398610393366004612113565b61099a565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124d4565b610acd565b34801561041e57600080fd5b5061017061042d3660046124ef565b610b56565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906125c0565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125f3565b610c7a565b34801561055b57600080fd5b5061017061056a3660046120f8565b610de0565b34801561057b57600080fd5b506009546102a9565b61058c610e1e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610e79565b6107338282610ee9565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610fe1565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b60006064803b82036108375760405162461bcd60e51b815260206004820152601f60248201527f41726253797320707265636f6d70696c65206e6f7420617661696c61626c650060448201526064015b60405180910390fd5b6108756040518060400160405280601a81526020017f617262537973507265636f6d70696c6520617661696c61626c650000000000008152506111cd565b806001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190612615565b91505090565b6108e5611210565b6108ee826112b5565b6108f882826112f6565b5050565b60006109066113b8565b50600080516020612b4683398151915290565b610921610e1e565b6008546001600160a01b03161561096d57600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b610990610e1e565b6109866000611401565b600980546000918291906109af600183612644565b815481106109bf576109bf612657565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a0057604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610ac6578460098281548110610a3057610a30612657565b6000918252602090912060029091020154600160801b90046001600160401b031610610abe5760098181548110610a6957610a69612657565b90600052602060002090600202016001015460098281548110610a8e57610a8e612657565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a14565b5050915091565b610ad5610e1e565b610e108163ffffffff161080610af457506301e133808163ffffffff16115b80610b12575060085463ffffffff600160a01b909104811690821611155b15610b30576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b9b5750825b90506000826001600160401b03166001148015610bb75750303b155b905081158015610bc5575080155b15610be35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c0d57845460ff60401b1916600160401b1785555b610c1686611472565b610c1e611483565b610c2989898961148b565b8315610c6f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610c886107de565b841180610c93575080155b80610cde5750600854600980549091600160c01b90046001600160401b0316908110610cc157610cc1612657565b60009182526020909120600290910201546001600160401b031684105b15610cfc5760405163b0b4387760e01b815260040160405180910390fd5b60008080610d0b600185612644565b90505b81610da957600854600160c01b90046001600160401b03168110610da9578660098281548110610d4057610d40612657565b60009182526020909120600290910201546001600160401b031611610d97576001915060098181548110610d7657610d76612657565b60009182526020909120600290910201546001600160401b03169250610da9565b80610da18161266d565b915050610d0e565b81610dc75760405163b0b4387760e01b815260040160405180910390fd5b85610dd28489612644565b119450505050505b92915050565b610de8610e1e565b6001600160a01b038116610e1257604051631e4fbdf760e01b81526000600482015260240161082e565b610e1b81611401565b50565b33610e507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109865760405163118cdaa760e01b815233600482015260240161082e565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108f85760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c640000000000604482015260640161082e565b6000610ef36115b8565b9050610efd611e31565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273364dbd12edeb5061435f3f185f9587241bbce5279063ce537a7790610f7d9085908590889060040161288b565b602060405180830381865af4158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190612aba565b610fdb576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611057575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b031690811061102157611021612657565b600091825260209091206002909102015461104c90600160401b90046001600160401b031684612adc565b6001600160401b0316115b156110eb57600854600980549091600160c01b90046001600160401b031690811061108457611084612657565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186110c583612b03565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b610e1b816040516024016111e191906125c0565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052611be7565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061129757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661128b600080516020612b46833981519152546001600160a01b031690565b6001600160a01b031614155b156109865760405163703e46dd60e11b815260040160405180910390fd5b6112bd610e1e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611350575060408051601f3d908101601f1916820190925261134d91810190612615565b60015b61137857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161082e565b600080516020612b4683398151915281146113a957604051632a87526960e21b81526004810182905260240161082e565b6113b38383611c08565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109865760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61147a611c5e565b610e1b81611ca7565b610986611c5e565b82516001600160401b03161515806114af575060208301516001600160401b031615155b806114bc57506020820151155b806114c957506040820151155b806114d657506060820151155b806114e057508151155b806114f25750610e108163ffffffff16105b8061150657506301e133808163ffffffff16115b15611524576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6115c0611e4f565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b611c1182611caf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611c56576113b38282611d14565b6108f8611d8a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661098657604051631afcd79f60e31b815260040160405180910390fd5b610de8611c5e565b806001600160a01b03163b600003611ce557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161082e565b600080516020612b4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611d319190612b29565b600060405180830381855af49150503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b5091509150611d81858383611da9565b95945050505050565b34156109865760405163b398979f60e01b815260040160405180910390fd5b606082611dbe57611db982611e08565b611e01565b8151158015611dd557506001600160a01b0384163b155b15611dfe57604051639996b31560e01b81526001600160a01b038516600482015260240161082e565b50805b9392505050565b805115611e185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e86604051806040016040528060008152602001600081525090565b8152602001611ea8604051806040016040528060008152602001600081525090565b8152602001611eca604051806040016040528060008152602001600081525090565b8152602001611eec604051806040016040528060008152602001600081525090565b8152602001611f0e604051806040016040528060008152602001600081525090565b8152602001611f30604051806040016040528060008152602001600081525090565b8152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b8152602001612040604051806040016040528060008152602001600081525090565b8152602001612062604051806040016040528060008152602001600081525090565b8152602001612084604051806040016040528060008152602001600081525090565b81526020016120a6604051806040016040528060008152602001600081525090565b81526020016120c8604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b611e01826120dc565b60006020828403121561212557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156121655761216561212c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121935761219361212c565b604052919050565b80356001600160401b03811681146120f357600080fd5b6000606082840312156121c457600080fd5b604051606081018181106001600160401b03821117156121e6576121e661212c565b6040529050806121f58361219b565b81526122036020840161219b565b6020820152604083013560408201525092915050565b60006040828403121561222b57600080fd5b604051604081018181106001600160401b038211171561224d5761224d61212c565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561227c57600080fd5b61228685856121b2565b925061048080605f198301121561229c57600080fd5b6122a4612142565b91506122b38660608701612219565b82526122c28660a08701612219565b60208301526122d48660e08701612219565b60408301526101206122e887828801612219565b60608401526101606122fc88828901612219565b60808501526101a061231089828a01612219565b60a08601526101e06123248a828b01612219565b60c08701526102206123388b828c01612219565b60e088015261026061234c8c828d01612219565b6101008901526102a06123618d828e01612219565b878a01526123738d6102e08e01612219565b6101408a01526123878d6103208e01612219565b868a01526123998d6103608e01612219565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561242e57600080fd5b612437836120dc565b91506020808401356001600160401b038082111561245457600080fd5b818601915086601f83011261246857600080fd5b81358181111561247a5761247a61212c565b61248c601f8201601f1916850161216b565b915080825287848285010111156124a257600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120f357600080fd5b6000602082840312156124e657600080fd5b611e01826124c0565b60008060008084860361012081121561250757600080fd5b61251187876121b2565b94506080605f198201121561252557600080fd5b50604051608081018181106001600160401b03821117156125485761254861212c565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061258260e086016124c0565b915061259161010086016120dc565b905092959194509250565b60005b838110156125b757818101518382015260200161259f565b50506000910152565b60208152600082518060208401526125df81604085016020870161259c565b601f01601f19169190910160400192915050565b6000806040838503121561260657600080fd5b50508035926020909101359150565b60006020828403121561262757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dda57610dda61262e565b634e487b7160e01b600052603260045260246000fd5b60008161267c5761267c61262e565b506000190190565b8060005b6007811015610fdb578151845260209384019390910190600101612688565b6126bc82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061271f8185018380518252602090810151910152565b60a0830151915061014061273f8186018480518252602090810151910152565b60c0840151925061018061275f8187018580518252602090810151910152565b60e085015193506101c061277f8188018680518252602090810151910152565b9285015193506102009261279f8785018680518252602090810151910152565b61012086015194506102406127c08189018780518252602090810151910152565b928601519450610280926127e08885018780518252602090810151910152565b61016087015195506102c0612801818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516128be604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061290b8185018380518252602090810151910152565b60c0870151915061014061292b8186018480518252602090810151910152565b60e0880151925061018061294b8187018580518252602090810151910152565b9188015192506101c09161296b8684018580518252602090810151910152565b610120890151935061020061298c8188018680518252602090810151910152565b918901519350610240916129ac8784018680518252602090810151910152565b6101608a015194506102806129cd8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612aa4610500830185612684565b612ab26105e08301846126a7565b949350505050565b600060208284031215612acc57600080fd5b81518015158114611e0157600080fd5b6001600160401b03828116828216039080821115612afc57612afc61262e565b5092915050565b60006001600160401b03808316818103612b1f57612b1f61262e565b6001019392505050565b60008251612b3b81846020870161259c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", - "nonce": "0x791", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": null, - "transactionType": "CREATE", - "contractName": "ERC1967Proxy", - "contractAddress": "0x9505e8b8546cc9015b2c015826d25821cc48c153", - "function": null, - "arguments": [ - "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB", - "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266" - ], - "transaction": { - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "gas": "0x6a8bd", - "value": "0x0", - "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a00000000000000000000000085fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb9226600000000000000000000000000000000000000000000000000000000", - "nonce": "0x792", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [], - "libraries": [ - "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x364dbd12eDEB5061435F3f185f9587241bbcE527" - ], - "pending": [], - "returns": { - "proxyAddress": { - "internal_type": "address", - "value": "0x9505E8B8546cC9015B2c015826d25821CC48C153" - }, - "implementationAddress": { - "internal_type": "address", - "value": "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB" - }, - "lightClientState": { - "internal_type": "struct LightClientArbitrum2.LightClientState", - "value": "(0, 0, 1234)" - } - }, - "timestamp": 1736544114, - "chain": 421614, - "commit": "9c97b7e0d" -} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736602963.json b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736602963.json deleted file mode 100644 index a51cdf45ed..0000000000 --- a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736602963.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "transactions": [ - { - "hash": null, - "transactionType": "CREATE", - "contractName": "LightClientArbitrum2", - "contractAddress": "0xde9c0d5ff63e89cd6dd283ce5d36ab77041a0efd", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "gas": "0x32f5cb", - "value": "0x0", - "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b72620001046000396000818161121b0152818161124401526113c30152612b726000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120f8565b610584565b005b34801561017e57600080fd5b5061019261018d366004612113565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612267565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b61017061030836600461241b565b6108dd565b34801561031957600080fd5b506102a96108fc565b34801561032e57600080fd5b50610170610919565b34801561034357600080fd5b50610170610988565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b50610398610393366004612113565b61099a565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124d4565b610acd565b34801561041e57600080fd5b5061017061042d3660046124ef565b610b56565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906125c0565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125f3565b610c7a565b34801561055b57600080fd5b5061017061056a3660046120f8565b610de0565b34801561057b57600080fd5b506009546102a9565b61058c610e1e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610e79565b6107338282610ee9565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610fe1565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b60006064803b82036108375760405162461bcd60e51b815260206004820152601f60248201527f41726253797320707265636f6d70696c65206e6f7420617661696c61626c650060448201526064015b60405180910390fd5b6108756040518060400160405280601a81526020017f617262537973507265636f6d70696c6520617661696c61626c650000000000008152506111cd565b806001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190612615565b91505090565b6108e5611210565b6108ee826112b5565b6108f882826112f6565b5050565b60006109066113b8565b50600080516020612b4683398151915290565b610921610e1e565b6008546001600160a01b03161561096d57600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b610990610e1e565b6109866000611401565b600980546000918291906109af600183612644565b815481106109bf576109bf612657565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a0057604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610ac6578460098281548110610a3057610a30612657565b6000918252602090912060029091020154600160801b90046001600160401b031610610abe5760098181548110610a6957610a69612657565b90600052602060002090600202016001015460098281548110610a8e57610a8e612657565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a14565b5050915091565b610ad5610e1e565b610e108163ffffffff161080610af457506301e133808163ffffffff16115b80610b12575060085463ffffffff600160a01b909104811690821611155b15610b30576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b9b5750825b90506000826001600160401b03166001148015610bb75750303b155b905081158015610bc5575080155b15610be35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c0d57845460ff60401b1916600160401b1785555b610c1686611472565b610c1e611483565b610c2989898961148b565b8315610c6f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610c886107de565b841180610c93575080155b80610cde5750600854600980549091600160c01b90046001600160401b0316908110610cc157610cc1612657565b60009182526020909120600290910201546001600160401b031684105b15610cfc5760405163b0b4387760e01b815260040160405180910390fd5b60008080610d0b600185612644565b90505b81610da957600854600160c01b90046001600160401b03168110610da9578660098281548110610d4057610d40612657565b60009182526020909120600290910201546001600160401b031611610d97576001915060098181548110610d7657610d76612657565b60009182526020909120600290910201546001600160401b03169250610da9565b80610da18161266d565b915050610d0e565b81610dc75760405163b0b4387760e01b815260040160405180910390fd5b85610dd28489612644565b119450505050505b92915050565b610de8610e1e565b6001600160a01b038116610e1257604051631e4fbdf760e01b81526000600482015260240161082e565b610e1b81611401565b50565b33610e507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109865760405163118cdaa760e01b815233600482015260240161082e565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108f85760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c640000000000604482015260640161082e565b6000610ef36115b8565b9050610efd611e31565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273085a1ec0d51f4541d81a442a0df4c9e9c70d7d1e9063ce537a7790610f7d9085908590889060040161288b565b602060405180830381865af4158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190612aba565b610fdb576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611057575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b031690811061102157611021612657565b600091825260209091206002909102015461104c90600160401b90046001600160401b031684612adc565b6001600160401b0316115b156110eb57600854600980549091600160c01b90046001600160401b031690811061108457611084612657565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186110c583612b03565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b610e1b816040516024016111e191906125c0565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052611be7565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061129757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661128b600080516020612b46833981519152546001600160a01b031690565b6001600160a01b031614155b156109865760405163703e46dd60e11b815260040160405180910390fd5b6112bd610e1e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611350575060408051601f3d908101601f1916820190925261134d91810190612615565b60015b61137857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161082e565b600080516020612b4683398151915281146113a957604051632a87526960e21b81526004810182905260240161082e565b6113b38383611c08565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109865760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61147a611c5e565b610e1b81611ca7565b610986611c5e565b82516001600160401b03161515806114af575060208301516001600160401b031615155b806114bc57506020820151155b806114c957506040820151155b806114d657506060820151155b806114e057508151155b806114f25750610e108163ffffffff16105b8061150657506301e133808163ffffffff16115b15611524576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6115c0611e4f565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b611c1182611caf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611c56576113b38282611d14565b6108f8611d8a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661098657604051631afcd79f60e31b815260040160405180910390fd5b610de8611c5e565b806001600160a01b03163b600003611ce557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161082e565b600080516020612b4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611d319190612b29565b600060405180830381855af49150503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b5091509150611d81858383611da9565b95945050505050565b34156109865760405163b398979f60e01b815260040160405180910390fd5b606082611dbe57611db982611e08565b611e01565b8151158015611dd557506001600160a01b0384163b155b15611dfe57604051639996b31560e01b81526001600160a01b038516600482015260240161082e565b50805b9392505050565b805115611e185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e86604051806040016040528060008152602001600081525090565b8152602001611ea8604051806040016040528060008152602001600081525090565b8152602001611eca604051806040016040528060008152602001600081525090565b8152602001611eec604051806040016040528060008152602001600081525090565b8152602001611f0e604051806040016040528060008152602001600081525090565b8152602001611f30604051806040016040528060008152602001600081525090565b8152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b8152602001612040604051806040016040528060008152602001600081525090565b8152602001612062604051806040016040528060008152602001600081525090565b8152602001612084604051806040016040528060008152602001600081525090565b81526020016120a6604051806040016040528060008152602001600081525090565b81526020016120c8604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b611e01826120dc565b60006020828403121561212557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156121655761216561212c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121935761219361212c565b604052919050565b80356001600160401b03811681146120f357600080fd5b6000606082840312156121c457600080fd5b604051606081018181106001600160401b03821117156121e6576121e661212c565b6040529050806121f58361219b565b81526122036020840161219b565b6020820152604083013560408201525092915050565b60006040828403121561222b57600080fd5b604051604081018181106001600160401b038211171561224d5761224d61212c565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561227c57600080fd5b61228685856121b2565b925061048080605f198301121561229c57600080fd5b6122a4612142565b91506122b38660608701612219565b82526122c28660a08701612219565b60208301526122d48660e08701612219565b60408301526101206122e887828801612219565b60608401526101606122fc88828901612219565b60808501526101a061231089828a01612219565b60a08601526101e06123248a828b01612219565b60c08701526102206123388b828c01612219565b60e088015261026061234c8c828d01612219565b6101008901526102a06123618d828e01612219565b878a01526123738d6102e08e01612219565b6101408a01526123878d6103208e01612219565b868a01526123998d6103608e01612219565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561242e57600080fd5b612437836120dc565b91506020808401356001600160401b038082111561245457600080fd5b818601915086601f83011261246857600080fd5b81358181111561247a5761247a61212c565b61248c601f8201601f1916850161216b565b915080825287848285010111156124a257600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120f357600080fd5b6000602082840312156124e657600080fd5b611e01826124c0565b60008060008084860361012081121561250757600080fd5b61251187876121b2565b94506080605f198201121561252557600080fd5b50604051608081018181106001600160401b03821117156125485761254861212c565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061258260e086016124c0565b915061259161010086016120dc565b905092959194509250565b60005b838110156125b757818101518382015260200161259f565b50506000910152565b60208152600082518060208401526125df81604085016020870161259c565b601f01601f19169190910160400192915050565b6000806040838503121561260657600080fd5b50508035926020909101359150565b60006020828403121561262757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dda57610dda61262e565b634e487b7160e01b600052603260045260246000fd5b60008161267c5761267c61262e565b506000190190565b8060005b6007811015610fdb578151845260209384019390910190600101612688565b6126bc82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061271f8185018380518252602090810151910152565b60a0830151915061014061273f8186018480518252602090810151910152565b60c0840151925061018061275f8187018580518252602090810151910152565b60e085015193506101c061277f8188018680518252602090810151910152565b9285015193506102009261279f8785018680518252602090810151910152565b61012086015194506102406127c08189018780518252602090810151910152565b928601519450610280926127e08885018780518252602090810151910152565b61016087015195506102c0612801818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516128be604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061290b8185018380518252602090810151910152565b60c0870151915061014061292b8186018480518252602090810151910152565b60e0880151925061018061294b8187018580518252602090810151910152565b9188015192506101c09161296b8684018580518252602090810151910152565b610120890151935061020061298c8188018680518252602090810151910152565b918901519350610240916129ac8784018680518252602090810151910152565b6101608a015194506102806129cd8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612aa4610500830185612684565b612ab26105e08301846126a7565b949350505050565b600060208284031215612acc57600080fd5b81518015158114611e0157600080fd5b6001600160401b03828116828216039080821115612afc57612afc61262e565b5092915050565b60006001600160401b03808316818103612b1f57612b1f61262e565b6001019392505050565b60008251612b3b81846020870161259c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", - "nonce": "0x1f", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": null, - "transactionType": "CREATE", - "contractName": "ERC1967Proxy", - "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", - "function": null, - "arguments": [ - "0xde9c0D5FF63E89cd6Dd283CE5D36aB77041A0eFd", - "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" - ], - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "gas": "0x6a8bd", - "value": "0x0", - "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a000000000000000000000000de9c0d5ff63e89cd6dd283ce5d36ab77041a0efd000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e00000000000000000000000000000000000000000000000000000000", - "nonce": "0x20", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": null, - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", - "gas": "0x76de", - "value": "0x0", - "input": "0x013fa5fc000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", - "nonce": "0x21", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": null, - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", - "gas": "0x76d9", - "value": "0x0", - "input": "0xf2fde38b0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be", - "nonce": "0x22", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [], - "libraries": [ - "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x085a1Ec0d51f4541d81a442a0Df4c9E9C70D7D1e" - ], - "pending": [], - "returns": { - "implementationAddress": { - "internal_type": "address", - "value": "0xde9c0D5FF63E89cd6Dd283CE5D36aB77041A0eFd" - }, - "lightClientState": { - "internal_type": "struct LightClientArbitrum2.LightClientState", - "value": "(0, 0, 1234)" - }, - "proxyAddress": { - "internal_type": "address", - "value": "0xec09686F9D6C77d8b9C58bEEbd937e8EA6e29a7d" - } - }, - "timestamp": 1736602963, - "chain": 421614, - "commit": "9c97b7e0d" -} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603058.json b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603058.json deleted file mode 100644 index f89862a864..0000000000 --- a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603058.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "transactions": [ - { - "hash": null, - "transactionType": "CREATE", - "contractName": "LightClientArbitrum2", - "contractAddress": "0xde9c0d5ff63e89cd6dd283ce5d36ab77041a0efd", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "gas": "0x330547", - "value": "0x0", - "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b72620001046000396000818161121b0152818161124401526113c30152612b726000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120f8565b610584565b005b34801561017e57600080fd5b5061019261018d366004612113565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612267565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b61017061030836600461241b565b6108dd565b34801561031957600080fd5b506102a96108fc565b34801561032e57600080fd5b50610170610919565b34801561034357600080fd5b50610170610988565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b50610398610393366004612113565b61099a565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124d4565b610acd565b34801561041e57600080fd5b5061017061042d3660046124ef565b610b56565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906125c0565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125f3565b610c7a565b34801561055b57600080fd5b5061017061056a3660046120f8565b610de0565b34801561057b57600080fd5b506009546102a9565b61058c610e1e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610e79565b6107338282610ee9565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610fe1565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b60006064803b82036108375760405162461bcd60e51b815260206004820152601f60248201527f41726253797320707265636f6d70696c65206e6f7420617661696c61626c650060448201526064015b60405180910390fd5b6108756040518060400160405280601a81526020017f617262537973507265636f6d70696c6520617661696c61626c650000000000008152506111cd565b806001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190612615565b91505090565b6108e5611210565b6108ee826112b5565b6108f882826112f6565b5050565b60006109066113b8565b50600080516020612b4683398151915290565b610921610e1e565b6008546001600160a01b03161561096d57600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b610990610e1e565b6109866000611401565b600980546000918291906109af600183612644565b815481106109bf576109bf612657565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a0057604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610ac6578460098281548110610a3057610a30612657565b6000918252602090912060029091020154600160801b90046001600160401b031610610abe5760098181548110610a6957610a69612657565b90600052602060002090600202016001015460098281548110610a8e57610a8e612657565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a14565b5050915091565b610ad5610e1e565b610e108163ffffffff161080610af457506301e133808163ffffffff16115b80610b12575060085463ffffffff600160a01b909104811690821611155b15610b30576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b9b5750825b90506000826001600160401b03166001148015610bb75750303b155b905081158015610bc5575080155b15610be35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c0d57845460ff60401b1916600160401b1785555b610c1686611472565b610c1e611483565b610c2989898961148b565b8315610c6f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610c886107de565b841180610c93575080155b80610cde5750600854600980549091600160c01b90046001600160401b0316908110610cc157610cc1612657565b60009182526020909120600290910201546001600160401b031684105b15610cfc5760405163b0b4387760e01b815260040160405180910390fd5b60008080610d0b600185612644565b90505b81610da957600854600160c01b90046001600160401b03168110610da9578660098281548110610d4057610d40612657565b60009182526020909120600290910201546001600160401b031611610d97576001915060098181548110610d7657610d76612657565b60009182526020909120600290910201546001600160401b03169250610da9565b80610da18161266d565b915050610d0e565b81610dc75760405163b0b4387760e01b815260040160405180910390fd5b85610dd28489612644565b119450505050505b92915050565b610de8610e1e565b6001600160a01b038116610e1257604051631e4fbdf760e01b81526000600482015260240161082e565b610e1b81611401565b50565b33610e507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109865760405163118cdaa760e01b815233600482015260240161082e565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108f85760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c640000000000604482015260640161082e565b6000610ef36115b8565b9050610efd611e31565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273085a1ec0d51f4541d81a442a0df4c9e9c70d7d1e9063ce537a7790610f7d9085908590889060040161288b565b602060405180830381865af4158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190612aba565b610fdb576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611057575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b031690811061102157611021612657565b600091825260209091206002909102015461104c90600160401b90046001600160401b031684612adc565b6001600160401b0316115b156110eb57600854600980549091600160c01b90046001600160401b031690811061108457611084612657565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186110c583612b03565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b610e1b816040516024016111e191906125c0565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052611be7565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061129757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661128b600080516020612b46833981519152546001600160a01b031690565b6001600160a01b031614155b156109865760405163703e46dd60e11b815260040160405180910390fd5b6112bd610e1e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611350575060408051601f3d908101601f1916820190925261134d91810190612615565b60015b61137857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161082e565b600080516020612b4683398151915281146113a957604051632a87526960e21b81526004810182905260240161082e565b6113b38383611c08565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109865760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61147a611c5e565b610e1b81611ca7565b610986611c5e565b82516001600160401b03161515806114af575060208301516001600160401b031615155b806114bc57506020820151155b806114c957506040820151155b806114d657506060820151155b806114e057508151155b806114f25750610e108163ffffffff16105b8061150657506301e133808163ffffffff16115b15611524576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6115c0611e4f565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b611c1182611caf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611c56576113b38282611d14565b6108f8611d8a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661098657604051631afcd79f60e31b815260040160405180910390fd5b610de8611c5e565b806001600160a01b03163b600003611ce557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161082e565b600080516020612b4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611d319190612b29565b600060405180830381855af49150503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b5091509150611d81858383611da9565b95945050505050565b34156109865760405163b398979f60e01b815260040160405180910390fd5b606082611dbe57611db982611e08565b611e01565b8151158015611dd557506001600160a01b0384163b155b15611dfe57604051639996b31560e01b81526001600160a01b038516600482015260240161082e565b50805b9392505050565b805115611e185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e86604051806040016040528060008152602001600081525090565b8152602001611ea8604051806040016040528060008152602001600081525090565b8152602001611eca604051806040016040528060008152602001600081525090565b8152602001611eec604051806040016040528060008152602001600081525090565b8152602001611f0e604051806040016040528060008152602001600081525090565b8152602001611f30604051806040016040528060008152602001600081525090565b8152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b8152602001612040604051806040016040528060008152602001600081525090565b8152602001612062604051806040016040528060008152602001600081525090565b8152602001612084604051806040016040528060008152602001600081525090565b81526020016120a6604051806040016040528060008152602001600081525090565b81526020016120c8604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b611e01826120dc565b60006020828403121561212557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156121655761216561212c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121935761219361212c565b604052919050565b80356001600160401b03811681146120f357600080fd5b6000606082840312156121c457600080fd5b604051606081018181106001600160401b03821117156121e6576121e661212c565b6040529050806121f58361219b565b81526122036020840161219b565b6020820152604083013560408201525092915050565b60006040828403121561222b57600080fd5b604051604081018181106001600160401b038211171561224d5761224d61212c565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561227c57600080fd5b61228685856121b2565b925061048080605f198301121561229c57600080fd5b6122a4612142565b91506122b38660608701612219565b82526122c28660a08701612219565b60208301526122d48660e08701612219565b60408301526101206122e887828801612219565b60608401526101606122fc88828901612219565b60808501526101a061231089828a01612219565b60a08601526101e06123248a828b01612219565b60c08701526102206123388b828c01612219565b60e088015261026061234c8c828d01612219565b6101008901526102a06123618d828e01612219565b878a01526123738d6102e08e01612219565b6101408a01526123878d6103208e01612219565b868a01526123998d6103608e01612219565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561242e57600080fd5b612437836120dc565b91506020808401356001600160401b038082111561245457600080fd5b818601915086601f83011261246857600080fd5b81358181111561247a5761247a61212c565b61248c601f8201601f1916850161216b565b915080825287848285010111156124a257600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120f357600080fd5b6000602082840312156124e657600080fd5b611e01826124c0565b60008060008084860361012081121561250757600080fd5b61251187876121b2565b94506080605f198201121561252557600080fd5b50604051608081018181106001600160401b03821117156125485761254861212c565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061258260e086016124c0565b915061259161010086016120dc565b905092959194509250565b60005b838110156125b757818101518382015260200161259f565b50506000910152565b60208152600082518060208401526125df81604085016020870161259c565b601f01601f19169190910160400192915050565b6000806040838503121561260657600080fd5b50508035926020909101359150565b60006020828403121561262757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dda57610dda61262e565b634e487b7160e01b600052603260045260246000fd5b60008161267c5761267c61262e565b506000190190565b8060005b6007811015610fdb578151845260209384019390910190600101612688565b6126bc82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061271f8185018380518252602090810151910152565b60a0830151915061014061273f8186018480518252602090810151910152565b60c0840151925061018061275f8187018580518252602090810151910152565b60e085015193506101c061277f8188018680518252602090810151910152565b9285015193506102009261279f8785018680518252602090810151910152565b61012086015194506102406127c08189018780518252602090810151910152565b928601519450610280926127e08885018780518252602090810151910152565b61016087015195506102c0612801818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516128be604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061290b8185018380518252602090810151910152565b60c0870151915061014061292b8186018480518252602090810151910152565b60e0880151925061018061294b8187018580518252602090810151910152565b9188015192506101c09161296b8684018580518252602090810151910152565b610120890151935061020061298c8188018680518252602090810151910152565b918901519350610240916129ac8784018680518252602090810151910152565b6101608a015194506102806129cd8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612aa4610500830185612684565b612ab26105e08301846126a7565b949350505050565b600060208284031215612acc57600080fd5b81518015158114611e0157600080fd5b6001600160401b03828116828216039080821115612afc57612afc61262e565b5092915050565b60006001600160401b03808316818103612b1f57612b1f61262e565b6001019392505050565b60008251612b3b81846020870161259c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", - "nonce": "0x1f", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": null, - "transactionType": "CREATE", - "contractName": "ERC1967Proxy", - "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", - "function": null, - "arguments": [ - "0xde9c0D5FF63E89cd6Dd283CE5D36aB77041A0eFd", - "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" - ], - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "gas": "0x6a8bd", - "value": "0x0", - "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a000000000000000000000000de9c0d5ff63e89cd6dd283ce5d36ab77041a0efd000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e00000000000000000000000000000000000000000000000000000000", - "nonce": "0x20", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": null, - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", - "gas": "0x7756", - "value": "0x0", - "input": "0x013fa5fc000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", - "nonce": "0x21", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": null, - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", - "gas": "0x7756", - "value": "0x0", - "input": "0xf2fde38b0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be", - "nonce": "0x22", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [], - "libraries": [ - "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x085a1Ec0d51f4541d81a442a0Df4c9E9C70D7D1e" - ], - "pending": [], - "returns": { - "implementationAddress": { - "internal_type": "address", - "value": "0xde9c0D5FF63E89cd6Dd283CE5D36aB77041A0eFd" - }, - "proxyAddress": { - "internal_type": "address", - "value": "0xec09686F9D6C77d8b9C58bEEbd937e8EA6e29a7d" - }, - "lightClientState": { - "internal_type": "struct LightClientArbitrum2.LightClientState", - "value": "(0, 0, 1234)" - } - }, - "timestamp": 1736603058, - "chain": 421614, - "commit": "9c97b7e0d" -} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603225.json b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603225.json deleted file mode 100644 index 5f91e6a512..0000000000 --- a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603225.json +++ /dev/null @@ -1,136 +0,0 @@ -{ - "transactions": [ - { - "hash": "0x0f0cd3e2722e1a70fd470f9dc43b10b2fefb183357559f9017eeacc4235b0c2c", - "transactionType": "CREATE", - "contractName": "LightClientArbitrum2", - "contractAddress": "0xde9c0d5ff63e89cd6dd283ce5d36ab77041a0efd", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "gas": "0x385b7d", - "value": "0x0", - "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b72620001046000396000818161121b0152818161124401526113c30152612b726000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120f8565b610584565b005b34801561017e57600080fd5b5061019261018d366004612113565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612267565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b61017061030836600461241b565b6108dd565b34801561031957600080fd5b506102a96108fc565b34801561032e57600080fd5b50610170610919565b34801561034357600080fd5b50610170610988565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b50610398610393366004612113565b61099a565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124d4565b610acd565b34801561041e57600080fd5b5061017061042d3660046124ef565b610b56565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906125c0565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125f3565b610c7a565b34801561055b57600080fd5b5061017061056a3660046120f8565b610de0565b34801561057b57600080fd5b506009546102a9565b61058c610e1e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610e79565b6107338282610ee9565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610fe1565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b60006064803b82036108375760405162461bcd60e51b815260206004820152601f60248201527f41726253797320707265636f6d70696c65206e6f7420617661696c61626c650060448201526064015b60405180910390fd5b6108756040518060400160405280601a81526020017f617262537973507265636f6d70696c6520617661696c61626c650000000000008152506111cd565b806001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190612615565b91505090565b6108e5611210565b6108ee826112b5565b6108f882826112f6565b5050565b60006109066113b8565b50600080516020612b4683398151915290565b610921610e1e565b6008546001600160a01b03161561096d57600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b610990610e1e565b6109866000611401565b600980546000918291906109af600183612644565b815481106109bf576109bf612657565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a0057604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610ac6578460098281548110610a3057610a30612657565b6000918252602090912060029091020154600160801b90046001600160401b031610610abe5760098181548110610a6957610a69612657565b90600052602060002090600202016001015460098281548110610a8e57610a8e612657565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a14565b5050915091565b610ad5610e1e565b610e108163ffffffff161080610af457506301e133808163ffffffff16115b80610b12575060085463ffffffff600160a01b909104811690821611155b15610b30576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b9b5750825b90506000826001600160401b03166001148015610bb75750303b155b905081158015610bc5575080155b15610be35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c0d57845460ff60401b1916600160401b1785555b610c1686611472565b610c1e611483565b610c2989898961148b565b8315610c6f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610c886107de565b841180610c93575080155b80610cde5750600854600980549091600160c01b90046001600160401b0316908110610cc157610cc1612657565b60009182526020909120600290910201546001600160401b031684105b15610cfc5760405163b0b4387760e01b815260040160405180910390fd5b60008080610d0b600185612644565b90505b81610da957600854600160c01b90046001600160401b03168110610da9578660098281548110610d4057610d40612657565b60009182526020909120600290910201546001600160401b031611610d97576001915060098181548110610d7657610d76612657565b60009182526020909120600290910201546001600160401b03169250610da9565b80610da18161266d565b915050610d0e565b81610dc75760405163b0b4387760e01b815260040160405180910390fd5b85610dd28489612644565b119450505050505b92915050565b610de8610e1e565b6001600160a01b038116610e1257604051631e4fbdf760e01b81526000600482015260240161082e565b610e1b81611401565b50565b33610e507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109865760405163118cdaa760e01b815233600482015260240161082e565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108f85760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c640000000000604482015260640161082e565b6000610ef36115b8565b9050610efd611e31565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273085a1ec0d51f4541d81a442a0df4c9e9c70d7d1e9063ce537a7790610f7d9085908590889060040161288b565b602060405180830381865af4158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190612aba565b610fdb576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611057575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b031690811061102157611021612657565b600091825260209091206002909102015461104c90600160401b90046001600160401b031684612adc565b6001600160401b0316115b156110eb57600854600980549091600160c01b90046001600160401b031690811061108457611084612657565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186110c583612b03565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b610e1b816040516024016111e191906125c0565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052611be7565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061129757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661128b600080516020612b46833981519152546001600160a01b031690565b6001600160a01b031614155b156109865760405163703e46dd60e11b815260040160405180910390fd5b6112bd610e1e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611350575060408051601f3d908101601f1916820190925261134d91810190612615565b60015b61137857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161082e565b600080516020612b4683398151915281146113a957604051632a87526960e21b81526004810182905260240161082e565b6113b38383611c08565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109865760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61147a611c5e565b610e1b81611ca7565b610986611c5e565b82516001600160401b03161515806114af575060208301516001600160401b031615155b806114bc57506020820151155b806114c957506040820151155b806114d657506060820151155b806114e057508151155b806114f25750610e108163ffffffff16105b8061150657506301e133808163ffffffff16115b15611524576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6115c0611e4f565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b611c1182611caf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611c56576113b38282611d14565b6108f8611d8a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661098657604051631afcd79f60e31b815260040160405180910390fd5b610de8611c5e565b806001600160a01b03163b600003611ce557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161082e565b600080516020612b4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611d319190612b29565b600060405180830381855af49150503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b5091509150611d81858383611da9565b95945050505050565b34156109865760405163b398979f60e01b815260040160405180910390fd5b606082611dbe57611db982611e08565b611e01565b8151158015611dd557506001600160a01b0384163b155b15611dfe57604051639996b31560e01b81526001600160a01b038516600482015260240161082e565b50805b9392505050565b805115611e185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e86604051806040016040528060008152602001600081525090565b8152602001611ea8604051806040016040528060008152602001600081525090565b8152602001611eca604051806040016040528060008152602001600081525090565b8152602001611eec604051806040016040528060008152602001600081525090565b8152602001611f0e604051806040016040528060008152602001600081525090565b8152602001611f30604051806040016040528060008152602001600081525090565b8152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b8152602001612040604051806040016040528060008152602001600081525090565b8152602001612062604051806040016040528060008152602001600081525090565b8152602001612084604051806040016040528060008152602001600081525090565b81526020016120a6604051806040016040528060008152602001600081525090565b81526020016120c8604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b611e01826120dc565b60006020828403121561212557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156121655761216561212c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121935761219361212c565b604052919050565b80356001600160401b03811681146120f357600080fd5b6000606082840312156121c457600080fd5b604051606081018181106001600160401b03821117156121e6576121e661212c565b6040529050806121f58361219b565b81526122036020840161219b565b6020820152604083013560408201525092915050565b60006040828403121561222b57600080fd5b604051604081018181106001600160401b038211171561224d5761224d61212c565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561227c57600080fd5b61228685856121b2565b925061048080605f198301121561229c57600080fd5b6122a4612142565b91506122b38660608701612219565b82526122c28660a08701612219565b60208301526122d48660e08701612219565b60408301526101206122e887828801612219565b60608401526101606122fc88828901612219565b60808501526101a061231089828a01612219565b60a08601526101e06123248a828b01612219565b60c08701526102206123388b828c01612219565b60e088015261026061234c8c828d01612219565b6101008901526102a06123618d828e01612219565b878a01526123738d6102e08e01612219565b6101408a01526123878d6103208e01612219565b868a01526123998d6103608e01612219565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561242e57600080fd5b612437836120dc565b91506020808401356001600160401b038082111561245457600080fd5b818601915086601f83011261246857600080fd5b81358181111561247a5761247a61212c565b61248c601f8201601f1916850161216b565b915080825287848285010111156124a257600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120f357600080fd5b6000602082840312156124e657600080fd5b611e01826124c0565b60008060008084860361012081121561250757600080fd5b61251187876121b2565b94506080605f198201121561252557600080fd5b50604051608081018181106001600160401b03821117156125485761254861212c565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061258260e086016124c0565b915061259161010086016120dc565b905092959194509250565b60005b838110156125b757818101518382015260200161259f565b50506000910152565b60208152600082518060208401526125df81604085016020870161259c565b601f01601f19169190910160400192915050565b6000806040838503121561260657600080fd5b50508035926020909101359150565b60006020828403121561262757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dda57610dda61262e565b634e487b7160e01b600052603260045260246000fd5b60008161267c5761267c61262e565b506000190190565b8060005b6007811015610fdb578151845260209384019390910190600101612688565b6126bc82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061271f8185018380518252602090810151910152565b60a0830151915061014061273f8186018480518252602090810151910152565b60c0840151925061018061275f8187018580518252602090810151910152565b60e085015193506101c061277f8188018680518252602090810151910152565b9285015193506102009261279f8785018680518252602090810151910152565b61012086015194506102406127c08189018780518252602090810151910152565b928601519450610280926127e08885018780518252602090810151910152565b61016087015195506102c0612801818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516128be604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061290b8185018380518252602090810151910152565b60c0870151915061014061292b8186018480518252602090810151910152565b60e0880151925061018061294b8187018580518252602090810151910152565b9188015192506101c09161296b8684018580518252602090810151910152565b610120890151935061020061298c8188018680518252602090810151910152565b918901519350610240916129ac8784018680518252602090810151910152565b6101608a015194506102806129cd8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612aa4610500830185612684565b612ab26105e08301846126a7565b949350505050565b600060208284031215612acc57600080fd5b81518015158114611e0157600080fd5b6001600160401b03828116828216039080821115612afc57612afc61262e565b5092915050565b60006001600160401b03808316818103612b1f57612b1f61262e565b6001019392505050565b60008251612b3b81846020870161259c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", - "nonce": "0x1f", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": null, - "transactionType": "CREATE", - "contractName": "ERC1967Proxy", - "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", - "function": null, - "arguments": [ - "0xde9c0D5FF63E89cd6Dd283CE5D36aB77041A0eFd", - "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" - ], - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "gas": "0x6a8bd", - "value": "0x0", - "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a000000000000000000000000de9c0d5ff63e89cd6dd283ce5d36ab77041a0efd000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e00000000000000000000000000000000000000000000000000000000", - "nonce": "0x20", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": null, - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", - "gas": "0x99fb", - "value": "0x0", - "input": "0x013fa5fc000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", - "nonce": "0x21", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": null, - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", - "gas": "0x99fb", - "value": "0x0", - "input": "0xf2fde38b0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be", - "nonce": "0x22", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "status": "0x1", - "cumulativeGasUsed": "0x31c690", - "logs": [ - { - "address": "0xde9c0d5ff63e89cd6dd283ce5d36ab77041a0efd", - "topics": [ - "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" - ], - "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "blockHash": "0x4cd1f51c57e2ccfb4ac11d34d3fe751872a0abdb6771a09a61c077b13d70894e", - "blockNumber": "0x6cf0887", - "transactionHash": "0x0f0cd3e2722e1a70fd470f9dc43b10b2fefb183357559f9017eeacc4235b0c2c", - "transactionIndex": "0x5", - "logIndex": "0x6", - "removed": false - } - ], - "logsBloom": "0x00000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000002000000000000000000000000000000000000000000000000000000", - "type": "0x0", - "transactionHash": "0x0f0cd3e2722e1a70fd470f9dc43b10b2fefb183357559f9017eeacc4235b0c2c", - "transactionIndex": "0x5", - "blockHash": "0x4cd1f51c57e2ccfb4ac11d34d3fe751872a0abdb6771a09a61c077b13d70894e", - "blockNumber": "0x6cf0887", - "gasUsed": "0x29eb03", - "effectiveGasPrice": "0x8607860", - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": null, - "contractAddress": "0xde9c0d5ff63e89cd6dd283ce5d36ab77041a0efd", - "gasUsedForL1": "0x40b38", - "l1BlockNumber": "0x71f5ee" - } - ], - "libraries": [ - "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x085a1Ec0d51f4541d81a442a0Df4c9E9C70D7D1e" - ], - "pending": [], - "returns": { - "proxyAddress": { - "internal_type": "address", - "value": "0xec09686F9D6C77d8b9C58bEEbd937e8EA6e29a7d" - }, - "implementationAddress": { - "internal_type": "address", - "value": "0xde9c0D5FF63E89cd6Dd283CE5D36aB77041A0eFd" - }, - "lightClientState": { - "internal_type": "struct LightClientArbitrum2.LightClientState", - "value": "(0, 0, 1234)" - } - }, - "timestamp": 1736603225, - "chain": 421614, - "commit": "9c97b7e0d" -} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603316.json b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603316.json deleted file mode 100644 index 480210329d..0000000000 --- a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603316.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "transactions": [ - { - "hash": null, - "transactionType": "CREATE", - "contractName": "LightClientArbitrum2", - "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "gas": "0x37aafb", - "value": "0x0", - "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b72620001046000396000818161121b0152818161124401526113c30152612b726000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120f8565b610584565b005b34801561017e57600080fd5b5061019261018d366004612113565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612267565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b61017061030836600461241b565b6108dd565b34801561031957600080fd5b506102a96108fc565b34801561032e57600080fd5b50610170610919565b34801561034357600080fd5b50610170610988565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b50610398610393366004612113565b61099a565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124d4565b610acd565b34801561041e57600080fd5b5061017061042d3660046124ef565b610b56565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906125c0565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125f3565b610c7a565b34801561055b57600080fd5b5061017061056a3660046120f8565b610de0565b34801561057b57600080fd5b506009546102a9565b61058c610e1e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610e79565b6107338282610ee9565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610fe1565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b60006064803b82036108375760405162461bcd60e51b815260206004820152601f60248201527f41726253797320707265636f6d70696c65206e6f7420617661696c61626c650060448201526064015b60405180910390fd5b6108756040518060400160405280601a81526020017f617262537973507265636f6d70696c6520617661696c61626c650000000000008152506111cd565b806001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190612615565b91505090565b6108e5611210565b6108ee826112b5565b6108f882826112f6565b5050565b60006109066113b8565b50600080516020612b4683398151915290565b610921610e1e565b6008546001600160a01b03161561096d57600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b610990610e1e565b6109866000611401565b600980546000918291906109af600183612644565b815481106109bf576109bf612657565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a0057604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610ac6578460098281548110610a3057610a30612657565b6000918252602090912060029091020154600160801b90046001600160401b031610610abe5760098181548110610a6957610a69612657565b90600052602060002090600202016001015460098281548110610a8e57610a8e612657565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a14565b5050915091565b610ad5610e1e565b610e108163ffffffff161080610af457506301e133808163ffffffff16115b80610b12575060085463ffffffff600160a01b909104811690821611155b15610b30576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b9b5750825b90506000826001600160401b03166001148015610bb75750303b155b905081158015610bc5575080155b15610be35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c0d57845460ff60401b1916600160401b1785555b610c1686611472565b610c1e611483565b610c2989898961148b565b8315610c6f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610c886107de565b841180610c93575080155b80610cde5750600854600980549091600160c01b90046001600160401b0316908110610cc157610cc1612657565b60009182526020909120600290910201546001600160401b031684105b15610cfc5760405163b0b4387760e01b815260040160405180910390fd5b60008080610d0b600185612644565b90505b81610da957600854600160c01b90046001600160401b03168110610da9578660098281548110610d4057610d40612657565b60009182526020909120600290910201546001600160401b031611610d97576001915060098181548110610d7657610d76612657565b60009182526020909120600290910201546001600160401b03169250610da9565b80610da18161266d565b915050610d0e565b81610dc75760405163b0b4387760e01b815260040160405180910390fd5b85610dd28489612644565b119450505050505b92915050565b610de8610e1e565b6001600160a01b038116610e1257604051631e4fbdf760e01b81526000600482015260240161082e565b610e1b81611401565b50565b33610e507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109865760405163118cdaa760e01b815233600482015260240161082e565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108f85760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c640000000000604482015260640161082e565b6000610ef36115b8565b9050610efd611e31565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273085a1ec0d51f4541d81a442a0df4c9e9c70d7d1e9063ce537a7790610f7d9085908590889060040161288b565b602060405180830381865af4158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190612aba565b610fdb576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611057575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b031690811061102157611021612657565b600091825260209091206002909102015461104c90600160401b90046001600160401b031684612adc565b6001600160401b0316115b156110eb57600854600980549091600160c01b90046001600160401b031690811061108457611084612657565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186110c583612b03565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b610e1b816040516024016111e191906125c0565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052611be7565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061129757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661128b600080516020612b46833981519152546001600160a01b031690565b6001600160a01b031614155b156109865760405163703e46dd60e11b815260040160405180910390fd5b6112bd610e1e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611350575060408051601f3d908101601f1916820190925261134d91810190612615565b60015b61137857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161082e565b600080516020612b4683398151915281146113a957604051632a87526960e21b81526004810182905260240161082e565b6113b38383611c08565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109865760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61147a611c5e565b610e1b81611ca7565b610986611c5e565b82516001600160401b03161515806114af575060208301516001600160401b031615155b806114bc57506020820151155b806114c957506040820151155b806114d657506060820151155b806114e057508151155b806114f25750610e108163ffffffff16105b8061150657506301e133808163ffffffff16115b15611524576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6115c0611e4f565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b611c1182611caf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611c56576113b38282611d14565b6108f8611d8a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661098657604051631afcd79f60e31b815260040160405180910390fd5b610de8611c5e565b806001600160a01b03163b600003611ce557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161082e565b600080516020612b4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611d319190612b29565b600060405180830381855af49150503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b5091509150611d81858383611da9565b95945050505050565b34156109865760405163b398979f60e01b815260040160405180910390fd5b606082611dbe57611db982611e08565b611e01565b8151158015611dd557506001600160a01b0384163b155b15611dfe57604051639996b31560e01b81526001600160a01b038516600482015260240161082e565b50805b9392505050565b805115611e185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e86604051806040016040528060008152602001600081525090565b8152602001611ea8604051806040016040528060008152602001600081525090565b8152602001611eca604051806040016040528060008152602001600081525090565b8152602001611eec604051806040016040528060008152602001600081525090565b8152602001611f0e604051806040016040528060008152602001600081525090565b8152602001611f30604051806040016040528060008152602001600081525090565b8152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b8152602001612040604051806040016040528060008152602001600081525090565b8152602001612062604051806040016040528060008152602001600081525090565b8152602001612084604051806040016040528060008152602001600081525090565b81526020016120a6604051806040016040528060008152602001600081525090565b81526020016120c8604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b611e01826120dc565b60006020828403121561212557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156121655761216561212c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121935761219361212c565b604052919050565b80356001600160401b03811681146120f357600080fd5b6000606082840312156121c457600080fd5b604051606081018181106001600160401b03821117156121e6576121e661212c565b6040529050806121f58361219b565b81526122036020840161219b565b6020820152604083013560408201525092915050565b60006040828403121561222b57600080fd5b604051604081018181106001600160401b038211171561224d5761224d61212c565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561227c57600080fd5b61228685856121b2565b925061048080605f198301121561229c57600080fd5b6122a4612142565b91506122b38660608701612219565b82526122c28660a08701612219565b60208301526122d48660e08701612219565b60408301526101206122e887828801612219565b60608401526101606122fc88828901612219565b60808501526101a061231089828a01612219565b60a08601526101e06123248a828b01612219565b60c08701526102206123388b828c01612219565b60e088015261026061234c8c828d01612219565b6101008901526102a06123618d828e01612219565b878a01526123738d6102e08e01612219565b6101408a01526123878d6103208e01612219565b868a01526123998d6103608e01612219565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561242e57600080fd5b612437836120dc565b91506020808401356001600160401b038082111561245457600080fd5b818601915086601f83011261246857600080fd5b81358181111561247a5761247a61212c565b61248c601f8201601f1916850161216b565b915080825287848285010111156124a257600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120f357600080fd5b6000602082840312156124e657600080fd5b611e01826124c0565b60008060008084860361012081121561250757600080fd5b61251187876121b2565b94506080605f198201121561252557600080fd5b50604051608081018181106001600160401b03821117156125485761254861212c565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061258260e086016124c0565b915061259161010086016120dc565b905092959194509250565b60005b838110156125b757818101518382015260200161259f565b50506000910152565b60208152600082518060208401526125df81604085016020870161259c565b601f01601f19169190910160400192915050565b6000806040838503121561260657600080fd5b50508035926020909101359150565b60006020828403121561262757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dda57610dda61262e565b634e487b7160e01b600052603260045260246000fd5b60008161267c5761267c61262e565b506000190190565b8060005b6007811015610fdb578151845260209384019390910190600101612688565b6126bc82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061271f8185018380518252602090810151910152565b60a0830151915061014061273f8186018480518252602090810151910152565b60c0840151925061018061275f8187018580518252602090810151910152565b60e085015193506101c061277f8188018680518252602090810151910152565b9285015193506102009261279f8785018680518252602090810151910152565b61012086015194506102406127c08189018780518252602090810151910152565b928601519450610280926127e08885018780518252602090810151910152565b61016087015195506102c0612801818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516128be604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061290b8185018380518252602090810151910152565b60c0870151915061014061292b8186018480518252602090810151910152565b60e0880151925061018061294b8187018580518252602090810151910152565b9188015192506101c09161296b8684018580518252602090810151910152565b610120890151935061020061298c8188018680518252602090810151910152565b918901519350610240916129ac8784018680518252602090810151910152565b6101608a015194506102806129cd8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612aa4610500830185612684565b612ab26105e08301846126a7565b949350505050565b600060208284031215612acc57600080fd5b81518015158114611e0157600080fd5b6001600160401b03828116828216039080821115612afc57612afc61262e565b5092915050565b60006001600160401b03808316818103612b1f57612b1f61262e565b6001019392505050565b60008251612b3b81846020870161259c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", - "nonce": "0x20", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": null, - "transactionType": "CREATE", - "contractName": "ERC1967Proxy", - "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "function": null, - "arguments": [ - "0xec09686F9D6C77d8b9C58bEEbd937e8EA6e29a7d", - "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" - ], - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "gas": "0x6a8bd", - "value": "0x0", - "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a000000000000000000000000ec09686f9d6c77d8b9c58beebd937e8ea6e29a7d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e00000000000000000000000000000000000000000000000000000000", - "nonce": "0x21", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": null, - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "gas": "0x954f", - "value": "0x0", - "input": "0x013fa5fc000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", - "nonce": "0x22", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": null, - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "gas": "0x95a8", - "value": "0x0", - "input": "0xf2fde38b0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be", - "nonce": "0x23", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [], - "libraries": [ - "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x085a1Ec0d51f4541d81a442a0Df4c9E9C70D7D1e" - ], - "pending": [], - "returns": { - "implementationAddress": { - "internal_type": "address", - "value": "0xec09686F9D6C77d8b9C58bEEbd937e8EA6e29a7d" - }, - "lightClientState": { - "internal_type": "struct LightClientArbitrum2.LightClientState", - "value": "(0, 0, 1234)" - }, - "proxyAddress": { - "internal_type": "address", - "value": "0x17D02a530b251d6728DCDC2D185B08d9Ac398eF0" - } - }, - "timestamp": 1736603316, - "chain": 421614, - "commit": "9c97b7e0d" -} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603559.json b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603559.json deleted file mode 100644 index dfcb0e43aa..0000000000 --- a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603559.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "transactions": [ - { - "hash": null, - "transactionType": "CREATE", - "contractName": "LightClientArbitrum2", - "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "gas": "0x31d178", - "value": "0x0", - "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b72620001046000396000818161121b0152818161124401526113c30152612b726000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120f8565b610584565b005b34801561017e57600080fd5b5061019261018d366004612113565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612267565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b61017061030836600461241b565b6108dd565b34801561031957600080fd5b506102a96108fc565b34801561032e57600080fd5b50610170610919565b34801561034357600080fd5b50610170610988565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b50610398610393366004612113565b61099a565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124d4565b610acd565b34801561041e57600080fd5b5061017061042d3660046124ef565b610b56565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906125c0565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125f3565b610c7a565b34801561055b57600080fd5b5061017061056a3660046120f8565b610de0565b34801561057b57600080fd5b506009546102a9565b61058c610e1e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610e79565b6107338282610ee9565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610fe1565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b60006064803b82036108375760405162461bcd60e51b815260206004820152601f60248201527f41726253797320707265636f6d70696c65206e6f7420617661696c61626c650060448201526064015b60405180910390fd5b6108756040518060400160405280601a81526020017f617262537973507265636f6d70696c6520617661696c61626c650000000000008152506111cd565b806001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190612615565b91505090565b6108e5611210565b6108ee826112b5565b6108f882826112f6565b5050565b60006109066113b8565b50600080516020612b4683398151915290565b610921610e1e565b6008546001600160a01b03161561096d57600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b610990610e1e565b6109866000611401565b600980546000918291906109af600183612644565b815481106109bf576109bf612657565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a0057604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610ac6578460098281548110610a3057610a30612657565b6000918252602090912060029091020154600160801b90046001600160401b031610610abe5760098181548110610a6957610a69612657565b90600052602060002090600202016001015460098281548110610a8e57610a8e612657565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a14565b5050915091565b610ad5610e1e565b610e108163ffffffff161080610af457506301e133808163ffffffff16115b80610b12575060085463ffffffff600160a01b909104811690821611155b15610b30576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b9b5750825b90506000826001600160401b03166001148015610bb75750303b155b905081158015610bc5575080155b15610be35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c0d57845460ff60401b1916600160401b1785555b610c1686611472565b610c1e611483565b610c2989898961148b565b8315610c6f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610c886107de565b841180610c93575080155b80610cde5750600854600980549091600160c01b90046001600160401b0316908110610cc157610cc1612657565b60009182526020909120600290910201546001600160401b031684105b15610cfc5760405163b0b4387760e01b815260040160405180910390fd5b60008080610d0b600185612644565b90505b81610da957600854600160c01b90046001600160401b03168110610da9578660098281548110610d4057610d40612657565b60009182526020909120600290910201546001600160401b031611610d97576001915060098181548110610d7657610d76612657565b60009182526020909120600290910201546001600160401b03169250610da9565b80610da18161266d565b915050610d0e565b81610dc75760405163b0b4387760e01b815260040160405180910390fd5b85610dd28489612644565b119450505050505b92915050565b610de8610e1e565b6001600160a01b038116610e1257604051631e4fbdf760e01b81526000600482015260240161082e565b610e1b81611401565b50565b33610e507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109865760405163118cdaa760e01b815233600482015260240161082e565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108f85760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c640000000000604482015260640161082e565b6000610ef36115b8565b9050610efd611e31565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273085a1ec0d51f4541d81a442a0df4c9e9c70d7d1e9063ce537a7790610f7d9085908590889060040161288b565b602060405180830381865af4158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190612aba565b610fdb576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611057575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b031690811061102157611021612657565b600091825260209091206002909102015461104c90600160401b90046001600160401b031684612adc565b6001600160401b0316115b156110eb57600854600980549091600160c01b90046001600160401b031690811061108457611084612657565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186110c583612b03565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b610e1b816040516024016111e191906125c0565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052611be7565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061129757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661128b600080516020612b46833981519152546001600160a01b031690565b6001600160a01b031614155b156109865760405163703e46dd60e11b815260040160405180910390fd5b6112bd610e1e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611350575060408051601f3d908101601f1916820190925261134d91810190612615565b60015b61137857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161082e565b600080516020612b4683398151915281146113a957604051632a87526960e21b81526004810182905260240161082e565b6113b38383611c08565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109865760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61147a611c5e565b610e1b81611ca7565b610986611c5e565b82516001600160401b03161515806114af575060208301516001600160401b031615155b806114bc57506020820151155b806114c957506040820151155b806114d657506060820151155b806114e057508151155b806114f25750610e108163ffffffff16105b8061150657506301e133808163ffffffff16115b15611524576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6115c0611e4f565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b611c1182611caf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611c56576113b38282611d14565b6108f8611d8a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661098657604051631afcd79f60e31b815260040160405180910390fd5b610de8611c5e565b806001600160a01b03163b600003611ce557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161082e565b600080516020612b4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611d319190612b29565b600060405180830381855af49150503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b5091509150611d81858383611da9565b95945050505050565b34156109865760405163b398979f60e01b815260040160405180910390fd5b606082611dbe57611db982611e08565b611e01565b8151158015611dd557506001600160a01b0384163b155b15611dfe57604051639996b31560e01b81526001600160a01b038516600482015260240161082e565b50805b9392505050565b805115611e185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e86604051806040016040528060008152602001600081525090565b8152602001611ea8604051806040016040528060008152602001600081525090565b8152602001611eca604051806040016040528060008152602001600081525090565b8152602001611eec604051806040016040528060008152602001600081525090565b8152602001611f0e604051806040016040528060008152602001600081525090565b8152602001611f30604051806040016040528060008152602001600081525090565b8152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b8152602001612040604051806040016040528060008152602001600081525090565b8152602001612062604051806040016040528060008152602001600081525090565b8152602001612084604051806040016040528060008152602001600081525090565b81526020016120a6604051806040016040528060008152602001600081525090565b81526020016120c8604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b611e01826120dc565b60006020828403121561212557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156121655761216561212c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121935761219361212c565b604052919050565b80356001600160401b03811681146120f357600080fd5b6000606082840312156121c457600080fd5b604051606081018181106001600160401b03821117156121e6576121e661212c565b6040529050806121f58361219b565b81526122036020840161219b565b6020820152604083013560408201525092915050565b60006040828403121561222b57600080fd5b604051604081018181106001600160401b038211171561224d5761224d61212c565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561227c57600080fd5b61228685856121b2565b925061048080605f198301121561229c57600080fd5b6122a4612142565b91506122b38660608701612219565b82526122c28660a08701612219565b60208301526122d48660e08701612219565b60408301526101206122e887828801612219565b60608401526101606122fc88828901612219565b60808501526101a061231089828a01612219565b60a08601526101e06123248a828b01612219565b60c08701526102206123388b828c01612219565b60e088015261026061234c8c828d01612219565b6101008901526102a06123618d828e01612219565b878a01526123738d6102e08e01612219565b6101408a01526123878d6103208e01612219565b868a01526123998d6103608e01612219565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561242e57600080fd5b612437836120dc565b91506020808401356001600160401b038082111561245457600080fd5b818601915086601f83011261246857600080fd5b81358181111561247a5761247a61212c565b61248c601f8201601f1916850161216b565b915080825287848285010111156124a257600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120f357600080fd5b6000602082840312156124e657600080fd5b611e01826124c0565b60008060008084860361012081121561250757600080fd5b61251187876121b2565b94506080605f198201121561252557600080fd5b50604051608081018181106001600160401b03821117156125485761254861212c565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061258260e086016124c0565b915061259161010086016120dc565b905092959194509250565b60005b838110156125b757818101518382015260200161259f565b50506000910152565b60208152600082518060208401526125df81604085016020870161259c565b601f01601f19169190910160400192915050565b6000806040838503121561260657600080fd5b50508035926020909101359150565b60006020828403121561262757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dda57610dda61262e565b634e487b7160e01b600052603260045260246000fd5b60008161267c5761267c61262e565b506000190190565b8060005b6007811015610fdb578151845260209384019390910190600101612688565b6126bc82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061271f8185018380518252602090810151910152565b60a0830151915061014061273f8186018480518252602090810151910152565b60c0840151925061018061275f8187018580518252602090810151910152565b60e085015193506101c061277f8188018680518252602090810151910152565b9285015193506102009261279f8785018680518252602090810151910152565b61012086015194506102406127c08189018780518252602090810151910152565b928601519450610280926127e08885018780518252602090810151910152565b61016087015195506102c0612801818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516128be604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061290b8185018380518252602090810151910152565b60c0870151915061014061292b8186018480518252602090810151910152565b60e0880151925061018061294b8187018580518252602090810151910152565b9188015192506101c09161296b8684018580518252602090810151910152565b610120890151935061020061298c8188018680518252602090810151910152565b918901519350610240916129ac8784018680518252602090810151910152565b6101608a015194506102806129cd8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612aa4610500830185612684565b612ab26105e08301846126a7565b949350505050565b600060208284031215612acc57600080fd5b81518015158114611e0157600080fd5b6001600160401b03828116828216039080821115612afc57612afc61262e565b5092915050565b60006001600160401b03808316818103612b1f57612b1f61262e565b6001019392505050565b60008251612b3b81846020870161259c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", - "nonce": "0x20", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": null, - "transactionType": "CREATE", - "contractName": "ERC1967Proxy", - "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "function": null, - "arguments": [ - "0xec09686F9D6C77d8b9C58bEEbd937e8EA6e29a7d", - "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" - ], - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "gas": "0x6a8bd", - "value": "0x0", - "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a000000000000000000000000ec09686f9d6c77d8b9c58beebd937e8ea6e29a7d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e00000000000000000000000000000000000000000000000000000000", - "nonce": "0x21", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": null, - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "gas": "0x6ec1", - "value": "0x0", - "input": "0x013fa5fc000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", - "nonce": "0x22", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": null, - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "gas": "0x6ec1", - "value": "0x0", - "input": "0xf2fde38b0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be", - "nonce": "0x23", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [], - "libraries": [ - "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x085a1Ec0d51f4541d81a442a0Df4c9E9C70D7D1e" - ], - "pending": [], - "returns": { - "lightClientState": { - "internal_type": "struct LightClientArbitrum2.LightClientState", - "value": "(0, 0, 1234)" - }, - "proxyAddress": { - "internal_type": "address", - "value": "0x17D02a530b251d6728DCDC2D185B08d9Ac398eF0" - }, - "implementationAddress": { - "internal_type": "address", - "value": "0xec09686F9D6C77d8b9C58bEEbd937e8EA6e29a7d" - } - }, - "timestamp": 1736603559, - "chain": 421614, - "commit": "9c97b7e0d" -} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603691.json b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603691.json deleted file mode 100644 index 84c9d34d76..0000000000 --- a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-1736603691.json +++ /dev/null @@ -1,263 +0,0 @@ -{ - "transactions": [ - { - "hash": "0x8c2a6dd318813e579c3cc896cc83b1980e803f705ce7bddfe19dbaff03257df1", - "transactionType": "CREATE", - "contractName": "LightClientArbitrum2", - "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "gas": "0x31cc3a", - "value": "0x0", - "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b72620001046000396000818161121b0152818161124401526113c30152612b726000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120f8565b610584565b005b34801561017e57600080fd5b5061019261018d366004612113565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612267565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b61017061030836600461241b565b6108dd565b34801561031957600080fd5b506102a96108fc565b34801561032e57600080fd5b50610170610919565b34801561034357600080fd5b50610170610988565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b50610398610393366004612113565b61099a565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124d4565b610acd565b34801561041e57600080fd5b5061017061042d3660046124ef565b610b56565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906125c0565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125f3565b610c7a565b34801561055b57600080fd5b5061017061056a3660046120f8565b610de0565b34801561057b57600080fd5b506009546102a9565b61058c610e1e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610e79565b6107338282610ee9565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610fe1565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b60006064803b82036108375760405162461bcd60e51b815260206004820152601f60248201527f41726253797320707265636f6d70696c65206e6f7420617661696c61626c650060448201526064015b60405180910390fd5b6108756040518060400160405280601a81526020017f617262537973507265636f6d70696c6520617661696c61626c650000000000008152506111cd565b806001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190612615565b91505090565b6108e5611210565b6108ee826112b5565b6108f882826112f6565b5050565b60006109066113b8565b50600080516020612b4683398151915290565b610921610e1e565b6008546001600160a01b03161561096d57600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b610990610e1e565b6109866000611401565b600980546000918291906109af600183612644565b815481106109bf576109bf612657565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a0057604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610ac6578460098281548110610a3057610a30612657565b6000918252602090912060029091020154600160801b90046001600160401b031610610abe5760098181548110610a6957610a69612657565b90600052602060002090600202016001015460098281548110610a8e57610a8e612657565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a14565b5050915091565b610ad5610e1e565b610e108163ffffffff161080610af457506301e133808163ffffffff16115b80610b12575060085463ffffffff600160a01b909104811690821611155b15610b30576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b9b5750825b90506000826001600160401b03166001148015610bb75750303b155b905081158015610bc5575080155b15610be35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c0d57845460ff60401b1916600160401b1785555b610c1686611472565b610c1e611483565b610c2989898961148b565b8315610c6f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610c886107de565b841180610c93575080155b80610cde5750600854600980549091600160c01b90046001600160401b0316908110610cc157610cc1612657565b60009182526020909120600290910201546001600160401b031684105b15610cfc5760405163b0b4387760e01b815260040160405180910390fd5b60008080610d0b600185612644565b90505b81610da957600854600160c01b90046001600160401b03168110610da9578660098281548110610d4057610d40612657565b60009182526020909120600290910201546001600160401b031611610d97576001915060098181548110610d7657610d76612657565b60009182526020909120600290910201546001600160401b03169250610da9565b80610da18161266d565b915050610d0e565b81610dc75760405163b0b4387760e01b815260040160405180910390fd5b85610dd28489612644565b119450505050505b92915050565b610de8610e1e565b6001600160a01b038116610e1257604051631e4fbdf760e01b81526000600482015260240161082e565b610e1b81611401565b50565b33610e507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109865760405163118cdaa760e01b815233600482015260240161082e565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108f85760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c640000000000604482015260640161082e565b6000610ef36115b8565b9050610efd611e31565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273085a1ec0d51f4541d81a442a0df4c9e9c70d7d1e9063ce537a7790610f7d9085908590889060040161288b565b602060405180830381865af4158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190612aba565b610fdb576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611057575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b031690811061102157611021612657565b600091825260209091206002909102015461104c90600160401b90046001600160401b031684612adc565b6001600160401b0316115b156110eb57600854600980549091600160c01b90046001600160401b031690811061108457611084612657565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186110c583612b03565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b610e1b816040516024016111e191906125c0565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052611be7565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061129757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661128b600080516020612b46833981519152546001600160a01b031690565b6001600160a01b031614155b156109865760405163703e46dd60e11b815260040160405180910390fd5b6112bd610e1e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611350575060408051601f3d908101601f1916820190925261134d91810190612615565b60015b61137857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161082e565b600080516020612b4683398151915281146113a957604051632a87526960e21b81526004810182905260240161082e565b6113b38383611c08565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109865760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61147a611c5e565b610e1b81611ca7565b610986611c5e565b82516001600160401b03161515806114af575060208301516001600160401b031615155b806114bc57506020820151155b806114c957506040820151155b806114d657506060820151155b806114e057508151155b806114f25750610e108163ffffffff16105b8061150657506301e133808163ffffffff16115b15611524576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6115c0611e4f565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b611c1182611caf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611c56576113b38282611d14565b6108f8611d8a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661098657604051631afcd79f60e31b815260040160405180910390fd5b610de8611c5e565b806001600160a01b03163b600003611ce557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161082e565b600080516020612b4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611d319190612b29565b600060405180830381855af49150503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b5091509150611d81858383611da9565b95945050505050565b34156109865760405163b398979f60e01b815260040160405180910390fd5b606082611dbe57611db982611e08565b611e01565b8151158015611dd557506001600160a01b0384163b155b15611dfe57604051639996b31560e01b81526001600160a01b038516600482015260240161082e565b50805b9392505050565b805115611e185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e86604051806040016040528060008152602001600081525090565b8152602001611ea8604051806040016040528060008152602001600081525090565b8152602001611eca604051806040016040528060008152602001600081525090565b8152602001611eec604051806040016040528060008152602001600081525090565b8152602001611f0e604051806040016040528060008152602001600081525090565b8152602001611f30604051806040016040528060008152602001600081525090565b8152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b8152602001612040604051806040016040528060008152602001600081525090565b8152602001612062604051806040016040528060008152602001600081525090565b8152602001612084604051806040016040528060008152602001600081525090565b81526020016120a6604051806040016040528060008152602001600081525090565b81526020016120c8604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b611e01826120dc565b60006020828403121561212557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156121655761216561212c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121935761219361212c565b604052919050565b80356001600160401b03811681146120f357600080fd5b6000606082840312156121c457600080fd5b604051606081018181106001600160401b03821117156121e6576121e661212c565b6040529050806121f58361219b565b81526122036020840161219b565b6020820152604083013560408201525092915050565b60006040828403121561222b57600080fd5b604051604081018181106001600160401b038211171561224d5761224d61212c565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561227c57600080fd5b61228685856121b2565b925061048080605f198301121561229c57600080fd5b6122a4612142565b91506122b38660608701612219565b82526122c28660a08701612219565b60208301526122d48660e08701612219565b60408301526101206122e887828801612219565b60608401526101606122fc88828901612219565b60808501526101a061231089828a01612219565b60a08601526101e06123248a828b01612219565b60c08701526102206123388b828c01612219565b60e088015261026061234c8c828d01612219565b6101008901526102a06123618d828e01612219565b878a01526123738d6102e08e01612219565b6101408a01526123878d6103208e01612219565b868a01526123998d6103608e01612219565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561242e57600080fd5b612437836120dc565b91506020808401356001600160401b038082111561245457600080fd5b818601915086601f83011261246857600080fd5b81358181111561247a5761247a61212c565b61248c601f8201601f1916850161216b565b915080825287848285010111156124a257600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120f357600080fd5b6000602082840312156124e657600080fd5b611e01826124c0565b60008060008084860361012081121561250757600080fd5b61251187876121b2565b94506080605f198201121561252557600080fd5b50604051608081018181106001600160401b03821117156125485761254861212c565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061258260e086016124c0565b915061259161010086016120dc565b905092959194509250565b60005b838110156125b757818101518382015260200161259f565b50506000910152565b60208152600082518060208401526125df81604085016020870161259c565b601f01601f19169190910160400192915050565b6000806040838503121561260657600080fd5b50508035926020909101359150565b60006020828403121561262757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dda57610dda61262e565b634e487b7160e01b600052603260045260246000fd5b60008161267c5761267c61262e565b506000190190565b8060005b6007811015610fdb578151845260209384019390910190600101612688565b6126bc82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061271f8185018380518252602090810151910152565b60a0830151915061014061273f8186018480518252602090810151910152565b60c0840151925061018061275f8187018580518252602090810151910152565b60e085015193506101c061277f8188018680518252602090810151910152565b9285015193506102009261279f8785018680518252602090810151910152565b61012086015194506102406127c08189018780518252602090810151910152565b928601519450610280926127e08885018780518252602090810151910152565b61016087015195506102c0612801818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516128be604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061290b8185018380518252602090810151910152565b60c0870151915061014061292b8186018480518252602090810151910152565b60e0880151925061018061294b8187018580518252602090810151910152565b9188015192506101c09161296b8684018580518252602090810151910152565b610120890151935061020061298c8188018680518252602090810151910152565b918901519350610240916129ac8784018680518252602090810151910152565b6101608a015194506102806129cd8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612aa4610500830185612684565b612ab26105e08301846126a7565b949350505050565b600060208284031215612acc57600080fd5b81518015158114611e0157600080fd5b6001600160401b03828116828216039080821115612afc57612afc61262e565b5092915050565b60006001600160401b03808316818103612b1f57612b1f61262e565b6001019392505050565b60008251612b3b81846020870161259c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", - "nonce": "0x20", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xe018d2d6d569096b6d22c6ae6df6672e19090de59548d0e3c9fec7ccee94dad0", - "transactionType": "CREATE", - "contractName": "ERC1967Proxy", - "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "function": null, - "arguments": [ - "0xec09686F9D6C77d8b9C58bEEbd937e8EA6e29a7d", - "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" - ], - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "gas": "0x6a8bd", - "value": "0x0", - "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a000000000000000000000000ec09686f9d6c77d8b9c58beebd937e8ea6e29a7d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e00000000000000000000000000000000000000000000000000000000", - "nonce": "0x21", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x8b5473d6fd295b8be4841fcd4b43af2cf34cfa52ff87e9da98fd53c3ac2f9a37", - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "gas": "0x6ea1", - "value": "0x0", - "input": "0x013fa5fc000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", - "nonce": "0x22", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xbba206b55480253c7d74f0f70a95890687936266a86c8304fe110b30110915b2", - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "gas": "0x6ea0", - "value": "0x0", - "input": "0xf2fde38b0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be", - "nonce": "0x23", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "status": "0x1", - "cumulativeGasUsed": "0x731cec", - "logs": [ - { - "address": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", - "topics": [ - "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" - ], - "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "blockHash": "0x905841fdb032244931e9779443db986fba23e6bdce3e00f8ee954079a4eea9ce", - "blockNumber": "0x6cf0c56", - "transactionHash": "0x8c2a6dd318813e579c3cc896cc83b1980e803f705ce7bddfe19dbaff03257df1", - "transactionIndex": "0x3", - "logIndex": "0x1", - "removed": false - } - ], - "logsBloom": "0x00000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x0", - "transactionHash": "0x8c2a6dd318813e579c3cc896cc83b1980e803f705ce7bddfe19dbaff03257df1", - "transactionIndex": "0x3", - "blockHash": "0x905841fdb032244931e9779443db986fba23e6bdce3e00f8ee954079a4eea9ce", - "blockNumber": "0x6cf0c56", - "gasUsed": "0x25f624", - "effectiveGasPrice": "0xb6ad230", - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": null, - "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", - "gasUsedForL1": "0x1659", - "l1BlockNumber": "0x71f615" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x807a7", - "logs": [ - { - "address": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x000000000000000000000000ec09686f9d6c77d8b9c58beebd937e8ea6e29a7d" - ], - "data": "0x", - "blockHash": "0xe94889340aa5d0e3858df8ec81685884a5947874b8ca8813b1a71c47f8df34a2", - "blockNumber": "0x6cf0c59", - "transactionHash": "0xe018d2d6d569096b6d22c6ae6df6672e19090de59548d0e3c9fec7ccee94dad0", - "transactionIndex": "0x3", - "logIndex": "0x2", - "removed": false - }, - { - "address": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" - ], - "data": "0x", - "blockHash": "0xe94889340aa5d0e3858df8ec81685884a5947874b8ca8813b1a71c47f8df34a2", - "blockNumber": "0x6cf0c59", - "transactionHash": "0xe018d2d6d569096b6d22c6ae6df6672e19090de59548d0e3c9fec7ccee94dad0", - "transactionIndex": "0x3", - "logIndex": "0x3", - "removed": false - }, - { - "address": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "topics": [ - "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0xe94889340aa5d0e3858df8ec81685884a5947874b8ca8813b1a71c47f8df34a2", - "blockNumber": "0x6cf0c59", - "transactionHash": "0xe018d2d6d569096b6d22c6ae6df6672e19090de59548d0e3c9fec7ccee94dad0", - "transactionIndex": "0x3", - "logIndex": "0x4", - "removed": false - } - ], - "logsBloom": "0x00100000000000000100000000000000400000000000000000800000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000001000000000000000000000000000000080000020000000000000000000800000000000000000000000000000000400000000000000000000800000000000000000000000080000000000000020000000000000000000000000000000000000000000000000000000000000000000040000020004000000000000000000000000000000004000000000000000020000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x0", - "transactionHash": "0xe018d2d6d569096b6d22c6ae6df6672e19090de59548d0e3c9fec7ccee94dad0", - "transactionIndex": "0x3", - "blockHash": "0xe94889340aa5d0e3858df8ec81685884a5947874b8ca8813b1a71c47f8df34a2", - "blockNumber": "0x6cf0c59", - "gasUsed": "0x52342", - "effectiveGasPrice": "0xb735db0", - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": null, - "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "gasUsedForL1": "0x391", - "l1BlockNumber": "0x71f615" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x7363d4", - "logs": [ - { - "address": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "topics": [ - "0x8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072" - ], - "data": "0x000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", - "blockHash": "0x9de5adedf857b55887c1ba7884c4451c5fde9c547607e3a28d0fbd16d2b6248f", - "blockNumber": "0x6cf0c5c", - "transactionHash": "0x8b5473d6fd295b8be4841fcd4b43af2cf34cfa52ff87e9da98fd53c3ac2f9a37", - "transactionIndex": "0x2", - "logIndex": "0xc8", - "removed": false - } - ], - "logsBloom": "0x00100000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x0", - "transactionHash": "0x8b5473d6fd295b8be4841fcd4b43af2cf34cfa52ff87e9da98fd53c3ac2f9a37", - "transactionIndex": "0x2", - "blockHash": "0x9de5adedf857b55887c1ba7884c4451c5fde9c547607e3a28d0fbd16d2b6248f", - "blockNumber": "0x6cf0c5c", - "gasUsed": "0x89ca", - "effectiveGasPrice": "0xb5e2800", - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "contractAddress": null, - "gasUsedForL1": "0x76", - "l1BlockNumber": "0x71f615" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x83b7", - "logs": [ - { - "address": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e", - "0x0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be" - ], - "data": "0x", - "blockHash": "0xcc7c8aef57009589c1570c4cd815b288e73e1052b54a07895d74a7181e83419f", - "blockNumber": "0x6cf0c60", - "transactionHash": "0xbba206b55480253c7d74f0f70a95890687936266a86c8304fe110b30110915b2", - "transactionIndex": "0x1", - "logIndex": "0x0", - "removed": false - } - ], - "logsBloom": "0x00100000000000000100000000000000000000000000000000800000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000800020000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000020000000000", - "type": "0x0", - "transactionHash": "0xbba206b55480253c7d74f0f70a95890687936266a86c8304fe110b30110915b2", - "transactionIndex": "0x1", - "blockHash": "0xcc7c8aef57009589c1570c4cd815b288e73e1052b54a07895d74a7181e83419f", - "blockNumber": "0x6cf0c60", - "gasUsed": "0x83b7", - "effectiveGasPrice": "0xb48f250", - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "contractAddress": null, - "gasUsedForL1": "0x77", - "l1BlockNumber": "0x71f616" - } - ], - "libraries": [ - "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x085a1Ec0d51f4541d81a442a0Df4c9E9C70D7D1e" - ], - "pending": [], - "returns": { - "proxyAddress": { - "internal_type": "address", - "value": "0x17D02a530b251d6728DCDC2D185B08d9Ac398eF0" - }, - "lightClientState": { - "internal_type": "struct LightClientArbitrum2.LightClientState", - "value": "(0, 0, 1234)" - }, - "implementationAddress": { - "internal_type": "address", - "value": "0xec09686F9D6C77d8b9C58bEEbd937e8EA6e29a7d" - } - }, - "timestamp": 1736603691, - "chain": 421614, - "commit": "9c97b7e0d" -} \ No newline at end of file diff --git a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-latest.json b/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-latest.json deleted file mode 100644 index 84c9d34d76..0000000000 --- a/contracts/broadcast/LightClientArbitrum.s.sol/421614/run-latest.json +++ /dev/null @@ -1,263 +0,0 @@ -{ - "transactions": [ - { - "hash": "0x8c2a6dd318813e579c3cc896cc83b1980e803f705ce7bddfe19dbaff03257df1", - "transactionType": "CREATE", - "contractName": "LightClientArbitrum2", - "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "gas": "0x31cc3a", - "value": "0x0", - "input": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612b72620001046000396000818161121b0152818161124401526113c30152612b726000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b3660046120f8565b610584565b005b34801561017e57600080fd5b5061019261018d366004612113565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612267565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b61017061030836600461241b565b6108dd565b34801561031957600080fd5b506102a96108fc565b34801561032e57600080fd5b50610170610919565b34801561034357600080fd5b50610170610988565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b50610398610393366004612113565b61099a565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046124d4565b610acd565b34801561041e57600080fd5b5061017061042d3660046124ef565b610b56565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906125c0565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046125f3565b610c7a565b34801561055b57600080fd5b5061017061056a3660046120f8565b610de0565b34801561057b57600080fd5b506009546102a9565b61058c610e1e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610e79565b6107338282610ee9565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610fe1565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b60006064803b82036108375760405162461bcd60e51b815260206004820152601f60248201527f41726253797320707265636f6d70696c65206e6f7420617661696c61626c650060448201526064015b60405180910390fd5b6108756040518060400160405280601a81526020017f617262537973507265636f6d70696c6520617661696c61626c650000000000008152506111cd565b806001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d79190612615565b91505090565b6108e5611210565b6108ee826112b5565b6108f882826112f6565b5050565b60006109066113b8565b50600080516020612b4683398151915290565b610921610e1e565b6008546001600160a01b03161561096d57600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b610990610e1e565b6109866000611401565b600980546000918291906109af600183612644565b815481106109bf576109bf612657565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a0057604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610ac6578460098281548110610a3057610a30612657565b6000918252602090912060029091020154600160801b90046001600160401b031610610abe5760098181548110610a6957610a69612657565b90600052602060002090600202016001015460098281548110610a8e57610a8e612657565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a14565b5050915091565b610ad5610e1e565b610e108163ffffffff161080610af457506301e133808163ffffffff16115b80610b12575060085463ffffffff600160a01b909104811690821611155b15610b30576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b9b5750825b90506000826001600160401b03166001148015610bb75750303b155b905081158015610bc5575080155b15610be35760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c0d57845460ff60401b1916600160401b1785555b610c1686611472565b610c1e611483565b610c2989898961148b565b8315610c6f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610c886107de565b841180610c93575080155b80610cde5750600854600980549091600160c01b90046001600160401b0316908110610cc157610cc1612657565b60009182526020909120600290910201546001600160401b031684105b15610cfc5760405163b0b4387760e01b815260040160405180910390fd5b60008080610d0b600185612644565b90505b81610da957600854600160c01b90046001600160401b03168110610da9578660098281548110610d4057610d40612657565b60009182526020909120600290910201546001600160401b031611610d97576001915060098181548110610d7657610d76612657565b60009182526020909120600290910201546001600160401b03169250610da9565b80610da18161266d565b915050610d0e565b81610dc75760405163b0b4387760e01b815260040160405180910390fd5b85610dd28489612644565b119450505050505b92915050565b610de8610e1e565b6001600160a01b038116610e1257604051631e4fbdf760e01b81526000600482015260240161082e565b610e1b81611401565b50565b33610e507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109865760405163118cdaa760e01b815233600482015260240161082e565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108f85760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c640000000000604482015260640161082e565b6000610ef36115b8565b9050610efd611e31565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273085a1ec0d51f4541d81a442a0df4c9e9c70d7d1e9063ce537a7790610f7d9085908590889060040161288b565b602060405180830381865af4158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190612aba565b610fdb576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611057575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b031690811061102157611021612657565b600091825260209091206002909102015461104c90600160401b90046001600160401b031684612adc565b6001600160401b0316115b156110eb57600854600980549091600160c01b90046001600160401b031690811061108457611084612657565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186110c583612b03565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b610e1b816040516024016111e191906125c0565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052611be7565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061129757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661128b600080516020612b46833981519152546001600160a01b031690565b6001600160a01b031614155b156109865760405163703e46dd60e11b815260040160405180910390fd5b6112bd610e1e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611350575060408051601f3d908101601f1916820190925261134d91810190612615565b60015b61137857604051634c9c8ce360e01b81526001600160a01b038316600482015260240161082e565b600080516020612b4683398151915281146113a957604051632a87526960e21b81526004810182905260240161082e565b6113b38383611c08565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109865760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61147a611c5e565b610e1b81611ca7565b610986611c5e565b82516001600160401b03161515806114af575060208301516001600160401b031615155b806114bc57506020820151155b806114c957506040820151155b806114d657506060820151155b806114e057508151155b806114f25750610e108163ffffffff16105b8061150657506301e133808163ffffffff16115b15611524576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6115c0611e4f565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b611c1182611caf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611c56576113b38282611d14565b6108f8611d8a565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661098657604051631afcd79f60e31b815260040160405180910390fd5b610de8611c5e565b806001600160a01b03163b600003611ce557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161082e565b600080516020612b4683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611d319190612b29565b600060405180830381855af49150503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b5091509150611d81858383611da9565b95945050505050565b34156109865760405163b398979f60e01b815260040160405180910390fd5b606082611dbe57611db982611e08565b611e01565b8151158015611dd557506001600160a01b0384163b155b15611dfe57604051639996b31560e01b81526001600160a01b038516600482015260240161082e565b50805b9392505050565b805115611e185780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611e86604051806040016040528060008152602001600081525090565b8152602001611ea8604051806040016040528060008152602001600081525090565b8152602001611eca604051806040016040528060008152602001600081525090565b8152602001611eec604051806040016040528060008152602001600081525090565b8152602001611f0e604051806040016040528060008152602001600081525090565b8152602001611f30604051806040016040528060008152602001600081525090565b8152602001611f52604051806040016040528060008152602001600081525090565b8152602001611f74604051806040016040528060008152602001600081525090565b8152602001611f96604051806040016040528060008152602001600081525090565b8152602001611fb8604051806040016040528060008152602001600081525090565b8152602001611fda604051806040016040528060008152602001600081525090565b8152602001611ffc604051806040016040528060008152602001600081525090565b815260200161201e604051806040016040528060008152602001600081525090565b8152602001612040604051806040016040528060008152602001600081525090565b8152602001612062604051806040016040528060008152602001600081525090565b8152602001612084604051806040016040528060008152602001600081525090565b81526020016120a6604051806040016040528060008152602001600081525090565b81526020016120c8604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b03811681146120f357600080fd5b919050565b60006020828403121561210a57600080fd5b611e01826120dc565b60006020828403121561212557600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156121655761216561212c565b60405290565b604051601f8201601f191681016001600160401b03811182821017156121935761219361212c565b604052919050565b80356001600160401b03811681146120f357600080fd5b6000606082840312156121c457600080fd5b604051606081018181106001600160401b03821117156121e6576121e661212c565b6040529050806121f58361219b565b81526122036020840161219b565b6020820152604083013560408201525092915050565b60006040828403121561222b57600080fd5b604051604081018181106001600160401b038211171561224d5761224d61212c565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561227c57600080fd5b61228685856121b2565b925061048080605f198301121561229c57600080fd5b6122a4612142565b91506122b38660608701612219565b82526122c28660a08701612219565b60208301526122d48660e08701612219565b60408301526101206122e887828801612219565b60608401526101606122fc88828901612219565b60808501526101a061231089828a01612219565b60a08601526101e06123248a828b01612219565b60c08701526102206123388b828c01612219565b60e088015261026061234c8c828d01612219565b6101008901526102a06123618d828e01612219565b878a01526123738d6102e08e01612219565b6101408a01526123878d6103208e01612219565b868a01526123998d6103608e01612219565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561242e57600080fd5b612437836120dc565b91506020808401356001600160401b038082111561245457600080fd5b818601915086601f83011261246857600080fd5b81358181111561247a5761247a61212c565b61248c601f8201601f1916850161216b565b915080825287848285010111156124a257600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146120f357600080fd5b6000602082840312156124e657600080fd5b611e01826124c0565b60008060008084860361012081121561250757600080fd5b61251187876121b2565b94506080605f198201121561252557600080fd5b50604051608081018181106001600160401b03821117156125485761254861212c565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061258260e086016124c0565b915061259161010086016120dc565b905092959194509250565b60005b838110156125b757818101518382015260200161259f565b50506000910152565b60208152600082518060208401526125df81604085016020870161259c565b601f01601f19169190910160400192915050565b6000806040838503121561260657600080fd5b50508035926020909101359150565b60006020828403121561262757600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610dda57610dda61262e565b634e487b7160e01b600052603260045260246000fd5b60008161267c5761267c61262e565b506000190190565b8060005b6007811015610fdb578151845260209384019390910190600101612688565b6126bc82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061271f8185018380518252602090810151910152565b60a0830151915061014061273f8186018480518252602090810151910152565b60c0840151925061018061275f8187018580518252602090810151910152565b60e085015193506101c061277f8188018680518252602090810151910152565b9285015193506102009261279f8785018680518252602090810151910152565b61012086015194506102406127c08189018780518252602090810151910152565b928601519450610280926127e08885018780518252602090810151910152565b61016087015195506102c0612801818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516128be604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061290b8185018380518252602090810151910152565b60c0870151915061014061292b8186018480518252602090810151910152565b60e0880151925061018061294b8187018580518252602090810151910152565b9188015192506101c09161296b8684018580518252602090810151910152565b610120890151935061020061298c8188018680518252602090810151910152565b918901519350610240916129ac8784018680518252602090810151910152565b6101608a015194506102806129cd8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612aa4610500830185612684565b612ab26105e08301846126a7565b949350505050565b600060208284031215612acc57600080fd5b81518015158114611e0157600080fd5b6001600160401b03828116828216039080821115612afc57612afc61262e565b5092915050565b60006001600160401b03808316818103612b1f57612b1f61262e565b6001019392505050565b60008251612b3b81846020870161259c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a", - "nonce": "0x20", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xe018d2d6d569096b6d22c6ae6df6672e19090de59548d0e3c9fec7ccee94dad0", - "transactionType": "CREATE", - "contractName": "ERC1967Proxy", - "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "function": null, - "arguments": [ - "0xec09686F9D6C77d8b9C58bEEbd937e8EA6e29a7d", - "0x9baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" - ], - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "gas": "0x6a8bd", - "value": "0x0", - "input": "0x60806040526040516103e13803806103e183398101604081905261002291610268565b61002c8282610033565b5050610352565b61003c82610092565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561008657610081828261010e565b505050565b61008e610185565b5050565b806001600160a01b03163b6000036100cd57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161012b9190610336565b600060405180830381855af49150503d8060008114610166576040519150601f19603f3d011682016040523d82523d6000602084013e61016b565b606091505b50909250905061017c8583836101a6565b95945050505050565b34156101a45760405163b398979f60e01b815260040160405180910390fd5b565b6060826101bb576101b682610205565b6101fe565b81511580156101d257506001600160a01b0384163b155b156101fb57604051639996b31560e01b81526001600160a01b03851660048201526024016100c4565b50805b9392505050565b8051156102155780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b600052604160045260246000fd5b60005b8381101561025f578181015183820152602001610247565b50506000910152565b6000806040838503121561027b57600080fd5b82516001600160a01b038116811461029257600080fd5b60208401519092506001600160401b03808211156102af57600080fd5b818501915085601f8301126102c357600080fd5b8151818111156102d5576102d561022e565b604051601f8201601f19908116603f011681019083821181831017156102fd576102fd61022e565b8160405282815288602084870101111561031657600080fd5b610327836020830160208801610244565b80955050505050509250929050565b60008251610348818460208701610244565b9190910192915050565b6081806103606000396000f3fe6080604052600a600c565b005b60186014601a565b6051565b565b6000604c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e808015606f573d6000f35b3d6000fdfea164736f6c6343000817000a000000000000000000000000ec09686f9d6c77d8b9c58beebd937e8ea6e29a7d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001249baa3cc90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004d200000000000000000000000000000000000000000000000000000000000000042c7d44e1aba66c321ed2f57e750ca780fda20a282f9713bf16eb1584621d2def22ab7a4213db8a3fe8248a7d690a3bfbfb4f7d01c2c0f2cd96e03dde11f1dfd62827e417e9121e51fec895fabf72602aa63e26c9cef3651846a6b357b75356fb00000000000000000000000000000000000000000000000000000000000d2f02000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e00000000000000000000000000000000000000000000000000000000", - "nonce": "0x21", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x8b5473d6fd295b8be4841fcd4b43af2cf34cfa52ff87e9da98fd53c3ac2f9a37", - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "gas": "0x6ea1", - "value": "0x0", - "input": "0x013fa5fc000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", - "nonce": "0x22", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xbba206b55480253c7d74f0f70a95890687936266a86c8304fe110b30110915b2", - "transactionType": "CALL", - "contractName": "ERC1967Proxy", - "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "gas": "0x6ea0", - "value": "0x0", - "input": "0xf2fde38b0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be", - "nonce": "0x23", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "status": "0x1", - "cumulativeGasUsed": "0x731cec", - "logs": [ - { - "address": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", - "topics": [ - "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" - ], - "data": "0x000000000000000000000000000000000000000000000000ffffffffffffffff", - "blockHash": "0x905841fdb032244931e9779443db986fba23e6bdce3e00f8ee954079a4eea9ce", - "blockNumber": "0x6cf0c56", - "transactionHash": "0x8c2a6dd318813e579c3cc896cc83b1980e803f705ce7bddfe19dbaff03257df1", - "transactionIndex": "0x3", - "logIndex": "0x1", - "removed": false - } - ], - "logsBloom": "0x00000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x0", - "transactionHash": "0x8c2a6dd318813e579c3cc896cc83b1980e803f705ce7bddfe19dbaff03257df1", - "transactionIndex": "0x3", - "blockHash": "0x905841fdb032244931e9779443db986fba23e6bdce3e00f8ee954079a4eea9ce", - "blockNumber": "0x6cf0c56", - "gasUsed": "0x25f624", - "effectiveGasPrice": "0xb6ad230", - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": null, - "contractAddress": "0xec09686f9d6c77d8b9c58beebd937e8ea6e29a7d", - "gasUsedForL1": "0x1659", - "l1BlockNumber": "0x71f615" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x807a7", - "logs": [ - { - "address": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "topics": [ - "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x000000000000000000000000ec09686f9d6c77d8b9c58beebd937e8ea6e29a7d" - ], - "data": "0x", - "blockHash": "0xe94889340aa5d0e3858df8ec81685884a5947874b8ca8813b1a71c47f8df34a2", - "blockNumber": "0x6cf0c59", - "transactionHash": "0xe018d2d6d569096b6d22c6ae6df6672e19090de59548d0e3c9fec7ccee94dad0", - "transactionIndex": "0x3", - "logIndex": "0x2", - "removed": false - }, - { - "address": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e" - ], - "data": "0x", - "blockHash": "0xe94889340aa5d0e3858df8ec81685884a5947874b8ca8813b1a71c47f8df34a2", - "blockNumber": "0x6cf0c59", - "transactionHash": "0xe018d2d6d569096b6d22c6ae6df6672e19090de59548d0e3c9fec7ccee94dad0", - "transactionIndex": "0x3", - "logIndex": "0x3", - "removed": false - }, - { - "address": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "topics": [ - "0xc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2" - ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "blockHash": "0xe94889340aa5d0e3858df8ec81685884a5947874b8ca8813b1a71c47f8df34a2", - "blockNumber": "0x6cf0c59", - "transactionHash": "0xe018d2d6d569096b6d22c6ae6df6672e19090de59548d0e3c9fec7ccee94dad0", - "transactionIndex": "0x3", - "logIndex": "0x4", - "removed": false - } - ], - "logsBloom": "0x00100000000000000100000000000000400000000000000000800000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000001000000000000000000000000000000080000020000000000000000000800000000000000000000000000000000400000000000000000000800000000000000000000000080000000000000020000000000000000000000000000000000000000000000000000000000000000000040000020004000000000000000000000000000000004000000000000000020000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x0", - "transactionHash": "0xe018d2d6d569096b6d22c6ae6df6672e19090de59548d0e3c9fec7ccee94dad0", - "transactionIndex": "0x3", - "blockHash": "0xe94889340aa5d0e3858df8ec81685884a5947874b8ca8813b1a71c47f8df34a2", - "blockNumber": "0x6cf0c59", - "gasUsed": "0x52342", - "effectiveGasPrice": "0xb735db0", - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": null, - "contractAddress": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "gasUsedForL1": "0x391", - "l1BlockNumber": "0x71f615" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x7363d4", - "logs": [ - { - "address": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "topics": [ - "0x8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072" - ], - "data": "0x000000000000000000000000c56fa6505d10bf322e01327e22479de78c3bf1ce", - "blockHash": "0x9de5adedf857b55887c1ba7884c4451c5fde9c547607e3a28d0fbd16d2b6248f", - "blockNumber": "0x6cf0c5c", - "transactionHash": "0x8b5473d6fd295b8be4841fcd4b43af2cf34cfa52ff87e9da98fd53c3ac2f9a37", - "transactionIndex": "0x2", - "logIndex": "0xc8", - "removed": false - } - ], - "logsBloom": "0x00100000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x0", - "transactionHash": "0x8b5473d6fd295b8be4841fcd4b43af2cf34cfa52ff87e9da98fd53c3ac2f9a37", - "transactionIndex": "0x2", - "blockHash": "0x9de5adedf857b55887c1ba7884c4451c5fde9c547607e3a28d0fbd16d2b6248f", - "blockNumber": "0x6cf0c5c", - "gasUsed": "0x89ca", - "effectiveGasPrice": "0xb5e2800", - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "contractAddress": null, - "gasUsedForL1": "0x76", - "l1BlockNumber": "0x71f615" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x83b7", - "logs": [ - { - "address": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x000000000000000000000000b22167f12c232e825d26ffbb3780e024c506664e", - "0x0000000000000000000000001b71dceb82925187a398604f79054e1f5891f9be" - ], - "data": "0x", - "blockHash": "0xcc7c8aef57009589c1570c4cd815b288e73e1052b54a07895d74a7181e83419f", - "blockNumber": "0x6cf0c60", - "transactionHash": "0xbba206b55480253c7d74f0f70a95890687936266a86c8304fe110b30110915b2", - "transactionIndex": "0x1", - "logIndex": "0x0", - "removed": false - } - ], - "logsBloom": "0x00100000000000000100000000000000000000000000000000800000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000800020000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000020000000000", - "type": "0x0", - "transactionHash": "0xbba206b55480253c7d74f0f70a95890687936266a86c8304fe110b30110915b2", - "transactionIndex": "0x1", - "blockHash": "0xcc7c8aef57009589c1570c4cd815b288e73e1052b54a07895d74a7181e83419f", - "blockNumber": "0x6cf0c60", - "gasUsed": "0x83b7", - "effectiveGasPrice": "0xb48f250", - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": "0x17d02a530b251d6728dcdc2d185b08d9ac398ef0", - "contractAddress": null, - "gasUsedForL1": "0x77", - "l1BlockNumber": "0x71f616" - } - ], - "libraries": [ - "contracts/src/libraries/PlonkVerifier.sol:PlonkVerifier:0x085a1Ec0d51f4541d81a442a0Df4c9E9C70D7D1e" - ], - "pending": [], - "returns": { - "proxyAddress": { - "internal_type": "address", - "value": "0x17D02a530b251d6728DCDC2D185B08d9Ac398eF0" - }, - "lightClientState": { - "internal_type": "struct LightClientArbitrum2.LightClientState", - "value": "(0, 0, 1234)" - }, - "implementationAddress": { - "internal_type": "address", - "value": "0xec09686F9D6C77d8b9C58bEEbd937e8EA6e29a7d" - } - }, - "timestamp": 1736603691, - "chain": 421614, - "commit": "9c97b7e0d" -} \ No newline at end of file diff --git a/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544341.json b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544341.json deleted file mode 100644 index 3552e50469..0000000000 --- a/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544341.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "transactions": [ - { - "hash": null, - "transactionType": "CREATE", - "contractName": "PlonkVerifier", - "contractAddress": "0x85fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb", - "function": null, - "arguments": null, - "transaction": { - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "gas": "0x27e2e0", - "value": "0x0", - "input": "0x61231761003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063ce537a771461003a575b600080fd5b61004d610048366004612099565b610061565b604051901515815260200160405180910390f35b600061006c826100d4565b61007d8360005b602002015161020f565b610088836001610073565b610093836002610073565b61009e836003610073565b6100a9836004610073565b6100b4836005610073565b6100bf836006610073565b6100ca848484610276565b90505b9392505050565b80516100df90610475565b6100ec8160200151610475565b6100f98160400151610475565b6101068160600151610475565b6101138160800151610475565b6101208160a00151610475565b61012d8160c00151610475565b61013a8160e00151610475565b610148816101000151610475565b610156816101200151610475565b610164816101400151610475565b610172816101600151610475565b610180816101800151610475565b61018e816101a0015161020f565b61019c816101c0015161020f565b6101aa816101e0015161020f565b6101b881610200015161020f565b6101c681610220015161020f565b6101d481610240015161020f565b6101e281610260015161020f565b6101f081610280015161020f565b6101fe816102a0015161020f565b61020c816102c0015161020f565b50565b6000805160206122eb8339815191528110806102725760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c64000000000060448201526064015b60405180910390fd5b5050565b6000836020015160071461029d576040516320fa9d8960e11b815260040160405180910390fd5b60006102aa858585610524565b905060006102bb8660000151610a90565b905060006102ce828460a0015188610e6e565b90506102ed604051806040016040528060008152602001600081525090565b604080518082019091526000808252602082015261032287610160015161031d8961018001518860e00151610ece565b610f72565b91506000806103338b88878c611019565b915091506103448161031d84611259565b925061035d8361031d8b61016001518a60a00151610ece565b60a08801516040880151602001519194506000805160206122eb833981519152918290820990508160e08a0151820990506103a18561031d8d610180015184610ece565b9450600060405180608001604052807f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b081526020017f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c181526020017f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e5581526020017f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe48152509050610463878261045689611259565b61045e6112f8565b6113c9565b9e9d5050505050505050505050505050565b805160208201516000917f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd479115901516156104af57505050565b82516020840151826003848585860985090883828309148382108484101616935050508161051f5760405162461bcd60e51b815260206004820152601760248201527f426e3235343a20696e76616c696420473120706f696e740000000000000000006044820152606401610269565b505050565b61056c60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006000805160206122eb8339815191529050604051602081016000815260fe60e01b8152865160c01b6004820152602087015160c01b600c82015261028087015160208201526102a08701516040820152600160608201527f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a60808201527f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02560a08201527f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a60c08201527f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e88160e082015260e087015180516101008301526020810151610120830152506101008701518051610140830152602081015161016083015250610120870151805161018083015260208101516101a08301525061014087015180516101c083015260208101516101e083015250610160870151805161020083015260208101516102208301525061018087015180516102408301526020810151610260830152506101e0870151805161028083015260208101516102a08301525061020087015180516102c083015260208101516102e083015250610220870151805161030083015260208101516103208301525061024087015180516103408301526020810151610360830152506101a0870151805161038083015260208101516103a0830152506101c087015180516103c083015260208101516103e0830152506102608701518051610400830152602081015161042083015250604087015180516104408301526020810151610460830152506060870151805161048083015260208101516104a083015250608087015180516104c083015260208101516104e08301525060a0870151805161050083015260208101516105208301525060c08701518051610540830152602081015161056083015250855161058082015260208601516105a082015260408601516105c082015260608601516105e0820152608086015161060082015260a086015161062082015260c086015161064082015284518051610660830152602081015161068083015250602085015180516106a083015260208101516106c083015250604085015180516106e08301526020810151610700830152506060850151805161072083015260208101516107408301525060808501518051610760830152602081015161078083015250600082526107c08220825282825106606085015260208220825282825106608085015260a085015180518252602081015160208301525060608220808352838106855283818209848282099150806020870152508060408601525060c085015180518252602081015160208301525060e085015180516040830152602081015160608301525061010085015180516080830152602081015160a083015250610120850151805160c0830152602081015160e0830152506101408501518051610100830152602081015161012083015250610160822082528282510660a08501526101a085015181526101c085015160208201526101e085015160408201526102008501516060820152610220850151608082015261024085015160a082015261026085015160c082015261028085015160e08201526102a08501516101008201526102c0850151610120820152610160822082528282510660c08501526101608501518051825260208101516020830152506101808501518051604083015260208101516060830152505060a0812082810660e08501525050509392505050565b610a98611d69565b816201000003610bd7576040518060600160405280601081526020017f30641e0e92bebef818268d663bcad6dbcfd6c0149170f6d7d350b1b1fa6c100181526020016040518060e00160405280600181526020017eeeb2cb5981ed45649abebde081dcff16c8601de4347e7dd1628ba2daac43b781526020017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb81526020017f086812a00ac43ea801669c640171203c41a496671bfbc065ac8db24d52cf31e581526020017f2d965651cdd9e4811f4e51b80ddca8a8b4a93ee17420aae6adaa01c2617c6e8581526020017f12597a56c2e438620b9041b98992ae0d4e705b780057bf7766a2767cece16e1d81526020017f02d94117cd17bcf1290fd67c01155dd40807857dff4a5a0b4dc67befa8aa34fd8152508152509050919050565b816210000003610d17576040518060600160405280601481526020017f30644b6c9c4a72169e4daa317d25f04512ae15c53b34e8f5acd8e155d0a6c10181526020016040518060e00160405280600181526020017f26125da10a0ed06327508aba06d1e303ac616632dbed349f53422da95333785781526020017f2260e724844bca5251829353968e4915305258418357473a5c1d597f613f6cbd81526020017f2087ea2cd664278608fb0ebdb820907f598502c81b6690c185e2bf15cb935f4281526020017f19ddbcaf3a8d46c15c0176fbb5b95e4dc57088ff13f4d1bd84c6bfa57dcdc0e081526020017f05a2c85cfc591789605cae818e37dd4161eef9aa666bec6fe4288d09e6d2341881526020017f11f70e5363258ff4f0d716a653e1dc41f1c64484d7f4b6e219d6377614a3905c8152508152509050919050565b81602003610e55576040518060600160405280600581526020017f2ee12bff4a2813286a8dc388cd754d9a3ef2490635eba50cb9c2e5e75080000181526020016040518060e00160405280600181526020017f09c532c6306b93d29678200d47c0b2a99c18d51b838eeb1d3eed4c533bb512d081526020017f21082ca216cbbf4e1c6e4f4594dd508c996dfbe1174efb98b11509c6e306460b81526020017f1277ae6415f0ef18f2ba5fb162c39eb7311f386e2d26d64401f4a25da77c253b81526020017f2b337de1c8c14f22ec9b9e2f96afef3652627366f8170a0a948dad4ac1bd5e8081526020017f2fbd4dd2976be55d1a163aa9820fb88dfac5ddce77e1872e90632027327a5ebe81526020017f107aab49e65a67f9da9cd2abf78be38bd9dc1d5db39f81de36bcfa5b4b0390438152508152509050919050565b60405163e2ef09e560e01b815260040160405180910390fd5b610e9260405180606001604052806000815260200160008152602001600081525090565b610e9c84846114ad565b808252610eac9085908590611501565b60208201528051610ec290859084908690611575565b60408201529392505050565b6040805180820190915260008082526020820152610eea611d8f565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa90508080610f1c57600080fd5b5080610f6a5760405162461bcd60e51b815260206004820152601960248201527f426e3235343a207363616c6172206d756c206661696c656421000000000000006044820152606401610269565b505092915050565b6040805180820190915260008082526020820152610f8e611dad565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa90508080610fcb57600080fd5b5080610f6a5760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a2067726f7570206164646974696f6e206661696c6564210000006044820152606401610269565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600061104f878787876116cb565b90506000805160206122eb833981519152600061106d888789611b9b565b90506110798183612291565b60c08901516101a0880151919250908190849081908309840892506110a68561031d8a6000015184610ece565b955083828209905083846101c08a01518309840892506110ce8661031d8a6020015184610ece565b955083828209905083846101e08a01518309840892506110f68661031d8a6040015184610ece565b955083828209905083846102008a015183098408925061111e8661031d8a6060015184610ece565b955083828209905083846102208a01518309840892506111468661031d8a6080015184610ece565b955083828209905083846102408a015183098408925061116e8661031d8d6040015184610ece565b955083828209905083846102608a01518309840892506111968661031d8d6060015184610ece565b955083828209905083846102808a01518309840892506111be8661031d8d6080015184610ece565b955083828209905083846102a08a01518309840892506111e68661031d8d60a0015184610ece565b955060008a60e00151905084856102c08b01518309850893506112118761031d8b60a0015184610ece565b9650611248611242604080518082018252600080825260209182015281518083019092526001825260029082015290565b85610ece565b975050505050505094509492505050565b6040805180820190915260008082526020820152815160208301511590151615611281575090565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516112c691906122c8565b6112f0907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47612291565b905292915050565b6113236040518060800160405280600081526020016000815260200160008152602001600081525090565b60405180608001604052807f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed81526020017f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c281526020017f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa81526020017f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b815250905090565b60008060006040518751815260208801516020820152602087015160408201528651606082015260608701516080820152604087015160a0820152855160c0820152602086015160e08201526020850151610100820152845161012082015260608501516101408201526040850151610160820152602060006101808360085afa91505060005191508061149f5760405162461bcd60e51b815260206004820152601c60248201527f426e3235343a2050616972696e6720636865636b206661696c656421000000006044820152606401610269565b50151590505b949350505050565b81516000906000805160206122eb833981519152908380156114f15784935060005b828110156114e5578385860994506001016114cf565b506001840393506114f8565b6001830393505b50505092915050565b600082600103611513575060016100cd565b81600003611523575060006100cd565b60208401516000805160206122eb833981519152906000908281860990508580156115535760018703925061155a565b6001840392505b5061156482611c8b565b915082828209979650505050505050565b60006000805160206122eb8339815191528282036115f257600160005b60078110156115e6578186036115c3578681600781106115b4576115b461227b565b602002015193505050506114a5565b82806115d1576115d16122b2565b60408901516020015183099150600101611592565b506000925050506114a5565b6115fa611dcb565b6040870151600160c0838101828152920190805b600781101561163b5760208403935085868a85518903088309808552601f1990930192915060010161160e565b50505050600080600090506001838960408c015160005b6007811015611692578882518a85518c88518a0909098981880896505088898d84518c030886099450602093840193928301929190910190600101611652565b505050508092505060006116a583611c8b565b905060208a015185818909965050848187099550848287099a9950505050505050505050565b604080518082019091526000808252602082015260008060008060006000805160206122eb833981519152905060808901518160208a015160208c0151099550895194508160a08b015160608c0151099350816101a089015185089250818184089250818584099450817f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a85099250816101c089015184089250818184089250818584099450817f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02585099250816101e089015184089250818184089250818584099450817f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a850992508161020089015184089250818184089250818584099450817f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e8818509925081610220890151840892508181840892505080848309935080848608945061183d8760a0015186610ece565b9550885160608a015160808b0151838284099750836102c08b015189099750836102408b015183099550836101a08b015187089550838187089550838689099750836102608b015183099550836101c08b015187089550838187089550838689099750836102808b015183099550836101e08b015187089550838187089550838689099750836102a08b015183099550836102008b0151870895508381870895505050508083860994506119048661031d8c60c0015188856118ff9190612291565b610ece565b955061191d8661031d8c60e001518a6101a00151610ece565b95506119378661031d8c61010001518a6101c00151610ece565b95506119518661031d8c61012001518a6101e00151610ece565b955061196b8661031d8c61014001518a6102000151610ece565b9550806101c08801516101a08901510992506119908661031d8c610160015186610ece565b9550806102008801516101e08901510992506119b58661031d8c610180015186610ece565b95506101a087015192508083840991508082830991508082840992506119e48661031d8c6101e0015186610ece565b95506101c08701519250808384099150808283099150808284099250611a138661031d8c610200015186610ece565b95506101e08701519250808384099150808283099150808284099250611a428661031d8c610220015186610ece565b95506102008701519250808384099150808283099150808284099250611a718661031d8c610240015186610ece565b9550611a8e8661031d8c6101a001516118ff8b6102200151611d31565b9550611a9f868b6101c00151610f72565b9550806101c08801516101a0890151099250806101e08801518409925080610200880151840992508061022088015184099250611ae58661031d8c610260015186610ece565b9550611af48860000151611d31565b9450611b088661031d8960c0015188610ece565b955080600189510860a08a0151909350819080099150808284099250808386099450611b3c8661031d8960e0015188610ece565b9550808386099450611b578661031d89610100015188610ece565b9550808386099450611b728661031d89610120015188610ece565b9550808386099450611b8d8661031d89610140015188610ece565b9a9950505050505050505050565b6000806000805160206122eb8339815191529050600083602001519050600084604001519050600060019050606088015160808901516101a08901516102408a01518788898387098a868608088609945050506101c08901516102608a01518788898387098a868608088609945050506101e08901516102808a01518788898387098a868608088609945050506102008901516102a08a01518788898387098a8686080886099450505061022089015191506102c0890151868782898587080985099350505050875160208901518586868309870385089650508485838309860387089998505050505050505050565b60008060006000805160206122eb833981519152905060405160208152602080820152602060408201528460608201526002820360808201528160a08201526020600060c08360055afa925050600051925081611d2a5760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a20706f7720707265636f6d70696c65206661696c6564210000006044820152606401610269565b5050919050565b6000611d4b6000805160206122eb833981519152836122c8565b611d63906000805160206122eb833981519152612291565b92915050565b60405180606001604052806000815260200160008152602001611d8a611dcb565b905290565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b6040516102e0810167ffffffffffffffff81118282101715611e2357611e23611de9565b60405290565b6040516102c0810167ffffffffffffffff81118282101715611e2357611e23611de9565b600060408284031215611e5f57600080fd5b6040516040810181811067ffffffffffffffff82111715611e8257611e82611de9565b604052823581526020928301359281019290925250919050565b600082601f830112611ead57600080fd5b60405160e0810181811067ffffffffffffffff82111715611ed057611ed0611de9565b6040528060e0840185811115611ee557600080fd5b845b81811015611eff578035835260209283019201611ee7565b509195945050505050565b60006104808284031215611f1d57600080fd5b611f25611dff565b9050611f318383611e4d565b8152611f408360408401611e4d565b6020820152611f528360808401611e4d565b6040820152611f648360c08401611e4d565b6060820152610100611f7884828501611e4d565b6080830152610140611f8c85828601611e4d565b60a0840152610180611fa086828701611e4d565b60c08501526101c0611fb487828801611e4d565b60e0860152610200611fc888828901611e4d565b858701526102409450611fdd88868901611e4d565b610120870152610280611ff289828a01611e4d565b858801526102c0945061200789868a01611e4d565b61016088015261201b896103008a01611e4d565b848801526103408801356101a0880152610360880135838801526103808801356101e08801526103a0880135828801526103c08801356102208801526103e08801358688015261040088013561026088015261042088013581880152505050506104408401356102a084015261046084013581840152505092915050565b6000806000838503610a608112156120b057600080fd5b610500808212156120c057600080fd5b6120c8611e29565b915085358252602086013560208301526120e58760408801611e4d565b60408301526120f78760808801611e4d565b60608301526121098760c08801611e4d565b608083015261010061211d88828901611e4d565b60a084015261014061213189828a01611e4d565b60c08501526101806121458a828b01611e4d565b60e08601526101c06121598b828c01611e4d565b84870152610200935061216e8b858c01611e4d565b6101208701526102406121838c828d01611e4d565b8488015261028093506121988c858d01611e4d565b6101608801526121ac8c6102c08d01611e4d565b838801526121be8c6103008d01611e4d565b6101a08801526121d28c6103408d01611e4d565b828801526121e48c6103808d01611e4d565b6101e08801526121f88c6103c08d01611e4d565b8588015261220a8c6104008d01611e4d565b61022088015261221e8c6104408d01611e4d565b81880152505050612233896104808a01611e4d565b6102608501526104c08801358185015250506104e08601356102a083015281945061226087828801611e9c565b93505050612272856105e08601611f0a565b90509250925092565b634e487b7160e01b600052603260045260246000fd5b81810381811115611d6357634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6000826122e557634e487b7160e01b600052601260045260246000fd5b50069056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a164736f6c6343000817000a", - "nonce": "0x791", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [], - "libraries": [], - "pending": [], - "returns": { - "contractAddress": { - "internal_type": "address", - "value": "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB" - } - }, - "timestamp": 1736544341, - "chain": 421614, - "commit": "9c97b7e0d" -} \ No newline at end of file diff --git a/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544438.json b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544438.json deleted file mode 100644 index da21e524c8..0000000000 --- a/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544438.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "transactions": [ - { - "hash": null, - "transactionType": "CREATE", - "contractName": "PlonkVerifier", - "contractAddress": "0x85fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb", - "function": null, - "arguments": null, - "transaction": { - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "gas": "0x27e2e0", - "value": "0x0", - "input": "0x61231761003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063ce537a771461003a575b600080fd5b61004d610048366004612099565b610061565b604051901515815260200160405180910390f35b600061006c826100d4565b61007d8360005b602002015161020f565b610088836001610073565b610093836002610073565b61009e836003610073565b6100a9836004610073565b6100b4836005610073565b6100bf836006610073565b6100ca848484610276565b90505b9392505050565b80516100df90610475565b6100ec8160200151610475565b6100f98160400151610475565b6101068160600151610475565b6101138160800151610475565b6101208160a00151610475565b61012d8160c00151610475565b61013a8160e00151610475565b610148816101000151610475565b610156816101200151610475565b610164816101400151610475565b610172816101600151610475565b610180816101800151610475565b61018e816101a0015161020f565b61019c816101c0015161020f565b6101aa816101e0015161020f565b6101b881610200015161020f565b6101c681610220015161020f565b6101d481610240015161020f565b6101e281610260015161020f565b6101f081610280015161020f565b6101fe816102a0015161020f565b61020c816102c0015161020f565b50565b6000805160206122eb8339815191528110806102725760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c64000000000060448201526064015b60405180910390fd5b5050565b6000836020015160071461029d576040516320fa9d8960e11b815260040160405180910390fd5b60006102aa858585610524565b905060006102bb8660000151610a90565b905060006102ce828460a0015188610e6e565b90506102ed604051806040016040528060008152602001600081525090565b604080518082019091526000808252602082015261032287610160015161031d8961018001518860e00151610ece565b610f72565b91506000806103338b88878c611019565b915091506103448161031d84611259565b925061035d8361031d8b61016001518a60a00151610ece565b60a08801516040880151602001519194506000805160206122eb833981519152918290820990508160e08a0151820990506103a18561031d8d610180015184610ece565b9450600060405180608001604052807f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b081526020017f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c181526020017f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e5581526020017f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe48152509050610463878261045689611259565b61045e6112f8565b6113c9565b9e9d5050505050505050505050505050565b805160208201516000917f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd479115901516156104af57505050565b82516020840151826003848585860985090883828309148382108484101616935050508161051f5760405162461bcd60e51b815260206004820152601760248201527f426e3235343a20696e76616c696420473120706f696e740000000000000000006044820152606401610269565b505050565b61056c60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006000805160206122eb8339815191529050604051602081016000815260fe60e01b8152865160c01b6004820152602087015160c01b600c82015261028087015160208201526102a08701516040820152600160608201527f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a60808201527f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02560a08201527f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a60c08201527f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e88160e082015260e087015180516101008301526020810151610120830152506101008701518051610140830152602081015161016083015250610120870151805161018083015260208101516101a08301525061014087015180516101c083015260208101516101e083015250610160870151805161020083015260208101516102208301525061018087015180516102408301526020810151610260830152506101e0870151805161028083015260208101516102a08301525061020087015180516102c083015260208101516102e083015250610220870151805161030083015260208101516103208301525061024087015180516103408301526020810151610360830152506101a0870151805161038083015260208101516103a0830152506101c087015180516103c083015260208101516103e0830152506102608701518051610400830152602081015161042083015250604087015180516104408301526020810151610460830152506060870151805161048083015260208101516104a083015250608087015180516104c083015260208101516104e08301525060a0870151805161050083015260208101516105208301525060c08701518051610540830152602081015161056083015250855161058082015260208601516105a082015260408601516105c082015260608601516105e0820152608086015161060082015260a086015161062082015260c086015161064082015284518051610660830152602081015161068083015250602085015180516106a083015260208101516106c083015250604085015180516106e08301526020810151610700830152506060850151805161072083015260208101516107408301525060808501518051610760830152602081015161078083015250600082526107c08220825282825106606085015260208220825282825106608085015260a085015180518252602081015160208301525060608220808352838106855283818209848282099150806020870152508060408601525060c085015180518252602081015160208301525060e085015180516040830152602081015160608301525061010085015180516080830152602081015160a083015250610120850151805160c0830152602081015160e0830152506101408501518051610100830152602081015161012083015250610160822082528282510660a08501526101a085015181526101c085015160208201526101e085015160408201526102008501516060820152610220850151608082015261024085015160a082015261026085015160c082015261028085015160e08201526102a08501516101008201526102c0850151610120820152610160822082528282510660c08501526101608501518051825260208101516020830152506101808501518051604083015260208101516060830152505060a0812082810660e08501525050509392505050565b610a98611d69565b816201000003610bd7576040518060600160405280601081526020017f30641e0e92bebef818268d663bcad6dbcfd6c0149170f6d7d350b1b1fa6c100181526020016040518060e00160405280600181526020017eeeb2cb5981ed45649abebde081dcff16c8601de4347e7dd1628ba2daac43b781526020017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb81526020017f086812a00ac43ea801669c640171203c41a496671bfbc065ac8db24d52cf31e581526020017f2d965651cdd9e4811f4e51b80ddca8a8b4a93ee17420aae6adaa01c2617c6e8581526020017f12597a56c2e438620b9041b98992ae0d4e705b780057bf7766a2767cece16e1d81526020017f02d94117cd17bcf1290fd67c01155dd40807857dff4a5a0b4dc67befa8aa34fd8152508152509050919050565b816210000003610d17576040518060600160405280601481526020017f30644b6c9c4a72169e4daa317d25f04512ae15c53b34e8f5acd8e155d0a6c10181526020016040518060e00160405280600181526020017f26125da10a0ed06327508aba06d1e303ac616632dbed349f53422da95333785781526020017f2260e724844bca5251829353968e4915305258418357473a5c1d597f613f6cbd81526020017f2087ea2cd664278608fb0ebdb820907f598502c81b6690c185e2bf15cb935f4281526020017f19ddbcaf3a8d46c15c0176fbb5b95e4dc57088ff13f4d1bd84c6bfa57dcdc0e081526020017f05a2c85cfc591789605cae818e37dd4161eef9aa666bec6fe4288d09e6d2341881526020017f11f70e5363258ff4f0d716a653e1dc41f1c64484d7f4b6e219d6377614a3905c8152508152509050919050565b81602003610e55576040518060600160405280600581526020017f2ee12bff4a2813286a8dc388cd754d9a3ef2490635eba50cb9c2e5e75080000181526020016040518060e00160405280600181526020017f09c532c6306b93d29678200d47c0b2a99c18d51b838eeb1d3eed4c533bb512d081526020017f21082ca216cbbf4e1c6e4f4594dd508c996dfbe1174efb98b11509c6e306460b81526020017f1277ae6415f0ef18f2ba5fb162c39eb7311f386e2d26d64401f4a25da77c253b81526020017f2b337de1c8c14f22ec9b9e2f96afef3652627366f8170a0a948dad4ac1bd5e8081526020017f2fbd4dd2976be55d1a163aa9820fb88dfac5ddce77e1872e90632027327a5ebe81526020017f107aab49e65a67f9da9cd2abf78be38bd9dc1d5db39f81de36bcfa5b4b0390438152508152509050919050565b60405163e2ef09e560e01b815260040160405180910390fd5b610e9260405180606001604052806000815260200160008152602001600081525090565b610e9c84846114ad565b808252610eac9085908590611501565b60208201528051610ec290859084908690611575565b60408201529392505050565b6040805180820190915260008082526020820152610eea611d8f565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa90508080610f1c57600080fd5b5080610f6a5760405162461bcd60e51b815260206004820152601960248201527f426e3235343a207363616c6172206d756c206661696c656421000000000000006044820152606401610269565b505092915050565b6040805180820190915260008082526020820152610f8e611dad565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa90508080610fcb57600080fd5b5080610f6a5760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a2067726f7570206164646974696f6e206661696c6564210000006044820152606401610269565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600061104f878787876116cb565b90506000805160206122eb833981519152600061106d888789611b9b565b90506110798183612291565b60c08901516101a0880151919250908190849081908309840892506110a68561031d8a6000015184610ece565b955083828209905083846101c08a01518309840892506110ce8661031d8a6020015184610ece565b955083828209905083846101e08a01518309840892506110f68661031d8a6040015184610ece565b955083828209905083846102008a015183098408925061111e8661031d8a6060015184610ece565b955083828209905083846102208a01518309840892506111468661031d8a6080015184610ece565b955083828209905083846102408a015183098408925061116e8661031d8d6040015184610ece565b955083828209905083846102608a01518309840892506111968661031d8d6060015184610ece565b955083828209905083846102808a01518309840892506111be8661031d8d6080015184610ece565b955083828209905083846102a08a01518309840892506111e68661031d8d60a0015184610ece565b955060008a60e00151905084856102c08b01518309850893506112118761031d8b60a0015184610ece565b9650611248611242604080518082018252600080825260209182015281518083019092526001825260029082015290565b85610ece565b975050505050505094509492505050565b6040805180820190915260008082526020820152815160208301511590151615611281575090565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516112c691906122c8565b6112f0907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47612291565b905292915050565b6113236040518060800160405280600081526020016000815260200160008152602001600081525090565b60405180608001604052807f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed81526020017f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c281526020017f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa81526020017f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b815250905090565b60008060006040518751815260208801516020820152602087015160408201528651606082015260608701516080820152604087015160a0820152855160c0820152602086015160e08201526020850151610100820152845161012082015260608501516101408201526040850151610160820152602060006101808360085afa91505060005191508061149f5760405162461bcd60e51b815260206004820152601c60248201527f426e3235343a2050616972696e6720636865636b206661696c656421000000006044820152606401610269565b50151590505b949350505050565b81516000906000805160206122eb833981519152908380156114f15784935060005b828110156114e5578385860994506001016114cf565b506001840393506114f8565b6001830393505b50505092915050565b600082600103611513575060016100cd565b81600003611523575060006100cd565b60208401516000805160206122eb833981519152906000908281860990508580156115535760018703925061155a565b6001840392505b5061156482611c8b565b915082828209979650505050505050565b60006000805160206122eb8339815191528282036115f257600160005b60078110156115e6578186036115c3578681600781106115b4576115b461227b565b602002015193505050506114a5565b82806115d1576115d16122b2565b60408901516020015183099150600101611592565b506000925050506114a5565b6115fa611dcb565b6040870151600160c0838101828152920190805b600781101561163b5760208403935085868a85518903088309808552601f1990930192915060010161160e565b50505050600080600090506001838960408c015160005b6007811015611692578882518a85518c88518a0909098981880896505088898d84518c030886099450602093840193928301929190910190600101611652565b505050508092505060006116a583611c8b565b905060208a015185818909965050848187099550848287099a9950505050505050505050565b604080518082019091526000808252602082015260008060008060006000805160206122eb833981519152905060808901518160208a015160208c0151099550895194508160a08b015160608c0151099350816101a089015185089250818184089250818584099450817f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a85099250816101c089015184089250818184089250818584099450817f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02585099250816101e089015184089250818184089250818584099450817f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a850992508161020089015184089250818184089250818584099450817f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e8818509925081610220890151840892508181840892505080848309935080848608945061183d8760a0015186610ece565b9550885160608a015160808b0151838284099750836102c08b015189099750836102408b015183099550836101a08b015187089550838187089550838689099750836102608b015183099550836101c08b015187089550838187089550838689099750836102808b015183099550836101e08b015187089550838187089550838689099750836102a08b015183099550836102008b0151870895508381870895505050508083860994506119048661031d8c60c0015188856118ff9190612291565b610ece565b955061191d8661031d8c60e001518a6101a00151610ece565b95506119378661031d8c61010001518a6101c00151610ece565b95506119518661031d8c61012001518a6101e00151610ece565b955061196b8661031d8c61014001518a6102000151610ece565b9550806101c08801516101a08901510992506119908661031d8c610160015186610ece565b9550806102008801516101e08901510992506119b58661031d8c610180015186610ece565b95506101a087015192508083840991508082830991508082840992506119e48661031d8c6101e0015186610ece565b95506101c08701519250808384099150808283099150808284099250611a138661031d8c610200015186610ece565b95506101e08701519250808384099150808283099150808284099250611a428661031d8c610220015186610ece565b95506102008701519250808384099150808283099150808284099250611a718661031d8c610240015186610ece565b9550611a8e8661031d8c6101a001516118ff8b6102200151611d31565b9550611a9f868b6101c00151610f72565b9550806101c08801516101a0890151099250806101e08801518409925080610200880151840992508061022088015184099250611ae58661031d8c610260015186610ece565b9550611af48860000151611d31565b9450611b088661031d8960c0015188610ece565b955080600189510860a08a0151909350819080099150808284099250808386099450611b3c8661031d8960e0015188610ece565b9550808386099450611b578661031d89610100015188610ece565b9550808386099450611b728661031d89610120015188610ece565b9550808386099450611b8d8661031d89610140015188610ece565b9a9950505050505050505050565b6000806000805160206122eb8339815191529050600083602001519050600084604001519050600060019050606088015160808901516101a08901516102408a01518788898387098a868608088609945050506101c08901516102608a01518788898387098a868608088609945050506101e08901516102808a01518788898387098a868608088609945050506102008901516102a08a01518788898387098a8686080886099450505061022089015191506102c0890151868782898587080985099350505050875160208901518586868309870385089650508485838309860387089998505050505050505050565b60008060006000805160206122eb833981519152905060405160208152602080820152602060408201528460608201526002820360808201528160a08201526020600060c08360055afa925050600051925081611d2a5760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a20706f7720707265636f6d70696c65206661696c6564210000006044820152606401610269565b5050919050565b6000611d4b6000805160206122eb833981519152836122c8565b611d63906000805160206122eb833981519152612291565b92915050565b60405180606001604052806000815260200160008152602001611d8a611dcb565b905290565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b6040516102e0810167ffffffffffffffff81118282101715611e2357611e23611de9565b60405290565b6040516102c0810167ffffffffffffffff81118282101715611e2357611e23611de9565b600060408284031215611e5f57600080fd5b6040516040810181811067ffffffffffffffff82111715611e8257611e82611de9565b604052823581526020928301359281019290925250919050565b600082601f830112611ead57600080fd5b60405160e0810181811067ffffffffffffffff82111715611ed057611ed0611de9565b6040528060e0840185811115611ee557600080fd5b845b81811015611eff578035835260209283019201611ee7565b509195945050505050565b60006104808284031215611f1d57600080fd5b611f25611dff565b9050611f318383611e4d565b8152611f408360408401611e4d565b6020820152611f528360808401611e4d565b6040820152611f648360c08401611e4d565b6060820152610100611f7884828501611e4d565b6080830152610140611f8c85828601611e4d565b60a0840152610180611fa086828701611e4d565b60c08501526101c0611fb487828801611e4d565b60e0860152610200611fc888828901611e4d565b858701526102409450611fdd88868901611e4d565b610120870152610280611ff289828a01611e4d565b858801526102c0945061200789868a01611e4d565b61016088015261201b896103008a01611e4d565b848801526103408801356101a0880152610360880135838801526103808801356101e08801526103a0880135828801526103c08801356102208801526103e08801358688015261040088013561026088015261042088013581880152505050506104408401356102a084015261046084013581840152505092915050565b6000806000838503610a608112156120b057600080fd5b610500808212156120c057600080fd5b6120c8611e29565b915085358252602086013560208301526120e58760408801611e4d565b60408301526120f78760808801611e4d565b60608301526121098760c08801611e4d565b608083015261010061211d88828901611e4d565b60a084015261014061213189828a01611e4d565b60c08501526101806121458a828b01611e4d565b60e08601526101c06121598b828c01611e4d565b84870152610200935061216e8b858c01611e4d565b6101208701526102406121838c828d01611e4d565b8488015261028093506121988c858d01611e4d565b6101608801526121ac8c6102c08d01611e4d565b838801526121be8c6103008d01611e4d565b6101a08801526121d28c6103408d01611e4d565b828801526121e48c6103808d01611e4d565b6101e08801526121f88c6103c08d01611e4d565b8588015261220a8c6104008d01611e4d565b61022088015261221e8c6104408d01611e4d565b81880152505050612233896104808a01611e4d565b6102608501526104c08801358185015250506104e08601356102a083015281945061226087828801611e9c565b93505050612272856105e08601611f0a565b90509250925092565b634e487b7160e01b600052603260045260246000fd5b81810381811115611d6357634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6000826122e557634e487b7160e01b600052601260045260246000fd5b50069056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a164736f6c6343000817000a", - "nonce": "0x791", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [], - "libraries": [], - "pending": [], - "returns": { - "contractAddress": { - "internal_type": "address", - "value": "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB" - } - }, - "timestamp": 1736544438, - "chain": 421614, - "commit": "9c97b7e0d" -} \ No newline at end of file diff --git a/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544485.json b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544485.json deleted file mode 100644 index 942f7c7df4..0000000000 --- a/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544485.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "transactions": [ - { - "hash": null, - "transactionType": "CREATE", - "contractName": "PlonkVerifier", - "contractAddress": "0x85fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb", - "function": null, - "arguments": null, - "transaction": { - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "gas": "0x27e2e0", - "value": "0x0", - "input": "0x61231761003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063ce537a771461003a575b600080fd5b61004d610048366004612099565b610061565b604051901515815260200160405180910390f35b600061006c826100d4565b61007d8360005b602002015161020f565b610088836001610073565b610093836002610073565b61009e836003610073565b6100a9836004610073565b6100b4836005610073565b6100bf836006610073565b6100ca848484610276565b90505b9392505050565b80516100df90610475565b6100ec8160200151610475565b6100f98160400151610475565b6101068160600151610475565b6101138160800151610475565b6101208160a00151610475565b61012d8160c00151610475565b61013a8160e00151610475565b610148816101000151610475565b610156816101200151610475565b610164816101400151610475565b610172816101600151610475565b610180816101800151610475565b61018e816101a0015161020f565b61019c816101c0015161020f565b6101aa816101e0015161020f565b6101b881610200015161020f565b6101c681610220015161020f565b6101d481610240015161020f565b6101e281610260015161020f565b6101f081610280015161020f565b6101fe816102a0015161020f565b61020c816102c0015161020f565b50565b6000805160206122eb8339815191528110806102725760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c64000000000060448201526064015b60405180910390fd5b5050565b6000836020015160071461029d576040516320fa9d8960e11b815260040160405180910390fd5b60006102aa858585610524565b905060006102bb8660000151610a90565b905060006102ce828460a0015188610e6e565b90506102ed604051806040016040528060008152602001600081525090565b604080518082019091526000808252602082015261032287610160015161031d8961018001518860e00151610ece565b610f72565b91506000806103338b88878c611019565b915091506103448161031d84611259565b925061035d8361031d8b61016001518a60a00151610ece565b60a08801516040880151602001519194506000805160206122eb833981519152918290820990508160e08a0151820990506103a18561031d8d610180015184610ece565b9450600060405180608001604052807f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b081526020017f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c181526020017f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e5581526020017f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe48152509050610463878261045689611259565b61045e6112f8565b6113c9565b9e9d5050505050505050505050505050565b805160208201516000917f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd479115901516156104af57505050565b82516020840151826003848585860985090883828309148382108484101616935050508161051f5760405162461bcd60e51b815260206004820152601760248201527f426e3235343a20696e76616c696420473120706f696e740000000000000000006044820152606401610269565b505050565b61056c60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006000805160206122eb8339815191529050604051602081016000815260fe60e01b8152865160c01b6004820152602087015160c01b600c82015261028087015160208201526102a08701516040820152600160608201527f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a60808201527f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02560a08201527f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a60c08201527f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e88160e082015260e087015180516101008301526020810151610120830152506101008701518051610140830152602081015161016083015250610120870151805161018083015260208101516101a08301525061014087015180516101c083015260208101516101e083015250610160870151805161020083015260208101516102208301525061018087015180516102408301526020810151610260830152506101e0870151805161028083015260208101516102a08301525061020087015180516102c083015260208101516102e083015250610220870151805161030083015260208101516103208301525061024087015180516103408301526020810151610360830152506101a0870151805161038083015260208101516103a0830152506101c087015180516103c083015260208101516103e0830152506102608701518051610400830152602081015161042083015250604087015180516104408301526020810151610460830152506060870151805161048083015260208101516104a083015250608087015180516104c083015260208101516104e08301525060a0870151805161050083015260208101516105208301525060c08701518051610540830152602081015161056083015250855161058082015260208601516105a082015260408601516105c082015260608601516105e0820152608086015161060082015260a086015161062082015260c086015161064082015284518051610660830152602081015161068083015250602085015180516106a083015260208101516106c083015250604085015180516106e08301526020810151610700830152506060850151805161072083015260208101516107408301525060808501518051610760830152602081015161078083015250600082526107c08220825282825106606085015260208220825282825106608085015260a085015180518252602081015160208301525060608220808352838106855283818209848282099150806020870152508060408601525060c085015180518252602081015160208301525060e085015180516040830152602081015160608301525061010085015180516080830152602081015160a083015250610120850151805160c0830152602081015160e0830152506101408501518051610100830152602081015161012083015250610160822082528282510660a08501526101a085015181526101c085015160208201526101e085015160408201526102008501516060820152610220850151608082015261024085015160a082015261026085015160c082015261028085015160e08201526102a08501516101008201526102c0850151610120820152610160822082528282510660c08501526101608501518051825260208101516020830152506101808501518051604083015260208101516060830152505060a0812082810660e08501525050509392505050565b610a98611d69565b816201000003610bd7576040518060600160405280601081526020017f30641e0e92bebef818268d663bcad6dbcfd6c0149170f6d7d350b1b1fa6c100181526020016040518060e00160405280600181526020017eeeb2cb5981ed45649abebde081dcff16c8601de4347e7dd1628ba2daac43b781526020017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb81526020017f086812a00ac43ea801669c640171203c41a496671bfbc065ac8db24d52cf31e581526020017f2d965651cdd9e4811f4e51b80ddca8a8b4a93ee17420aae6adaa01c2617c6e8581526020017f12597a56c2e438620b9041b98992ae0d4e705b780057bf7766a2767cece16e1d81526020017f02d94117cd17bcf1290fd67c01155dd40807857dff4a5a0b4dc67befa8aa34fd8152508152509050919050565b816210000003610d17576040518060600160405280601481526020017f30644b6c9c4a72169e4daa317d25f04512ae15c53b34e8f5acd8e155d0a6c10181526020016040518060e00160405280600181526020017f26125da10a0ed06327508aba06d1e303ac616632dbed349f53422da95333785781526020017f2260e724844bca5251829353968e4915305258418357473a5c1d597f613f6cbd81526020017f2087ea2cd664278608fb0ebdb820907f598502c81b6690c185e2bf15cb935f4281526020017f19ddbcaf3a8d46c15c0176fbb5b95e4dc57088ff13f4d1bd84c6bfa57dcdc0e081526020017f05a2c85cfc591789605cae818e37dd4161eef9aa666bec6fe4288d09e6d2341881526020017f11f70e5363258ff4f0d716a653e1dc41f1c64484d7f4b6e219d6377614a3905c8152508152509050919050565b81602003610e55576040518060600160405280600581526020017f2ee12bff4a2813286a8dc388cd754d9a3ef2490635eba50cb9c2e5e75080000181526020016040518060e00160405280600181526020017f09c532c6306b93d29678200d47c0b2a99c18d51b838eeb1d3eed4c533bb512d081526020017f21082ca216cbbf4e1c6e4f4594dd508c996dfbe1174efb98b11509c6e306460b81526020017f1277ae6415f0ef18f2ba5fb162c39eb7311f386e2d26d64401f4a25da77c253b81526020017f2b337de1c8c14f22ec9b9e2f96afef3652627366f8170a0a948dad4ac1bd5e8081526020017f2fbd4dd2976be55d1a163aa9820fb88dfac5ddce77e1872e90632027327a5ebe81526020017f107aab49e65a67f9da9cd2abf78be38bd9dc1d5db39f81de36bcfa5b4b0390438152508152509050919050565b60405163e2ef09e560e01b815260040160405180910390fd5b610e9260405180606001604052806000815260200160008152602001600081525090565b610e9c84846114ad565b808252610eac9085908590611501565b60208201528051610ec290859084908690611575565b60408201529392505050565b6040805180820190915260008082526020820152610eea611d8f565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa90508080610f1c57600080fd5b5080610f6a5760405162461bcd60e51b815260206004820152601960248201527f426e3235343a207363616c6172206d756c206661696c656421000000000000006044820152606401610269565b505092915050565b6040805180820190915260008082526020820152610f8e611dad565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa90508080610fcb57600080fd5b5080610f6a5760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a2067726f7570206164646974696f6e206661696c6564210000006044820152606401610269565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600061104f878787876116cb565b90506000805160206122eb833981519152600061106d888789611b9b565b90506110798183612291565b60c08901516101a0880151919250908190849081908309840892506110a68561031d8a6000015184610ece565b955083828209905083846101c08a01518309840892506110ce8661031d8a6020015184610ece565b955083828209905083846101e08a01518309840892506110f68661031d8a6040015184610ece565b955083828209905083846102008a015183098408925061111e8661031d8a6060015184610ece565b955083828209905083846102208a01518309840892506111468661031d8a6080015184610ece565b955083828209905083846102408a015183098408925061116e8661031d8d6040015184610ece565b955083828209905083846102608a01518309840892506111968661031d8d6060015184610ece565b955083828209905083846102808a01518309840892506111be8661031d8d6080015184610ece565b955083828209905083846102a08a01518309840892506111e68661031d8d60a0015184610ece565b955060008a60e00151905084856102c08b01518309850893506112118761031d8b60a0015184610ece565b9650611248611242604080518082018252600080825260209182015281518083019092526001825260029082015290565b85610ece565b975050505050505094509492505050565b6040805180820190915260008082526020820152815160208301511590151615611281575090565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516112c691906122c8565b6112f0907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47612291565b905292915050565b6113236040518060800160405280600081526020016000815260200160008152602001600081525090565b60405180608001604052807f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed81526020017f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c281526020017f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa81526020017f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b815250905090565b60008060006040518751815260208801516020820152602087015160408201528651606082015260608701516080820152604087015160a0820152855160c0820152602086015160e08201526020850151610100820152845161012082015260608501516101408201526040850151610160820152602060006101808360085afa91505060005191508061149f5760405162461bcd60e51b815260206004820152601c60248201527f426e3235343a2050616972696e6720636865636b206661696c656421000000006044820152606401610269565b50151590505b949350505050565b81516000906000805160206122eb833981519152908380156114f15784935060005b828110156114e5578385860994506001016114cf565b506001840393506114f8565b6001830393505b50505092915050565b600082600103611513575060016100cd565b81600003611523575060006100cd565b60208401516000805160206122eb833981519152906000908281860990508580156115535760018703925061155a565b6001840392505b5061156482611c8b565b915082828209979650505050505050565b60006000805160206122eb8339815191528282036115f257600160005b60078110156115e6578186036115c3578681600781106115b4576115b461227b565b602002015193505050506114a5565b82806115d1576115d16122b2565b60408901516020015183099150600101611592565b506000925050506114a5565b6115fa611dcb565b6040870151600160c0838101828152920190805b600781101561163b5760208403935085868a85518903088309808552601f1990930192915060010161160e565b50505050600080600090506001838960408c015160005b6007811015611692578882518a85518c88518a0909098981880896505088898d84518c030886099450602093840193928301929190910190600101611652565b505050508092505060006116a583611c8b565b905060208a015185818909965050848187099550848287099a9950505050505050505050565b604080518082019091526000808252602082015260008060008060006000805160206122eb833981519152905060808901518160208a015160208c0151099550895194508160a08b015160608c0151099350816101a089015185089250818184089250818584099450817f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a85099250816101c089015184089250818184089250818584099450817f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02585099250816101e089015184089250818184089250818584099450817f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a850992508161020089015184089250818184089250818584099450817f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e8818509925081610220890151840892508181840892505080848309935080848608945061183d8760a0015186610ece565b9550885160608a015160808b0151838284099750836102c08b015189099750836102408b015183099550836101a08b015187089550838187089550838689099750836102608b015183099550836101c08b015187089550838187089550838689099750836102808b015183099550836101e08b015187089550838187089550838689099750836102a08b015183099550836102008b0151870895508381870895505050508083860994506119048661031d8c60c0015188856118ff9190612291565b610ece565b955061191d8661031d8c60e001518a6101a00151610ece565b95506119378661031d8c61010001518a6101c00151610ece565b95506119518661031d8c61012001518a6101e00151610ece565b955061196b8661031d8c61014001518a6102000151610ece565b9550806101c08801516101a08901510992506119908661031d8c610160015186610ece565b9550806102008801516101e08901510992506119b58661031d8c610180015186610ece565b95506101a087015192508083840991508082830991508082840992506119e48661031d8c6101e0015186610ece565b95506101c08701519250808384099150808283099150808284099250611a138661031d8c610200015186610ece565b95506101e08701519250808384099150808283099150808284099250611a428661031d8c610220015186610ece565b95506102008701519250808384099150808283099150808284099250611a718661031d8c610240015186610ece565b9550611a8e8661031d8c6101a001516118ff8b6102200151611d31565b9550611a9f868b6101c00151610f72565b9550806101c08801516101a0890151099250806101e08801518409925080610200880151840992508061022088015184099250611ae58661031d8c610260015186610ece565b9550611af48860000151611d31565b9450611b088661031d8960c0015188610ece565b955080600189510860a08a0151909350819080099150808284099250808386099450611b3c8661031d8960e0015188610ece565b9550808386099450611b578661031d89610100015188610ece565b9550808386099450611b728661031d89610120015188610ece565b9550808386099450611b8d8661031d89610140015188610ece565b9a9950505050505050505050565b6000806000805160206122eb8339815191529050600083602001519050600084604001519050600060019050606088015160808901516101a08901516102408a01518788898387098a868608088609945050506101c08901516102608a01518788898387098a868608088609945050506101e08901516102808a01518788898387098a868608088609945050506102008901516102a08a01518788898387098a8686080886099450505061022089015191506102c0890151868782898587080985099350505050875160208901518586868309870385089650508485838309860387089998505050505050505050565b60008060006000805160206122eb833981519152905060405160208152602080820152602060408201528460608201526002820360808201528160a08201526020600060c08360055afa925050600051925081611d2a5760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a20706f7720707265636f6d70696c65206661696c6564210000006044820152606401610269565b5050919050565b6000611d4b6000805160206122eb833981519152836122c8565b611d63906000805160206122eb833981519152612291565b92915050565b60405180606001604052806000815260200160008152602001611d8a611dcb565b905290565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b6040516102e0810167ffffffffffffffff81118282101715611e2357611e23611de9565b60405290565b6040516102c0810167ffffffffffffffff81118282101715611e2357611e23611de9565b600060408284031215611e5f57600080fd5b6040516040810181811067ffffffffffffffff82111715611e8257611e82611de9565b604052823581526020928301359281019290925250919050565b600082601f830112611ead57600080fd5b60405160e0810181811067ffffffffffffffff82111715611ed057611ed0611de9565b6040528060e0840185811115611ee557600080fd5b845b81811015611eff578035835260209283019201611ee7565b509195945050505050565b60006104808284031215611f1d57600080fd5b611f25611dff565b9050611f318383611e4d565b8152611f408360408401611e4d565b6020820152611f528360808401611e4d565b6040820152611f648360c08401611e4d565b6060820152610100611f7884828501611e4d565b6080830152610140611f8c85828601611e4d565b60a0840152610180611fa086828701611e4d565b60c08501526101c0611fb487828801611e4d565b60e0860152610200611fc888828901611e4d565b858701526102409450611fdd88868901611e4d565b610120870152610280611ff289828a01611e4d565b858801526102c0945061200789868a01611e4d565b61016088015261201b896103008a01611e4d565b848801526103408801356101a0880152610360880135838801526103808801356101e08801526103a0880135828801526103c08801356102208801526103e08801358688015261040088013561026088015261042088013581880152505050506104408401356102a084015261046084013581840152505092915050565b6000806000838503610a608112156120b057600080fd5b610500808212156120c057600080fd5b6120c8611e29565b915085358252602086013560208301526120e58760408801611e4d565b60408301526120f78760808801611e4d565b60608301526121098760c08801611e4d565b608083015261010061211d88828901611e4d565b60a084015261014061213189828a01611e4d565b60c08501526101806121458a828b01611e4d565b60e08601526101c06121598b828c01611e4d565b84870152610200935061216e8b858c01611e4d565b6101208701526102406121838c828d01611e4d565b8488015261028093506121988c858d01611e4d565b6101608801526121ac8c6102c08d01611e4d565b838801526121be8c6103008d01611e4d565b6101a08801526121d28c6103408d01611e4d565b828801526121e48c6103808d01611e4d565b6101e08801526121f88c6103c08d01611e4d565b8588015261220a8c6104008d01611e4d565b61022088015261221e8c6104408d01611e4d565b81880152505050612233896104808a01611e4d565b6102608501526104c08801358185015250506104e08601356102a083015281945061226087828801611e9c565b93505050612272856105e08601611f0a565b90509250925092565b634e487b7160e01b600052603260045260246000fd5b81810381811115611d6357634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6000826122e557634e487b7160e01b600052601260045260246000fd5b50069056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a164736f6c6343000817000a", - "nonce": "0x791", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [], - "libraries": [], - "pending": [], - "returns": { - "contractAddress": { - "internal_type": "address", - "value": "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB" - } - }, - "timestamp": 1736544485, - "chain": 421614, - "commit": "9c97b7e0d" -} \ No newline at end of file diff --git a/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544842.json b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544842.json deleted file mode 100644 index 4be6cfdb4a..0000000000 --- a/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544842.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "transactions": [ - { - "hash": null, - "transactionType": "CREATE", - "contractName": "PlonkVerifier", - "contractAddress": "0x85fe2dcd9fbcb3311f04af11a0cf59c1beaa46bb", - "function": null, - "arguments": null, - "transaction": { - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "gas": "0x27e2e0", - "value": "0x0", - "input": "0x61231761003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063ce537a771461003a575b600080fd5b61004d610048366004612099565b610061565b604051901515815260200160405180910390f35b600061006c826100d4565b61007d8360005b602002015161020f565b610088836001610073565b610093836002610073565b61009e836003610073565b6100a9836004610073565b6100b4836005610073565b6100bf836006610073565b6100ca848484610276565b90505b9392505050565b80516100df90610475565b6100ec8160200151610475565b6100f98160400151610475565b6101068160600151610475565b6101138160800151610475565b6101208160a00151610475565b61012d8160c00151610475565b61013a8160e00151610475565b610148816101000151610475565b610156816101200151610475565b610164816101400151610475565b610172816101600151610475565b610180816101800151610475565b61018e816101a0015161020f565b61019c816101c0015161020f565b6101aa816101e0015161020f565b6101b881610200015161020f565b6101c681610220015161020f565b6101d481610240015161020f565b6101e281610260015161020f565b6101f081610280015161020f565b6101fe816102a0015161020f565b61020c816102c0015161020f565b50565b6000805160206122eb8339815191528110806102725760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c64000000000060448201526064015b60405180910390fd5b5050565b6000836020015160071461029d576040516320fa9d8960e11b815260040160405180910390fd5b60006102aa858585610524565b905060006102bb8660000151610a90565b905060006102ce828460a0015188610e6e565b90506102ed604051806040016040528060008152602001600081525090565b604080518082019091526000808252602082015261032287610160015161031d8961018001518860e00151610ece565b610f72565b91506000806103338b88878c611019565b915091506103448161031d84611259565b925061035d8361031d8b61016001518a60a00151610ece565b60a08801516040880151602001519194506000805160206122eb833981519152918290820990508160e08a0151820990506103a18561031d8d610180015184610ece565b9450600060405180608001604052807f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b081526020017f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c181526020017f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e5581526020017f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe48152509050610463878261045689611259565b61045e6112f8565b6113c9565b9e9d5050505050505050505050505050565b805160208201516000917f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd479115901516156104af57505050565b82516020840151826003848585860985090883828309148382108484101616935050508161051f5760405162461bcd60e51b815260206004820152601760248201527f426e3235343a20696e76616c696420473120706f696e740000000000000000006044820152606401610269565b505050565b61056c60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006000805160206122eb8339815191529050604051602081016000815260fe60e01b8152865160c01b6004820152602087015160c01b600c82015261028087015160208201526102a08701516040820152600160608201527f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a60808201527f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02560a08201527f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a60c08201527f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e88160e082015260e087015180516101008301526020810151610120830152506101008701518051610140830152602081015161016083015250610120870151805161018083015260208101516101a08301525061014087015180516101c083015260208101516101e083015250610160870151805161020083015260208101516102208301525061018087015180516102408301526020810151610260830152506101e0870151805161028083015260208101516102a08301525061020087015180516102c083015260208101516102e083015250610220870151805161030083015260208101516103208301525061024087015180516103408301526020810151610360830152506101a0870151805161038083015260208101516103a0830152506101c087015180516103c083015260208101516103e0830152506102608701518051610400830152602081015161042083015250604087015180516104408301526020810151610460830152506060870151805161048083015260208101516104a083015250608087015180516104c083015260208101516104e08301525060a0870151805161050083015260208101516105208301525060c08701518051610540830152602081015161056083015250855161058082015260208601516105a082015260408601516105c082015260608601516105e0820152608086015161060082015260a086015161062082015260c086015161064082015284518051610660830152602081015161068083015250602085015180516106a083015260208101516106c083015250604085015180516106e08301526020810151610700830152506060850151805161072083015260208101516107408301525060808501518051610760830152602081015161078083015250600082526107c08220825282825106606085015260208220825282825106608085015260a085015180518252602081015160208301525060608220808352838106855283818209848282099150806020870152508060408601525060c085015180518252602081015160208301525060e085015180516040830152602081015160608301525061010085015180516080830152602081015160a083015250610120850151805160c0830152602081015160e0830152506101408501518051610100830152602081015161012083015250610160822082528282510660a08501526101a085015181526101c085015160208201526101e085015160408201526102008501516060820152610220850151608082015261024085015160a082015261026085015160c082015261028085015160e08201526102a08501516101008201526102c0850151610120820152610160822082528282510660c08501526101608501518051825260208101516020830152506101808501518051604083015260208101516060830152505060a0812082810660e08501525050509392505050565b610a98611d69565b816201000003610bd7576040518060600160405280601081526020017f30641e0e92bebef818268d663bcad6dbcfd6c0149170f6d7d350b1b1fa6c100181526020016040518060e00160405280600181526020017eeeb2cb5981ed45649abebde081dcff16c8601de4347e7dd1628ba2daac43b781526020017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb81526020017f086812a00ac43ea801669c640171203c41a496671bfbc065ac8db24d52cf31e581526020017f2d965651cdd9e4811f4e51b80ddca8a8b4a93ee17420aae6adaa01c2617c6e8581526020017f12597a56c2e438620b9041b98992ae0d4e705b780057bf7766a2767cece16e1d81526020017f02d94117cd17bcf1290fd67c01155dd40807857dff4a5a0b4dc67befa8aa34fd8152508152509050919050565b816210000003610d17576040518060600160405280601481526020017f30644b6c9c4a72169e4daa317d25f04512ae15c53b34e8f5acd8e155d0a6c10181526020016040518060e00160405280600181526020017f26125da10a0ed06327508aba06d1e303ac616632dbed349f53422da95333785781526020017f2260e724844bca5251829353968e4915305258418357473a5c1d597f613f6cbd81526020017f2087ea2cd664278608fb0ebdb820907f598502c81b6690c185e2bf15cb935f4281526020017f19ddbcaf3a8d46c15c0176fbb5b95e4dc57088ff13f4d1bd84c6bfa57dcdc0e081526020017f05a2c85cfc591789605cae818e37dd4161eef9aa666bec6fe4288d09e6d2341881526020017f11f70e5363258ff4f0d716a653e1dc41f1c64484d7f4b6e219d6377614a3905c8152508152509050919050565b81602003610e55576040518060600160405280600581526020017f2ee12bff4a2813286a8dc388cd754d9a3ef2490635eba50cb9c2e5e75080000181526020016040518060e00160405280600181526020017f09c532c6306b93d29678200d47c0b2a99c18d51b838eeb1d3eed4c533bb512d081526020017f21082ca216cbbf4e1c6e4f4594dd508c996dfbe1174efb98b11509c6e306460b81526020017f1277ae6415f0ef18f2ba5fb162c39eb7311f386e2d26d64401f4a25da77c253b81526020017f2b337de1c8c14f22ec9b9e2f96afef3652627366f8170a0a948dad4ac1bd5e8081526020017f2fbd4dd2976be55d1a163aa9820fb88dfac5ddce77e1872e90632027327a5ebe81526020017f107aab49e65a67f9da9cd2abf78be38bd9dc1d5db39f81de36bcfa5b4b0390438152508152509050919050565b60405163e2ef09e560e01b815260040160405180910390fd5b610e9260405180606001604052806000815260200160008152602001600081525090565b610e9c84846114ad565b808252610eac9085908590611501565b60208201528051610ec290859084908690611575565b60408201529392505050565b6040805180820190915260008082526020820152610eea611d8f565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa90508080610f1c57600080fd5b5080610f6a5760405162461bcd60e51b815260206004820152601960248201527f426e3235343a207363616c6172206d756c206661696c656421000000000000006044820152606401610269565b505092915050565b6040805180820190915260008082526020820152610f8e611dad565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa90508080610fcb57600080fd5b5080610f6a5760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a2067726f7570206164646974696f6e206661696c6564210000006044820152606401610269565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600061104f878787876116cb565b90506000805160206122eb833981519152600061106d888789611b9b565b90506110798183612291565b60c08901516101a0880151919250908190849081908309840892506110a68561031d8a6000015184610ece565b955083828209905083846101c08a01518309840892506110ce8661031d8a6020015184610ece565b955083828209905083846101e08a01518309840892506110f68661031d8a6040015184610ece565b955083828209905083846102008a015183098408925061111e8661031d8a6060015184610ece565b955083828209905083846102208a01518309840892506111468661031d8a6080015184610ece565b955083828209905083846102408a015183098408925061116e8661031d8d6040015184610ece565b955083828209905083846102608a01518309840892506111968661031d8d6060015184610ece565b955083828209905083846102808a01518309840892506111be8661031d8d6080015184610ece565b955083828209905083846102a08a01518309840892506111e68661031d8d60a0015184610ece565b955060008a60e00151905084856102c08b01518309850893506112118761031d8b60a0015184610ece565b9650611248611242604080518082018252600080825260209182015281518083019092526001825260029082015290565b85610ece565b975050505050505094509492505050565b6040805180820190915260008082526020820152815160208301511590151615611281575090565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516112c691906122c8565b6112f0907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47612291565b905292915050565b6113236040518060800160405280600081526020016000815260200160008152602001600081525090565b60405180608001604052807f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed81526020017f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c281526020017f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa81526020017f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b815250905090565b60008060006040518751815260208801516020820152602087015160408201528651606082015260608701516080820152604087015160a0820152855160c0820152602086015160e08201526020850151610100820152845161012082015260608501516101408201526040850151610160820152602060006101808360085afa91505060005191508061149f5760405162461bcd60e51b815260206004820152601c60248201527f426e3235343a2050616972696e6720636865636b206661696c656421000000006044820152606401610269565b50151590505b949350505050565b81516000906000805160206122eb833981519152908380156114f15784935060005b828110156114e5578385860994506001016114cf565b506001840393506114f8565b6001830393505b50505092915050565b600082600103611513575060016100cd565b81600003611523575060006100cd565b60208401516000805160206122eb833981519152906000908281860990508580156115535760018703925061155a565b6001840392505b5061156482611c8b565b915082828209979650505050505050565b60006000805160206122eb8339815191528282036115f257600160005b60078110156115e6578186036115c3578681600781106115b4576115b461227b565b602002015193505050506114a5565b82806115d1576115d16122b2565b60408901516020015183099150600101611592565b506000925050506114a5565b6115fa611dcb565b6040870151600160c0838101828152920190805b600781101561163b5760208403935085868a85518903088309808552601f1990930192915060010161160e565b50505050600080600090506001838960408c015160005b6007811015611692578882518a85518c88518a0909098981880896505088898d84518c030886099450602093840193928301929190910190600101611652565b505050508092505060006116a583611c8b565b905060208a015185818909965050848187099550848287099a9950505050505050505050565b604080518082019091526000808252602082015260008060008060006000805160206122eb833981519152905060808901518160208a015160208c0151099550895194508160a08b015160608c0151099350816101a089015185089250818184089250818584099450817f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a85099250816101c089015184089250818184089250818584099450817f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02585099250816101e089015184089250818184089250818584099450817f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a850992508161020089015184089250818184089250818584099450817f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e8818509925081610220890151840892508181840892505080848309935080848608945061183d8760a0015186610ece565b9550885160608a015160808b0151838284099750836102c08b015189099750836102408b015183099550836101a08b015187089550838187089550838689099750836102608b015183099550836101c08b015187089550838187089550838689099750836102808b015183099550836101e08b015187089550838187089550838689099750836102a08b015183099550836102008b0151870895508381870895505050508083860994506119048661031d8c60c0015188856118ff9190612291565b610ece565b955061191d8661031d8c60e001518a6101a00151610ece565b95506119378661031d8c61010001518a6101c00151610ece565b95506119518661031d8c61012001518a6101e00151610ece565b955061196b8661031d8c61014001518a6102000151610ece565b9550806101c08801516101a08901510992506119908661031d8c610160015186610ece565b9550806102008801516101e08901510992506119b58661031d8c610180015186610ece565b95506101a087015192508083840991508082830991508082840992506119e48661031d8c6101e0015186610ece565b95506101c08701519250808384099150808283099150808284099250611a138661031d8c610200015186610ece565b95506101e08701519250808384099150808283099150808284099250611a428661031d8c610220015186610ece565b95506102008701519250808384099150808283099150808284099250611a718661031d8c610240015186610ece565b9550611a8e8661031d8c6101a001516118ff8b6102200151611d31565b9550611a9f868b6101c00151610f72565b9550806101c08801516101a0890151099250806101e08801518409925080610200880151840992508061022088015184099250611ae58661031d8c610260015186610ece565b9550611af48860000151611d31565b9450611b088661031d8960c0015188610ece565b955080600189510860a08a0151909350819080099150808284099250808386099450611b3c8661031d8960e0015188610ece565b9550808386099450611b578661031d89610100015188610ece565b9550808386099450611b728661031d89610120015188610ece565b9550808386099450611b8d8661031d89610140015188610ece565b9a9950505050505050505050565b6000806000805160206122eb8339815191529050600083602001519050600084604001519050600060019050606088015160808901516101a08901516102408a01518788898387098a868608088609945050506101c08901516102608a01518788898387098a868608088609945050506101e08901516102808a01518788898387098a868608088609945050506102008901516102a08a01518788898387098a8686080886099450505061022089015191506102c0890151868782898587080985099350505050875160208901518586868309870385089650508485838309860387089998505050505050505050565b60008060006000805160206122eb833981519152905060405160208152602080820152602060408201528460608201526002820360808201528160a08201526020600060c08360055afa925050600051925081611d2a5760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a20706f7720707265636f6d70696c65206661696c6564210000006044820152606401610269565b5050919050565b6000611d4b6000805160206122eb833981519152836122c8565b611d63906000805160206122eb833981519152612291565b92915050565b60405180606001604052806000815260200160008152602001611d8a611dcb565b905290565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b6040516102e0810167ffffffffffffffff81118282101715611e2357611e23611de9565b60405290565b6040516102c0810167ffffffffffffffff81118282101715611e2357611e23611de9565b600060408284031215611e5f57600080fd5b6040516040810181811067ffffffffffffffff82111715611e8257611e82611de9565b604052823581526020928301359281019290925250919050565b600082601f830112611ead57600080fd5b60405160e0810181811067ffffffffffffffff82111715611ed057611ed0611de9565b6040528060e0840185811115611ee557600080fd5b845b81811015611eff578035835260209283019201611ee7565b509195945050505050565b60006104808284031215611f1d57600080fd5b611f25611dff565b9050611f318383611e4d565b8152611f408360408401611e4d565b6020820152611f528360808401611e4d565b6040820152611f648360c08401611e4d565b6060820152610100611f7884828501611e4d565b6080830152610140611f8c85828601611e4d565b60a0840152610180611fa086828701611e4d565b60c08501526101c0611fb487828801611e4d565b60e0860152610200611fc888828901611e4d565b858701526102409450611fdd88868901611e4d565b610120870152610280611ff289828a01611e4d565b858801526102c0945061200789868a01611e4d565b61016088015261201b896103008a01611e4d565b848801526103408801356101a0880152610360880135838801526103808801356101e08801526103a0880135828801526103c08801356102208801526103e08801358688015261040088013561026088015261042088013581880152505050506104408401356102a084015261046084013581840152505092915050565b6000806000838503610a608112156120b057600080fd5b610500808212156120c057600080fd5b6120c8611e29565b915085358252602086013560208301526120e58760408801611e4d565b60408301526120f78760808801611e4d565b60608301526121098760c08801611e4d565b608083015261010061211d88828901611e4d565b60a084015261014061213189828a01611e4d565b60c08501526101806121458a828b01611e4d565b60e08601526101c06121598b828c01611e4d565b84870152610200935061216e8b858c01611e4d565b6101208701526102406121838c828d01611e4d565b8488015261028093506121988c858d01611e4d565b6101608801526121ac8c6102c08d01611e4d565b838801526121be8c6103008d01611e4d565b6101a08801526121d28c6103408d01611e4d565b828801526121e48c6103808d01611e4d565b6101e08801526121f88c6103c08d01611e4d565b8588015261220a8c6104008d01611e4d565b61022088015261221e8c6104408d01611e4d565b81880152505050612233896104808a01611e4d565b6102608501526104c08801358185015250506104e08601356102a083015281945061226087828801611e9c565b93505050612272856105e08601611f0a565b90509250925092565b634e487b7160e01b600052603260045260246000fd5b81810381811115611d6357634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6000826122e557634e487b7160e01b600052601260045260246000fd5b50069056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a164736f6c6343000817000a", - "nonce": "0x791", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [], - "libraries": [], - "pending": [], - "returns": { - "contractAddress": { - "internal_type": "address", - "value": "0x85fe2Dcd9fBcb3311f04aF11a0CF59c1beAa46bB" - } - }, - "timestamp": 1736544842, - "chain": 421614, - "commit": "9c97b7e0d" -} \ No newline at end of file diff --git a/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544888.json b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544888.json deleted file mode 100644 index b04d4d5c04..0000000000 --- a/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736544888.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "transactions": [ - { - "hash": null, - "transactionType": "CREATE", - "contractName": "PlonkVerifier", - "contractAddress": "0x9505e8b8546cc9015b2c015826d25821cc48c153", - "function": null, - "arguments": null, - "transaction": { - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "gas": "0x27e2e0", - "value": "0x0", - "input": "0x61231761003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063ce537a771461003a575b600080fd5b61004d610048366004612099565b610061565b604051901515815260200160405180910390f35b600061006c826100d4565b61007d8360005b602002015161020f565b610088836001610073565b610093836002610073565b61009e836003610073565b6100a9836004610073565b6100b4836005610073565b6100bf836006610073565b6100ca848484610276565b90505b9392505050565b80516100df90610475565b6100ec8160200151610475565b6100f98160400151610475565b6101068160600151610475565b6101138160800151610475565b6101208160a00151610475565b61012d8160c00151610475565b61013a8160e00151610475565b610148816101000151610475565b610156816101200151610475565b610164816101400151610475565b610172816101600151610475565b610180816101800151610475565b61018e816101a0015161020f565b61019c816101c0015161020f565b6101aa816101e0015161020f565b6101b881610200015161020f565b6101c681610220015161020f565b6101d481610240015161020f565b6101e281610260015161020f565b6101f081610280015161020f565b6101fe816102a0015161020f565b61020c816102c0015161020f565b50565b6000805160206122eb8339815191528110806102725760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c64000000000060448201526064015b60405180910390fd5b5050565b6000836020015160071461029d576040516320fa9d8960e11b815260040160405180910390fd5b60006102aa858585610524565b905060006102bb8660000151610a90565b905060006102ce828460a0015188610e6e565b90506102ed604051806040016040528060008152602001600081525090565b604080518082019091526000808252602082015261032287610160015161031d8961018001518860e00151610ece565b610f72565b91506000806103338b88878c611019565b915091506103448161031d84611259565b925061035d8361031d8b61016001518a60a00151610ece565b60a08801516040880151602001519194506000805160206122eb833981519152918290820990508160e08a0151820990506103a18561031d8d610180015184610ece565b9450600060405180608001604052807f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b081526020017f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c181526020017f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e5581526020017f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe48152509050610463878261045689611259565b61045e6112f8565b6113c9565b9e9d5050505050505050505050505050565b805160208201516000917f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd479115901516156104af57505050565b82516020840151826003848585860985090883828309148382108484101616935050508161051f5760405162461bcd60e51b815260206004820152601760248201527f426e3235343a20696e76616c696420473120706f696e740000000000000000006044820152606401610269565b505050565b61056c60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006000805160206122eb8339815191529050604051602081016000815260fe60e01b8152865160c01b6004820152602087015160c01b600c82015261028087015160208201526102a08701516040820152600160608201527f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a60808201527f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02560a08201527f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a60c08201527f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e88160e082015260e087015180516101008301526020810151610120830152506101008701518051610140830152602081015161016083015250610120870151805161018083015260208101516101a08301525061014087015180516101c083015260208101516101e083015250610160870151805161020083015260208101516102208301525061018087015180516102408301526020810151610260830152506101e0870151805161028083015260208101516102a08301525061020087015180516102c083015260208101516102e083015250610220870151805161030083015260208101516103208301525061024087015180516103408301526020810151610360830152506101a0870151805161038083015260208101516103a0830152506101c087015180516103c083015260208101516103e0830152506102608701518051610400830152602081015161042083015250604087015180516104408301526020810151610460830152506060870151805161048083015260208101516104a083015250608087015180516104c083015260208101516104e08301525060a0870151805161050083015260208101516105208301525060c08701518051610540830152602081015161056083015250855161058082015260208601516105a082015260408601516105c082015260608601516105e0820152608086015161060082015260a086015161062082015260c086015161064082015284518051610660830152602081015161068083015250602085015180516106a083015260208101516106c083015250604085015180516106e08301526020810151610700830152506060850151805161072083015260208101516107408301525060808501518051610760830152602081015161078083015250600082526107c08220825282825106606085015260208220825282825106608085015260a085015180518252602081015160208301525060608220808352838106855283818209848282099150806020870152508060408601525060c085015180518252602081015160208301525060e085015180516040830152602081015160608301525061010085015180516080830152602081015160a083015250610120850151805160c0830152602081015160e0830152506101408501518051610100830152602081015161012083015250610160822082528282510660a08501526101a085015181526101c085015160208201526101e085015160408201526102008501516060820152610220850151608082015261024085015160a082015261026085015160c082015261028085015160e08201526102a08501516101008201526102c0850151610120820152610160822082528282510660c08501526101608501518051825260208101516020830152506101808501518051604083015260208101516060830152505060a0812082810660e08501525050509392505050565b610a98611d69565b816201000003610bd7576040518060600160405280601081526020017f30641e0e92bebef818268d663bcad6dbcfd6c0149170f6d7d350b1b1fa6c100181526020016040518060e00160405280600181526020017eeeb2cb5981ed45649abebde081dcff16c8601de4347e7dd1628ba2daac43b781526020017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb81526020017f086812a00ac43ea801669c640171203c41a496671bfbc065ac8db24d52cf31e581526020017f2d965651cdd9e4811f4e51b80ddca8a8b4a93ee17420aae6adaa01c2617c6e8581526020017f12597a56c2e438620b9041b98992ae0d4e705b780057bf7766a2767cece16e1d81526020017f02d94117cd17bcf1290fd67c01155dd40807857dff4a5a0b4dc67befa8aa34fd8152508152509050919050565b816210000003610d17576040518060600160405280601481526020017f30644b6c9c4a72169e4daa317d25f04512ae15c53b34e8f5acd8e155d0a6c10181526020016040518060e00160405280600181526020017f26125da10a0ed06327508aba06d1e303ac616632dbed349f53422da95333785781526020017f2260e724844bca5251829353968e4915305258418357473a5c1d597f613f6cbd81526020017f2087ea2cd664278608fb0ebdb820907f598502c81b6690c185e2bf15cb935f4281526020017f19ddbcaf3a8d46c15c0176fbb5b95e4dc57088ff13f4d1bd84c6bfa57dcdc0e081526020017f05a2c85cfc591789605cae818e37dd4161eef9aa666bec6fe4288d09e6d2341881526020017f11f70e5363258ff4f0d716a653e1dc41f1c64484d7f4b6e219d6377614a3905c8152508152509050919050565b81602003610e55576040518060600160405280600581526020017f2ee12bff4a2813286a8dc388cd754d9a3ef2490635eba50cb9c2e5e75080000181526020016040518060e00160405280600181526020017f09c532c6306b93d29678200d47c0b2a99c18d51b838eeb1d3eed4c533bb512d081526020017f21082ca216cbbf4e1c6e4f4594dd508c996dfbe1174efb98b11509c6e306460b81526020017f1277ae6415f0ef18f2ba5fb162c39eb7311f386e2d26d64401f4a25da77c253b81526020017f2b337de1c8c14f22ec9b9e2f96afef3652627366f8170a0a948dad4ac1bd5e8081526020017f2fbd4dd2976be55d1a163aa9820fb88dfac5ddce77e1872e90632027327a5ebe81526020017f107aab49e65a67f9da9cd2abf78be38bd9dc1d5db39f81de36bcfa5b4b0390438152508152509050919050565b60405163e2ef09e560e01b815260040160405180910390fd5b610e9260405180606001604052806000815260200160008152602001600081525090565b610e9c84846114ad565b808252610eac9085908590611501565b60208201528051610ec290859084908690611575565b60408201529392505050565b6040805180820190915260008082526020820152610eea611d8f565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa90508080610f1c57600080fd5b5080610f6a5760405162461bcd60e51b815260206004820152601960248201527f426e3235343a207363616c6172206d756c206661696c656421000000000000006044820152606401610269565b505092915050565b6040805180820190915260008082526020820152610f8e611dad565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa90508080610fcb57600080fd5b5080610f6a5760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a2067726f7570206164646974696f6e206661696c6564210000006044820152606401610269565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600061104f878787876116cb565b90506000805160206122eb833981519152600061106d888789611b9b565b90506110798183612291565b60c08901516101a0880151919250908190849081908309840892506110a68561031d8a6000015184610ece565b955083828209905083846101c08a01518309840892506110ce8661031d8a6020015184610ece565b955083828209905083846101e08a01518309840892506110f68661031d8a6040015184610ece565b955083828209905083846102008a015183098408925061111e8661031d8a6060015184610ece565b955083828209905083846102208a01518309840892506111468661031d8a6080015184610ece565b955083828209905083846102408a015183098408925061116e8661031d8d6040015184610ece565b955083828209905083846102608a01518309840892506111968661031d8d6060015184610ece565b955083828209905083846102808a01518309840892506111be8661031d8d6080015184610ece565b955083828209905083846102a08a01518309840892506111e68661031d8d60a0015184610ece565b955060008a60e00151905084856102c08b01518309850893506112118761031d8b60a0015184610ece565b9650611248611242604080518082018252600080825260209182015281518083019092526001825260029082015290565b85610ece565b975050505050505094509492505050565b6040805180820190915260008082526020820152815160208301511590151615611281575090565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516112c691906122c8565b6112f0907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47612291565b905292915050565b6113236040518060800160405280600081526020016000815260200160008152602001600081525090565b60405180608001604052807f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed81526020017f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c281526020017f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa81526020017f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b815250905090565b60008060006040518751815260208801516020820152602087015160408201528651606082015260608701516080820152604087015160a0820152855160c0820152602086015160e08201526020850151610100820152845161012082015260608501516101408201526040850151610160820152602060006101808360085afa91505060005191508061149f5760405162461bcd60e51b815260206004820152601c60248201527f426e3235343a2050616972696e6720636865636b206661696c656421000000006044820152606401610269565b50151590505b949350505050565b81516000906000805160206122eb833981519152908380156114f15784935060005b828110156114e5578385860994506001016114cf565b506001840393506114f8565b6001830393505b50505092915050565b600082600103611513575060016100cd565b81600003611523575060006100cd565b60208401516000805160206122eb833981519152906000908281860990508580156115535760018703925061155a565b6001840392505b5061156482611c8b565b915082828209979650505050505050565b60006000805160206122eb8339815191528282036115f257600160005b60078110156115e6578186036115c3578681600781106115b4576115b461227b565b602002015193505050506114a5565b82806115d1576115d16122b2565b60408901516020015183099150600101611592565b506000925050506114a5565b6115fa611dcb565b6040870151600160c0838101828152920190805b600781101561163b5760208403935085868a85518903088309808552601f1990930192915060010161160e565b50505050600080600090506001838960408c015160005b6007811015611692578882518a85518c88518a0909098981880896505088898d84518c030886099450602093840193928301929190910190600101611652565b505050508092505060006116a583611c8b565b905060208a015185818909965050848187099550848287099a9950505050505050505050565b604080518082019091526000808252602082015260008060008060006000805160206122eb833981519152905060808901518160208a015160208c0151099550895194508160a08b015160608c0151099350816101a089015185089250818184089250818584099450817f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a85099250816101c089015184089250818184089250818584099450817f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02585099250816101e089015184089250818184089250818584099450817f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a850992508161020089015184089250818184089250818584099450817f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e8818509925081610220890151840892508181840892505080848309935080848608945061183d8760a0015186610ece565b9550885160608a015160808b0151838284099750836102c08b015189099750836102408b015183099550836101a08b015187089550838187089550838689099750836102608b015183099550836101c08b015187089550838187089550838689099750836102808b015183099550836101e08b015187089550838187089550838689099750836102a08b015183099550836102008b0151870895508381870895505050508083860994506119048661031d8c60c0015188856118ff9190612291565b610ece565b955061191d8661031d8c60e001518a6101a00151610ece565b95506119378661031d8c61010001518a6101c00151610ece565b95506119518661031d8c61012001518a6101e00151610ece565b955061196b8661031d8c61014001518a6102000151610ece565b9550806101c08801516101a08901510992506119908661031d8c610160015186610ece565b9550806102008801516101e08901510992506119b58661031d8c610180015186610ece565b95506101a087015192508083840991508082830991508082840992506119e48661031d8c6101e0015186610ece565b95506101c08701519250808384099150808283099150808284099250611a138661031d8c610200015186610ece565b95506101e08701519250808384099150808283099150808284099250611a428661031d8c610220015186610ece565b95506102008701519250808384099150808283099150808284099250611a718661031d8c610240015186610ece565b9550611a8e8661031d8c6101a001516118ff8b6102200151611d31565b9550611a9f868b6101c00151610f72565b9550806101c08801516101a0890151099250806101e08801518409925080610200880151840992508061022088015184099250611ae58661031d8c610260015186610ece565b9550611af48860000151611d31565b9450611b088661031d8960c0015188610ece565b955080600189510860a08a0151909350819080099150808284099250808386099450611b3c8661031d8960e0015188610ece565b9550808386099450611b578661031d89610100015188610ece565b9550808386099450611b728661031d89610120015188610ece565b9550808386099450611b8d8661031d89610140015188610ece565b9a9950505050505050505050565b6000806000805160206122eb8339815191529050600083602001519050600084604001519050600060019050606088015160808901516101a08901516102408a01518788898387098a868608088609945050506101c08901516102608a01518788898387098a868608088609945050506101e08901516102808a01518788898387098a868608088609945050506102008901516102a08a01518788898387098a8686080886099450505061022089015191506102c0890151868782898587080985099350505050875160208901518586868309870385089650508485838309860387089998505050505050505050565b60008060006000805160206122eb833981519152905060405160208152602080820152602060408201528460608201526002820360808201528160a08201526020600060c08360055afa925050600051925081611d2a5760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a20706f7720707265636f6d70696c65206661696c6564210000006044820152606401610269565b5050919050565b6000611d4b6000805160206122eb833981519152836122c8565b611d63906000805160206122eb833981519152612291565b92915050565b60405180606001604052806000815260200160008152602001611d8a611dcb565b905290565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b6040516102e0810167ffffffffffffffff81118282101715611e2357611e23611de9565b60405290565b6040516102c0810167ffffffffffffffff81118282101715611e2357611e23611de9565b600060408284031215611e5f57600080fd5b6040516040810181811067ffffffffffffffff82111715611e8257611e82611de9565b604052823581526020928301359281019290925250919050565b600082601f830112611ead57600080fd5b60405160e0810181811067ffffffffffffffff82111715611ed057611ed0611de9565b6040528060e0840185811115611ee557600080fd5b845b81811015611eff578035835260209283019201611ee7565b509195945050505050565b60006104808284031215611f1d57600080fd5b611f25611dff565b9050611f318383611e4d565b8152611f408360408401611e4d565b6020820152611f528360808401611e4d565b6040820152611f648360c08401611e4d565b6060820152610100611f7884828501611e4d565b6080830152610140611f8c85828601611e4d565b60a0840152610180611fa086828701611e4d565b60c08501526101c0611fb487828801611e4d565b60e0860152610200611fc888828901611e4d565b858701526102409450611fdd88868901611e4d565b610120870152610280611ff289828a01611e4d565b858801526102c0945061200789868a01611e4d565b61016088015261201b896103008a01611e4d565b848801526103408801356101a0880152610360880135838801526103808801356101e08801526103a0880135828801526103c08801356102208801526103e08801358688015261040088013561026088015261042088013581880152505050506104408401356102a084015261046084013581840152505092915050565b6000806000838503610a608112156120b057600080fd5b610500808212156120c057600080fd5b6120c8611e29565b915085358252602086013560208301526120e58760408801611e4d565b60408301526120f78760808801611e4d565b60608301526121098760c08801611e4d565b608083015261010061211d88828901611e4d565b60a084015261014061213189828a01611e4d565b60c08501526101806121458a828b01611e4d565b60e08601526101c06121598b828c01611e4d565b84870152610200935061216e8b858c01611e4d565b6101208701526102406121838c828d01611e4d565b8488015261028093506121988c858d01611e4d565b6101608801526121ac8c6102c08d01611e4d565b838801526121be8c6103008d01611e4d565b6101a08801526121d28c6103408d01611e4d565b828801526121e48c6103808d01611e4d565b6101e08801526121f88c6103c08d01611e4d565b8588015261220a8c6104008d01611e4d565b61022088015261221e8c6104408d01611e4d565b81880152505050612233896104808a01611e4d565b6102608501526104c08801358185015250506104e08601356102a083015281945061226087828801611e9c565b93505050612272856105e08601611f0a565b90509250925092565b634e487b7160e01b600052603260045260246000fd5b81810381811115611d6357634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6000826122e557634e487b7160e01b600052601260045260246000fd5b50069056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a164736f6c6343000817000a", - "nonce": "0x792", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [], - "libraries": [], - "pending": [], - "returns": { - "contractAddress": { - "internal_type": "address", - "value": "0x9505E8B8546cC9015B2c015826d25821CC48C153" - } - }, - "timestamp": 1736544888, - "chain": 421614, - "commit": "9c97b7e0d" -} \ No newline at end of file diff --git a/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736545062.json b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736545062.json deleted file mode 100644 index 8c197ed649..0000000000 --- a/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736545062.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "transactions": [ - { - "hash": null, - "transactionType": "CREATE", - "contractName": "PlonkVerifier", - "contractAddress": "0x9505e8b8546cc9015b2c015826d25821cc48c153", - "function": null, - "arguments": null, - "transaction": { - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "gas": "0x27e2e0", - "value": "0x0", - "input": "0x61231761003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063ce537a771461003a575b600080fd5b61004d610048366004612099565b610061565b604051901515815260200160405180910390f35b600061006c826100d4565b61007d8360005b602002015161020f565b610088836001610073565b610093836002610073565b61009e836003610073565b6100a9836004610073565b6100b4836005610073565b6100bf836006610073565b6100ca848484610276565b90505b9392505050565b80516100df90610475565b6100ec8160200151610475565b6100f98160400151610475565b6101068160600151610475565b6101138160800151610475565b6101208160a00151610475565b61012d8160c00151610475565b61013a8160e00151610475565b610148816101000151610475565b610156816101200151610475565b610164816101400151610475565b610172816101600151610475565b610180816101800151610475565b61018e816101a0015161020f565b61019c816101c0015161020f565b6101aa816101e0015161020f565b6101b881610200015161020f565b6101c681610220015161020f565b6101d481610240015161020f565b6101e281610260015161020f565b6101f081610280015161020f565b6101fe816102a0015161020f565b61020c816102c0015161020f565b50565b6000805160206122eb8339815191528110806102725760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c64000000000060448201526064015b60405180910390fd5b5050565b6000836020015160071461029d576040516320fa9d8960e11b815260040160405180910390fd5b60006102aa858585610524565b905060006102bb8660000151610a90565b905060006102ce828460a0015188610e6e565b90506102ed604051806040016040528060008152602001600081525090565b604080518082019091526000808252602082015261032287610160015161031d8961018001518860e00151610ece565b610f72565b91506000806103338b88878c611019565b915091506103448161031d84611259565b925061035d8361031d8b61016001518a60a00151610ece565b60a08801516040880151602001519194506000805160206122eb833981519152918290820990508160e08a0151820990506103a18561031d8d610180015184610ece565b9450600060405180608001604052807f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b081526020017f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c181526020017f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e5581526020017f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe48152509050610463878261045689611259565b61045e6112f8565b6113c9565b9e9d5050505050505050505050505050565b805160208201516000917f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd479115901516156104af57505050565b82516020840151826003848585860985090883828309148382108484101616935050508161051f5760405162461bcd60e51b815260206004820152601760248201527f426e3235343a20696e76616c696420473120706f696e740000000000000000006044820152606401610269565b505050565b61056c60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006000805160206122eb8339815191529050604051602081016000815260fe60e01b8152865160c01b6004820152602087015160c01b600c82015261028087015160208201526102a08701516040820152600160608201527f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a60808201527f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02560a08201527f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a60c08201527f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e88160e082015260e087015180516101008301526020810151610120830152506101008701518051610140830152602081015161016083015250610120870151805161018083015260208101516101a08301525061014087015180516101c083015260208101516101e083015250610160870151805161020083015260208101516102208301525061018087015180516102408301526020810151610260830152506101e0870151805161028083015260208101516102a08301525061020087015180516102c083015260208101516102e083015250610220870151805161030083015260208101516103208301525061024087015180516103408301526020810151610360830152506101a0870151805161038083015260208101516103a0830152506101c087015180516103c083015260208101516103e0830152506102608701518051610400830152602081015161042083015250604087015180516104408301526020810151610460830152506060870151805161048083015260208101516104a083015250608087015180516104c083015260208101516104e08301525060a0870151805161050083015260208101516105208301525060c08701518051610540830152602081015161056083015250855161058082015260208601516105a082015260408601516105c082015260608601516105e0820152608086015161060082015260a086015161062082015260c086015161064082015284518051610660830152602081015161068083015250602085015180516106a083015260208101516106c083015250604085015180516106e08301526020810151610700830152506060850151805161072083015260208101516107408301525060808501518051610760830152602081015161078083015250600082526107c08220825282825106606085015260208220825282825106608085015260a085015180518252602081015160208301525060608220808352838106855283818209848282099150806020870152508060408601525060c085015180518252602081015160208301525060e085015180516040830152602081015160608301525061010085015180516080830152602081015160a083015250610120850151805160c0830152602081015160e0830152506101408501518051610100830152602081015161012083015250610160822082528282510660a08501526101a085015181526101c085015160208201526101e085015160408201526102008501516060820152610220850151608082015261024085015160a082015261026085015160c082015261028085015160e08201526102a08501516101008201526102c0850151610120820152610160822082528282510660c08501526101608501518051825260208101516020830152506101808501518051604083015260208101516060830152505060a0812082810660e08501525050509392505050565b610a98611d69565b816201000003610bd7576040518060600160405280601081526020017f30641e0e92bebef818268d663bcad6dbcfd6c0149170f6d7d350b1b1fa6c100181526020016040518060e00160405280600181526020017eeeb2cb5981ed45649abebde081dcff16c8601de4347e7dd1628ba2daac43b781526020017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb81526020017f086812a00ac43ea801669c640171203c41a496671bfbc065ac8db24d52cf31e581526020017f2d965651cdd9e4811f4e51b80ddca8a8b4a93ee17420aae6adaa01c2617c6e8581526020017f12597a56c2e438620b9041b98992ae0d4e705b780057bf7766a2767cece16e1d81526020017f02d94117cd17bcf1290fd67c01155dd40807857dff4a5a0b4dc67befa8aa34fd8152508152509050919050565b816210000003610d17576040518060600160405280601481526020017f30644b6c9c4a72169e4daa317d25f04512ae15c53b34e8f5acd8e155d0a6c10181526020016040518060e00160405280600181526020017f26125da10a0ed06327508aba06d1e303ac616632dbed349f53422da95333785781526020017f2260e724844bca5251829353968e4915305258418357473a5c1d597f613f6cbd81526020017f2087ea2cd664278608fb0ebdb820907f598502c81b6690c185e2bf15cb935f4281526020017f19ddbcaf3a8d46c15c0176fbb5b95e4dc57088ff13f4d1bd84c6bfa57dcdc0e081526020017f05a2c85cfc591789605cae818e37dd4161eef9aa666bec6fe4288d09e6d2341881526020017f11f70e5363258ff4f0d716a653e1dc41f1c64484d7f4b6e219d6377614a3905c8152508152509050919050565b81602003610e55576040518060600160405280600581526020017f2ee12bff4a2813286a8dc388cd754d9a3ef2490635eba50cb9c2e5e75080000181526020016040518060e00160405280600181526020017f09c532c6306b93d29678200d47c0b2a99c18d51b838eeb1d3eed4c533bb512d081526020017f21082ca216cbbf4e1c6e4f4594dd508c996dfbe1174efb98b11509c6e306460b81526020017f1277ae6415f0ef18f2ba5fb162c39eb7311f386e2d26d64401f4a25da77c253b81526020017f2b337de1c8c14f22ec9b9e2f96afef3652627366f8170a0a948dad4ac1bd5e8081526020017f2fbd4dd2976be55d1a163aa9820fb88dfac5ddce77e1872e90632027327a5ebe81526020017f107aab49e65a67f9da9cd2abf78be38bd9dc1d5db39f81de36bcfa5b4b0390438152508152509050919050565b60405163e2ef09e560e01b815260040160405180910390fd5b610e9260405180606001604052806000815260200160008152602001600081525090565b610e9c84846114ad565b808252610eac9085908590611501565b60208201528051610ec290859084908690611575565b60408201529392505050565b6040805180820190915260008082526020820152610eea611d8f565b835181526020808501519082015260408101839052600060608360808460076107d05a03fa90508080610f1c57600080fd5b5080610f6a5760405162461bcd60e51b815260206004820152601960248201527f426e3235343a207363616c6172206d756c206661696c656421000000000000006044820152606401610269565b505092915050565b6040805180820190915260008082526020820152610f8e611dad565b8351815260208085015181830152835160408301528301516060808301919091526000908360c08460066107d05a03fa90508080610fcb57600080fd5b5080610f6a5760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a2067726f7570206164646974696f6e206661696c6564210000006044820152606401610269565b60408051808201909152600080825260208201526040805180820190915260008082526020820152600061104f878787876116cb565b90506000805160206122eb833981519152600061106d888789611b9b565b90506110798183612291565b60c08901516101a0880151919250908190849081908309840892506110a68561031d8a6000015184610ece565b955083828209905083846101c08a01518309840892506110ce8661031d8a6020015184610ece565b955083828209905083846101e08a01518309840892506110f68661031d8a6040015184610ece565b955083828209905083846102008a015183098408925061111e8661031d8a6060015184610ece565b955083828209905083846102208a01518309840892506111468661031d8a6080015184610ece565b955083828209905083846102408a015183098408925061116e8661031d8d6040015184610ece565b955083828209905083846102608a01518309840892506111968661031d8d6060015184610ece565b955083828209905083846102808a01518309840892506111be8661031d8d6080015184610ece565b955083828209905083846102a08a01518309840892506111e68661031d8d60a0015184610ece565b955060008a60e00151905084856102c08b01518309850893506112118761031d8b60a0015184610ece565b9650611248611242604080518082018252600080825260209182015281518083019092526001825260029082015290565b85610ece565b975050505050505094509492505050565b6040805180820190915260008082526020820152815160208301511590151615611281575090565b6040518060400160405280836000015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516112c691906122c8565b6112f0907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47612291565b905292915050565b6113236040518060800160405280600081526020016000815260200160008152602001600081525090565b60405180608001604052807f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed81526020017f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c281526020017f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa81526020017f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b815250905090565b60008060006040518751815260208801516020820152602087015160408201528651606082015260608701516080820152604087015160a0820152855160c0820152602086015160e08201526020850151610100820152845161012082015260608501516101408201526040850151610160820152602060006101808360085afa91505060005191508061149f5760405162461bcd60e51b815260206004820152601c60248201527f426e3235343a2050616972696e6720636865636b206661696c656421000000006044820152606401610269565b50151590505b949350505050565b81516000906000805160206122eb833981519152908380156114f15784935060005b828110156114e5578385860994506001016114cf565b506001840393506114f8565b6001830393505b50505092915050565b600082600103611513575060016100cd565b81600003611523575060006100cd565b60208401516000805160206122eb833981519152906000908281860990508580156115535760018703925061155a565b6001840392505b5061156482611c8b565b915082828209979650505050505050565b60006000805160206122eb8339815191528282036115f257600160005b60078110156115e6578186036115c3578681600781106115b4576115b461227b565b602002015193505050506114a5565b82806115d1576115d16122b2565b60408901516020015183099150600101611592565b506000925050506114a5565b6115fa611dcb565b6040870151600160c0838101828152920190805b600781101561163b5760208403935085868a85518903088309808552601f1990930192915060010161160e565b50505050600080600090506001838960408c015160005b6007811015611692578882518a85518c88518a0909098981880896505088898d84518c030886099450602093840193928301929190910190600101611652565b505050508092505060006116a583611c8b565b905060208a015185818909965050848187099550848287099a9950505050505050505050565b604080518082019091526000808252602082015260008060008060006000805160206122eb833981519152905060808901518160208a015160208c0151099550895194508160a08b015160608c0151099350816101a089015185089250818184089250818584099450817f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a85099250816101c089015184089250818184089250818584099450817f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02585099250816101e089015184089250818184089250818584099450817f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a850992508161020089015184089250818184089250818584099450817f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e8818509925081610220890151840892508181840892505080848309935080848608945061183d8760a0015186610ece565b9550885160608a015160808b0151838284099750836102c08b015189099750836102408b015183099550836101a08b015187089550838187089550838689099750836102608b015183099550836101c08b015187089550838187089550838689099750836102808b015183099550836101e08b015187089550838187089550838689099750836102a08b015183099550836102008b0151870895508381870895505050508083860994506119048661031d8c60c0015188856118ff9190612291565b610ece565b955061191d8661031d8c60e001518a6101a00151610ece565b95506119378661031d8c61010001518a6101c00151610ece565b95506119518661031d8c61012001518a6101e00151610ece565b955061196b8661031d8c61014001518a6102000151610ece565b9550806101c08801516101a08901510992506119908661031d8c610160015186610ece565b9550806102008801516101e08901510992506119b58661031d8c610180015186610ece565b95506101a087015192508083840991508082830991508082840992506119e48661031d8c6101e0015186610ece565b95506101c08701519250808384099150808283099150808284099250611a138661031d8c610200015186610ece565b95506101e08701519250808384099150808283099150808284099250611a428661031d8c610220015186610ece565b95506102008701519250808384099150808283099150808284099250611a718661031d8c610240015186610ece565b9550611a8e8661031d8c6101a001516118ff8b6102200151611d31565b9550611a9f868b6101c00151610f72565b9550806101c08801516101a0890151099250806101e08801518409925080610200880151840992508061022088015184099250611ae58661031d8c610260015186610ece565b9550611af48860000151611d31565b9450611b088661031d8960c0015188610ece565b955080600189510860a08a0151909350819080099150808284099250808386099450611b3c8661031d8960e0015188610ece565b9550808386099450611b578661031d89610100015188610ece565b9550808386099450611b728661031d89610120015188610ece565b9550808386099450611b8d8661031d89610140015188610ece565b9a9950505050505050505050565b6000806000805160206122eb8339815191529050600083602001519050600084604001519050600060019050606088015160808901516101a08901516102408a01518788898387098a868608088609945050506101c08901516102608a01518788898387098a868608088609945050506101e08901516102808a01518788898387098a868608088609945050506102008901516102a08a01518788898387098a8686080886099450505061022089015191506102c0890151868782898587080985099350505050875160208901518586868309870385089650508485838309860387089998505050505050505050565b60008060006000805160206122eb833981519152905060405160208152602080820152602060408201528460608201526002820360808201528160a08201526020600060c08360055afa925050600051925081611d2a5760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a20706f7720707265636f6d70696c65206661696c6564210000006044820152606401610269565b5050919050565b6000611d4b6000805160206122eb833981519152836122c8565b611d63906000805160206122eb833981519152612291565b92915050565b60405180606001604052806000815260200160008152602001611d8a611dcb565b905290565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b634e487b7160e01b600052604160045260246000fd5b6040516102e0810167ffffffffffffffff81118282101715611e2357611e23611de9565b60405290565b6040516102c0810167ffffffffffffffff81118282101715611e2357611e23611de9565b600060408284031215611e5f57600080fd5b6040516040810181811067ffffffffffffffff82111715611e8257611e82611de9565b604052823581526020928301359281019290925250919050565b600082601f830112611ead57600080fd5b60405160e0810181811067ffffffffffffffff82111715611ed057611ed0611de9565b6040528060e0840185811115611ee557600080fd5b845b81811015611eff578035835260209283019201611ee7565b509195945050505050565b60006104808284031215611f1d57600080fd5b611f25611dff565b9050611f318383611e4d565b8152611f408360408401611e4d565b6020820152611f528360808401611e4d565b6040820152611f648360c08401611e4d565b6060820152610100611f7884828501611e4d565b6080830152610140611f8c85828601611e4d565b60a0840152610180611fa086828701611e4d565b60c08501526101c0611fb487828801611e4d565b60e0860152610200611fc888828901611e4d565b858701526102409450611fdd88868901611e4d565b610120870152610280611ff289828a01611e4d565b858801526102c0945061200789868a01611e4d565b61016088015261201b896103008a01611e4d565b848801526103408801356101a0880152610360880135838801526103808801356101e08801526103a0880135828801526103c08801356102208801526103e08801358688015261040088013561026088015261042088013581880152505050506104408401356102a084015261046084013581840152505092915050565b6000806000838503610a608112156120b057600080fd5b610500808212156120c057600080fd5b6120c8611e29565b915085358252602086013560208301526120e58760408801611e4d565b60408301526120f78760808801611e4d565b60608301526121098760c08801611e4d565b608083015261010061211d88828901611e4d565b60a084015261014061213189828a01611e4d565b60c08501526101806121458a828b01611e4d565b60e08601526101c06121598b828c01611e4d565b84870152610200935061216e8b858c01611e4d565b6101208701526102406121838c828d01611e4d565b8488015261028093506121988c858d01611e4d565b6101608801526121ac8c6102c08d01611e4d565b838801526121be8c6103008d01611e4d565b6101a08801526121d28c6103408d01611e4d565b828801526121e48c6103808d01611e4d565b6101e08801526121f88c6103c08d01611e4d565b8588015261220a8c6104008d01611e4d565b61022088015261221e8c6104408d01611e4d565b81880152505050612233896104808a01611e4d565b6102608501526104c08801358185015250506104e08601356102a083015281945061226087828801611e9c565b93505050612272856105e08601611f0a565b90509250925092565b634e487b7160e01b600052603260045260246000fd5b81810381811115611d6357634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6000826122e557634e487b7160e01b600052601260045260246000fd5b50069056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a164736f6c6343000817000a", - "nonce": "0x792", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [], - "libraries": [], - "pending": [], - "returns": { - "contractAddress": { - "internal_type": "address", - "value": "0x9505E8B8546cC9015B2c015826d25821CC48C153" - } - }, - "timestamp": 1736545062, - "chain": 421614, - "commit": "9c97b7e0d" -} \ No newline at end of file diff --git a/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736600901.json b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736600901.json deleted file mode 100644 index 39964334a1..0000000000 --- a/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736600901.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "transactions": [ - { - "hash": null, - "transactionType": "CREATE", - "contractName": "PlonkVerifier", - "contractAddress": "0xb4f34879c2c3db50934e5069ce01fd5ece3aa051", - "function": null, - "arguments": null, - "transaction": { - "from": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "gas": "0x298398", - "value": "0x0", - "input": "0x6122a4610035600b8282823980515f1a60731461002957634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe7300000000000000000000000000000000000000003014608060405260043610610034575f3560e01c8063ce537a7714610038575b5f80fd5b61004b610046366004612033565b61005f565b604051901515815260200160405180910390f35b5f610069826100d0565b610079835f5b602002015161020b565b61008483600161006f565b61008f83600261006f565b61009a83600361006f565b6100a583600461006f565b6100b083600561006f565b6100bb83600661006f565b6100c6848484610271565b90505b9392505050565b80516100db90610465565b6100e88160200151610465565b6100f58160400151610465565b6101028160600151610465565b61010f8160800151610465565b61011c8160a00151610465565b6101298160c00151610465565b6101368160e00151610465565b610144816101000151610465565b610152816101200151610465565b610160816101400151610465565b61016e816101600151610465565b61017c816101800151610465565b61018a816101a0015161020b565b610198816101c0015161020b565b6101a6816101e0015161020b565b6101b481610200015161020b565b6101c281610220015161020b565b6101d081610240015161020b565b6101de81610260015161020b565b6101ec81610280015161020b565b6101fa816102a0015161020b565b610208816102c0015161020b565b50565b5f8051602061227883398151915281108061026d5760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c64000000000060448201526064015b60405180910390fd5b5050565b5f8360200151600714610297576040516320fa9d8960e11b815260040160405180910390fd5b5f6102a3858585610513565b90505f6102b2865f0151610a73565b90505f6102c4828460a0015188610e51565b90506102e160405180604001604052805f81526020015f81525090565b604080518082019091525f80825260208201526103158761016001516103108961018001518860e00151610eae565b610f4f565b91505f806103258b88878c610ff3565b91509150610336816103108461122b565b925061034f836103108b61016001518a60a00151610eae565b60a08801516040880151602001519194505f80516020612278833981519152918290820990508160e08a015182099050610392856103108d610180015184610eae565b94505f60405180608001604052807f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b081526020017f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c181526020017f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e5581526020017f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe4815250905061045387826104468961122b565b61044e6112c8565b611395565b9e9d5050505050505050505050505050565b805160208201515f917f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4791159015161561049e57505050565b82516020840151826003848585860985090883828309148382108484101616935050508161050e5760405162461bcd60e51b815260206004820152601760248201527f426e3235343a20696e76616c696420473120706f696e740000000000000000006044820152606401610264565b505050565b6105536040518061010001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f5f805160206122788339815191529050604051602081015f815260fe60e01b8152865160c01b6004820152602087015160c01b600c82015261028087015160208201526102a08701516040820152600160608201527f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a60808201527f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02560a08201527f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a60c08201527f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e88160e082015260e087015180516101008301526020810151610120830152506101008701518051610140830152602081015161016083015250610120870151805161018083015260208101516101a08301525061014087015180516101c083015260208101516101e083015250610160870151805161020083015260208101516102208301525061018087015180516102408301526020810151610260830152506101e0870151805161028083015260208101516102a08301525061020087015180516102c083015260208101516102e083015250610220870151805161030083015260208101516103208301525061024087015180516103408301526020810151610360830152506101a0870151805161038083015260208101516103a0830152506101c087015180516103c083015260208101516103e0830152506102608701518051610400830152602081015161042083015250604087015180516104408301526020810151610460830152506060870151805161048083015260208101516104a083015250608087015180516104c083015260208101516104e08301525060a0870151805161050083015260208101516105208301525060c08701518051610540830152602081015161056083015250855161058082015260208601516105a082015260408601516105c082015260608601516105e0820152608086015161060082015260a086015161062082015260c086015161064082015284518051610660830152602081015161068083015250602085015180516106a083015260208101516106c083015250604085015180516106e083015260208101516107008301525060608501518051610720830152602081015161074083015250608085015180516107608301526020810151610780830152505f82526107c08220825282825106606085015260208220825282825106608085015260a085015180518252602081015160208301525060608220808352838106855283818209848282099150806020870152508060408601525060c085015180518252602081015160208301525060e085015180516040830152602081015160608301525061010085015180516080830152602081015160a083015250610120850151805160c0830152602081015160e0830152506101408501518051610100830152602081015161012083015250610160822082528282510660a08501526101a085015181526101c085015160208201526101e085015160408201526102008501516060820152610220850151608082015261024085015160a082015261026085015160c082015261028085015160e08201526102a08501516101008201526102c0850151610120820152610160822082528282510660c08501526101608501518051825260208101516020830152506101808501518051604083015260208101516060830152505060a0812082810660e08501525050509392505050565b610a7b611d0e565b816201000003610bba576040518060600160405280601081526020017f30641e0e92bebef818268d663bcad6dbcfd6c0149170f6d7d350b1b1fa6c100181526020016040518060e00160405280600181526020017eeeb2cb5981ed45649abebde081dcff16c8601de4347e7dd1628ba2daac43b781526020017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb81526020017f086812a00ac43ea801669c640171203c41a496671bfbc065ac8db24d52cf31e581526020017f2d965651cdd9e4811f4e51b80ddca8a8b4a93ee17420aae6adaa01c2617c6e8581526020017f12597a56c2e438620b9041b98992ae0d4e705b780057bf7766a2767cece16e1d81526020017f02d94117cd17bcf1290fd67c01155dd40807857dff4a5a0b4dc67befa8aa34fd8152508152509050919050565b816210000003610cfa576040518060600160405280601481526020017f30644b6c9c4a72169e4daa317d25f04512ae15c53b34e8f5acd8e155d0a6c10181526020016040518060e00160405280600181526020017f26125da10a0ed06327508aba06d1e303ac616632dbed349f53422da95333785781526020017f2260e724844bca5251829353968e4915305258418357473a5c1d597f613f6cbd81526020017f2087ea2cd664278608fb0ebdb820907f598502c81b6690c185e2bf15cb935f4281526020017f19ddbcaf3a8d46c15c0176fbb5b95e4dc57088ff13f4d1bd84c6bfa57dcdc0e081526020017f05a2c85cfc591789605cae818e37dd4161eef9aa666bec6fe4288d09e6d2341881526020017f11f70e5363258ff4f0d716a653e1dc41f1c64484d7f4b6e219d6377614a3905c8152508152509050919050565b81602003610e38576040518060600160405280600581526020017f2ee12bff4a2813286a8dc388cd754d9a3ef2490635eba50cb9c2e5e75080000181526020016040518060e00160405280600181526020017f09c532c6306b93d29678200d47c0b2a99c18d51b838eeb1d3eed4c533bb512d081526020017f21082ca216cbbf4e1c6e4f4594dd508c996dfbe1174efb98b11509c6e306460b81526020017f1277ae6415f0ef18f2ba5fb162c39eb7311f386e2d26d64401f4a25da77c253b81526020017f2b337de1c8c14f22ec9b9e2f96afef3652627366f8170a0a948dad4ac1bd5e8081526020017f2fbd4dd2976be55d1a163aa9820fb88dfac5ddce77e1872e90632027327a5ebe81526020017f107aab49e65a67f9da9cd2abf78be38bd9dc1d5db39f81de36bcfa5b4b0390438152508152509050919050565b60405163e2ef09e560e01b815260040160405180910390fd5b610e7260405180606001604052805f81526020015f81526020015f81525090565b610e7c8484611475565b808252610e8c90859085906114c6565b60208201528051610ea290859084908690611535565b60408201529392505050565b604080518082019091525f8082526020820152610ec9611d32565b8351815260208085015190820152604081018390525f60608360808460076107d05a03fa90508080610ef9575f80fd5b5080610f475760405162461bcd60e51b815260206004820152601960248201527f426e3235343a207363616c6172206d756c206661696c656421000000000000006044820152606401610264565b505092915050565b604080518082019091525f8082526020820152610f6a611d50565b8351815260208085015181830152835160408301528301516060808301919091525f908360c08460066107d05a03fa90508080610fa5575f80fd5b5080610f475760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a2067726f7570206164646974696f6e206661696c6564210000006044820152606401610264565b604080518082019091525f8082526020820152604080518082019091525f80825260208201525f61102687878787611683565b90505f805160206122788339815191525f611042888789611b4d565b905061104e8183612225565b60c08901516101a08801519192509081908490819083098408925061107a856103108a5f015184610eae565b955083828209905083846101c08a01518309840892506110a2866103108a6020015184610eae565b955083828209905083846101e08a01518309840892506110ca866103108a6040015184610eae565b955083828209905083846102008a01518309840892506110f2866103108a6060015184610eae565b955083828209905083846102208a015183098408925061111a866103108a6080015184610eae565b955083828209905083846102408a0151830984089250611142866103108d6040015184610eae565b955083828209905083846102608a015183098408925061116a866103108d6060015184610eae565b955083828209905083846102808a0151830984089250611192866103108d6080015184610eae565b955083828209905083846102a08a01518309840892506111ba866103108d60a0015184610eae565b95505f8a60e00151905084856102c08b01518309850893506111e4876103108b60a0015184610eae565b965061121a6112146040805180820182525f80825260209182015281518083019092526001825260029082015290565b85610eae565b975050505050505094509492505050565b604080518082019091525f8082526020820152815160208301511590151615611252575090565b6040518060400160405280835f015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516112969190612258565b6112c0907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47612225565b905292915050565b6112ef60405180608001604052805f81526020015f81526020015f81526020015f81525090565b60405180608001604052807f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed81526020017f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c281526020017f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa81526020017f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b815250905090565b5f805f6040518751815260208801516020820152602087015160408201528651606082015260608701516080820152604087015160a0820152855160c0820152602086015160e0820152602085015161010082015284516101208201526060850151610140820152604085015161016082015260205f6101808360085afa9150505f519150806114675760405162461bcd60e51b815260206004820152601c60248201527f426e3235343a2050616972696e6720636865636b206661696c656421000000006044820152606401610264565b50151590505b949350505050565b81515f905f80516020612278833981519152908380156114b6578493505f5b828110156114aa57838586099450600101611494565b506001840393506114bd565b6001830393505b50505092915050565b5f826001036114d7575060016100c9565b815f036114e557505f6100c9565b60208401515f80516020612278833981519152905f908281860990508580156115135760018703925061151a565b6001840392505b5061152482611c38565b915082828209979650505050505050565b5f5f805160206122788339815191528282036115ae5760015f5b60078110156115a3578186036115805786816007811061157157611571612211565b6020020151935050505061146d565b828061158e5761158e612244565b6040890151602001518309915060010161154f565b505f9250505061146d565b6115b6611d6e565b6040870151600160c0838101828152920190805b60078110156115f75760208403935085868a85518903088309808552601f199093019291506001016115ca565b505050505f805f90506001838960408c01515f5b600781101561164b578882518a85518c88518a0909098981880896505088898d84518c03088609945060209384019392830192919091019060010161160b565b50505050809250505f61165d83611c38565b905060208a015185818909965050848187099550848287099a9950505050505050505050565b604080518082019091525f80825260208201525f805f805f5f80516020612278833981519152905060808901518160208a015160208c0151099550895194508160a08b015160608c0151099350816101a089015185089250818184089250818584099450817f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a85099250816101c089015184089250818184089250818584099450817f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02585099250816101e089015184089250818184089250818584099450817f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a850992508161020089015184089250818184089250818584099450817f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e881850992508161022089015184089250818184089250508084830993508084860894506117f08760a0015186610eae565b9550885160608a015160808b0151838284099750836102c08b015189099750836102408b015183099550836101a08b015187089550838187089550838689099750836102608b015183099550836101c08b015187089550838187089550838689099750836102808b015183099550836101e08b015187089550838187089550838689099750836102a08b015183099550836102008b0151870895508381870895505050508083860994506118b7866103108c60c0015188856118b29190612225565b610eae565b95506118d0866103108c60e001518a6101a00151610eae565b95506118ea866103108c61010001518a6101c00151610eae565b9550611904866103108c61012001518a6101e00151610eae565b955061191e866103108c61014001518a6102000151610eae565b9550806101c08801516101a0890151099250611943866103108c610160015186610eae565b9550806102008801516101e0890151099250611968866103108c610180015186610eae565b95506101a08701519250808384099150808283099150808284099250611997866103108c6101e0015186610eae565b95506101c087015192508083840991508082830991508082840992506119c6866103108c610200015186610eae565b95506101e087015192508083840991508082830991508082840992506119f5866103108c610220015186610eae565b95506102008701519250808384099150808283099150808284099250611a24866103108c610240015186610eae565b9550611a41866103108c6101a001516118b28b6102200151611cd9565b9550611a52868b6101c00151610f4f565b9550806101c08801516101a0890151099250806101e08801518409925080610200880151840992508061022088015184099250611a98866103108c610260015186610eae565b9550611aa6885f0151611cd9565b9450611aba866103108960c0015188610eae565b955080600189510860a08a0151909350819080099150808284099250808386099450611aee866103108960e0015188610eae565b9550808386099450611b098661031089610100015188610eae565b9550808386099450611b248661031089610120015188610eae565b9550808386099450611b3f8661031089610140015188610eae565b9a9950505050505050505050565b5f805f8051602061227883398151915290505f836020015190505f846040015190505f60019050606088015160808901516101a08901516102408a01518788898387098a868608088609945050506101c08901516102608a01518788898387098a868608088609945050506101e08901516102808a01518788898387098a868608088609945050506102008901516102a08a01518788898387098a8686080886099450505061022089015191506102c0890151868782898587080985099350505050875160208901518586868309870385089650508485838309860387089998505050505050505050565b5f805f5f80516020612278833981519152905060405160208152602080820152602060408201528460608201526002820360808201528160a082015260205f60c08360055afa9250505f51925081611cd25760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a20706f7720707265636f6d70696c65206661696c6564210000006044820152606401610264565b5050919050565b5f611cf15f8051602061227883398151915283612258565b611d08905f80516020612278833981519152612225565b92915050565b60405180606001604052805f81526020015f8152602001611d2d611d6e565b905290565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b634e487b7160e01b5f52604160045260245ffd5b6040516102e0810167ffffffffffffffff81118282101715611dc457611dc4611d8c565b60405290565b6040516102c0810167ffffffffffffffff81118282101715611dc457611dc4611d8c565b5f60408284031215611dfe575f80fd5b6040516040810181811067ffffffffffffffff82111715611e2157611e21611d8c565b604052823581526020928301359281019290925250919050565b5f82601f830112611e4a575f80fd5b60405160e0810181811067ffffffffffffffff82111715611e6d57611e6d611d8c565b6040528060e0840185811115611e81575f80fd5b845b81811015611e9b578035835260209283019201611e83565b509195945050505050565b5f6104808284031215611eb7575f80fd5b611ebf611da0565b9050611ecb8383611dee565b8152611eda8360408401611dee565b6020820152611eec8360808401611dee565b6040820152611efe8360c08401611dee565b6060820152610100611f1284828501611dee565b6080830152610140611f2685828601611dee565b60a0840152610180611f3a86828701611dee565b60c08501526101c0611f4e87828801611dee565b60e0860152610200611f6288828901611dee565b858701526102409450611f7788868901611dee565b610120870152610280611f8c89828a01611dee565b858801526102c09450611fa189868a01611dee565b610160880152611fb5896103008a01611dee565b848801526103408801356101a0880152610360880135838801526103808801356101e08801526103a0880135828801526103c08801356102208801526103e08801358688015261040088013561026088015261042088013581880152505050506104408401356102a084015261046084013581840152505092915050565b5f805f838503610a60811215612047575f80fd5b61050080821215612056575f80fd5b61205e611dca565b9150853582526020860135602083015261207b8760408801611dee565b604083015261208d8760808801611dee565b606083015261209f8760c08801611dee565b60808301526101006120b388828901611dee565b60a08401526101406120c789828a01611dee565b60c08501526101806120db8a828b01611dee565b60e08601526101c06120ef8b828c01611dee565b8487015261020093506121048b858c01611dee565b6101208701526102406121198c828d01611dee565b84880152610280935061212e8c858d01611dee565b6101608801526121428c6102c08d01611dee565b838801526121548c6103008d01611dee565b6101a08801526121688c6103408d01611dee565b8288015261217a8c6103808d01611dee565b6101e088015261218e8c6103c08d01611dee565b858801526121a08c6104008d01611dee565b6102208801526121b48c6104408d01611dee565b818801525050506121c9896104808a01611dee565b6102608501526104c08801358185015250506104e08601356102a08301528194506121f687828801611e3b565b93505050612208856105e08601611ea6565b90509250925092565b634e487b7160e01b5f52603260045260245ffd5b81810381811115611d0857634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b5f8261227257634e487b7160e01b5f52601260045260245ffd5b50069056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a164736f6c6343000817000a", - "nonce": "0x794", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [], - "libraries": [], - "pending": [], - "returns": { - "contractAddress": { - "internal_type": "address", - "value": "0xB4f34879C2c3db50934E5069CE01fD5EcE3Aa051" - } - }, - "timestamp": 1736600901, - "chain": 421614, - "commit": "9c97b7e0d" -} \ No newline at end of file diff --git a/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736601342.json b/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736601342.json deleted file mode 100644 index 8e4a078d77..0000000000 --- a/contracts/broadcast/PlonkVerifier.s.sol/421614/run-1736601342.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "transactions": [ - { - "hash": "0x67b99a3df6529c18cfd17320114dc86e63579c8a6c2717f819de23e4e51a21c5", - "transactionType": "CREATE", - "contractName": "PlonkVerifier", - "contractAddress": "0x5f50c15468edad51e987e8e4c814be8453c84de4", - "function": null, - "arguments": null, - "transaction": { - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "gas": "0x290473", - "value": "0x0", - "input": "0x6122a4610035600b8282823980515f1a60731461002957634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe7300000000000000000000000000000000000000003014608060405260043610610034575f3560e01c8063ce537a7714610038575b5f80fd5b61004b610046366004612033565b61005f565b604051901515815260200160405180910390f35b5f610069826100d0565b610079835f5b602002015161020b565b61008483600161006f565b61008f83600261006f565b61009a83600361006f565b6100a583600461006f565b6100b083600561006f565b6100bb83600661006f565b6100c6848484610271565b90505b9392505050565b80516100db90610465565b6100e88160200151610465565b6100f58160400151610465565b6101028160600151610465565b61010f8160800151610465565b61011c8160a00151610465565b6101298160c00151610465565b6101368160e00151610465565b610144816101000151610465565b610152816101200151610465565b610160816101400151610465565b61016e816101600151610465565b61017c816101800151610465565b61018a816101a0015161020b565b610198816101c0015161020b565b6101a6816101e0015161020b565b6101b481610200015161020b565b6101c281610220015161020b565b6101d081610240015161020b565b6101de81610260015161020b565b6101ec81610280015161020b565b6101fa816102a0015161020b565b610208816102c0015161020b565b50565b5f8051602061227883398151915281108061026d5760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c64000000000060448201526064015b60405180910390fd5b5050565b5f8360200151600714610297576040516320fa9d8960e11b815260040160405180910390fd5b5f6102a3858585610513565b90505f6102b2865f0151610a73565b90505f6102c4828460a0015188610e51565b90506102e160405180604001604052805f81526020015f81525090565b604080518082019091525f80825260208201526103158761016001516103108961018001518860e00151610eae565b610f4f565b91505f806103258b88878c610ff3565b91509150610336816103108461122b565b925061034f836103108b61016001518a60a00151610eae565b60a08801516040880151602001519194505f80516020612278833981519152918290820990508160e08a015182099050610392856103108d610180015184610eae565b94505f60405180608001604052807f0118c4d5b837bcc2bc89b5b398b5974e9f5944073b32078b7e231fec938883b081526020017f260e01b251f6f1c7e7ff4e580791dee8ea51d87a358e038b4efe30fac09383c181526020017f22febda3c0c0632a56475b4214e5615e11e6dd3f96e6cea2854a87d4dacc5e5581526020017f04fc6369f7110fe3d25156c1bb9a72859cf2a04641f99ba4ee413c80da6a5fe4815250905061045387826104468961122b565b61044e6112c8565b611395565b9e9d5050505050505050505050505050565b805160208201515f917f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4791159015161561049e57505050565b82516020840151826003848585860985090883828309148382108484101616935050508161050e5760405162461bcd60e51b815260206004820152601760248201527f426e3235343a20696e76616c696420473120706f696e740000000000000000006044820152606401610264565b505050565b6105536040518061010001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b5f5f805160206122788339815191529050604051602081015f815260fe60e01b8152865160c01b6004820152602087015160c01b600c82015261028087015160208201526102a08701516040820152600160608201527f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a60808201527f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02560a08201527f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a60c08201527f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e88160e082015260e087015180516101008301526020810151610120830152506101008701518051610140830152602081015161016083015250610120870151805161018083015260208101516101a08301525061014087015180516101c083015260208101516101e083015250610160870151805161020083015260208101516102208301525061018087015180516102408301526020810151610260830152506101e0870151805161028083015260208101516102a08301525061020087015180516102c083015260208101516102e083015250610220870151805161030083015260208101516103208301525061024087015180516103408301526020810151610360830152506101a0870151805161038083015260208101516103a0830152506101c087015180516103c083015260208101516103e0830152506102608701518051610400830152602081015161042083015250604087015180516104408301526020810151610460830152506060870151805161048083015260208101516104a083015250608087015180516104c083015260208101516104e08301525060a0870151805161050083015260208101516105208301525060c08701518051610540830152602081015161056083015250855161058082015260208601516105a082015260408601516105c082015260608601516105e0820152608086015161060082015260a086015161062082015260c086015161064082015284518051610660830152602081015161068083015250602085015180516106a083015260208101516106c083015250604085015180516106e083015260208101516107008301525060608501518051610720830152602081015161074083015250608085015180516107608301526020810151610780830152505f82526107c08220825282825106606085015260208220825282825106608085015260a085015180518252602081015160208301525060608220808352838106855283818209848282099150806020870152508060408601525060c085015180518252602081015160208301525060e085015180516040830152602081015160608301525061010085015180516080830152602081015160a083015250610120850151805160c0830152602081015160e0830152506101408501518051610100830152602081015161012083015250610160822082528282510660a08501526101a085015181526101c085015160208201526101e085015160408201526102008501516060820152610220850151608082015261024085015160a082015261026085015160c082015261028085015160e08201526102a08501516101008201526102c0850151610120820152610160822082528282510660c08501526101608501518051825260208101516020830152506101808501518051604083015260208101516060830152505060a0812082810660e08501525050509392505050565b610a7b611d0e565b816201000003610bba576040518060600160405280601081526020017f30641e0e92bebef818268d663bcad6dbcfd6c0149170f6d7d350b1b1fa6c100181526020016040518060e00160405280600181526020017eeeb2cb5981ed45649abebde081dcff16c8601de4347e7dd1628ba2daac43b781526020017f2d1ba66f5941dc91017171fa69ec2bd0022a2a2d4115a009a93458fd4e26ecfb81526020017f086812a00ac43ea801669c640171203c41a496671bfbc065ac8db24d52cf31e581526020017f2d965651cdd9e4811f4e51b80ddca8a8b4a93ee17420aae6adaa01c2617c6e8581526020017f12597a56c2e438620b9041b98992ae0d4e705b780057bf7766a2767cece16e1d81526020017f02d94117cd17bcf1290fd67c01155dd40807857dff4a5a0b4dc67befa8aa34fd8152508152509050919050565b816210000003610cfa576040518060600160405280601481526020017f30644b6c9c4a72169e4daa317d25f04512ae15c53b34e8f5acd8e155d0a6c10181526020016040518060e00160405280600181526020017f26125da10a0ed06327508aba06d1e303ac616632dbed349f53422da95333785781526020017f2260e724844bca5251829353968e4915305258418357473a5c1d597f613f6cbd81526020017f2087ea2cd664278608fb0ebdb820907f598502c81b6690c185e2bf15cb935f4281526020017f19ddbcaf3a8d46c15c0176fbb5b95e4dc57088ff13f4d1bd84c6bfa57dcdc0e081526020017f05a2c85cfc591789605cae818e37dd4161eef9aa666bec6fe4288d09e6d2341881526020017f11f70e5363258ff4f0d716a653e1dc41f1c64484d7f4b6e219d6377614a3905c8152508152509050919050565b81602003610e38576040518060600160405280600581526020017f2ee12bff4a2813286a8dc388cd754d9a3ef2490635eba50cb9c2e5e75080000181526020016040518060e00160405280600181526020017f09c532c6306b93d29678200d47c0b2a99c18d51b838eeb1d3eed4c533bb512d081526020017f21082ca216cbbf4e1c6e4f4594dd508c996dfbe1174efb98b11509c6e306460b81526020017f1277ae6415f0ef18f2ba5fb162c39eb7311f386e2d26d64401f4a25da77c253b81526020017f2b337de1c8c14f22ec9b9e2f96afef3652627366f8170a0a948dad4ac1bd5e8081526020017f2fbd4dd2976be55d1a163aa9820fb88dfac5ddce77e1872e90632027327a5ebe81526020017f107aab49e65a67f9da9cd2abf78be38bd9dc1d5db39f81de36bcfa5b4b0390438152508152509050919050565b60405163e2ef09e560e01b815260040160405180910390fd5b610e7260405180606001604052805f81526020015f81526020015f81525090565b610e7c8484611475565b808252610e8c90859085906114c6565b60208201528051610ea290859084908690611535565b60408201529392505050565b604080518082019091525f8082526020820152610ec9611d32565b8351815260208085015190820152604081018390525f60608360808460076107d05a03fa90508080610ef9575f80fd5b5080610f475760405162461bcd60e51b815260206004820152601960248201527f426e3235343a207363616c6172206d756c206661696c656421000000000000006044820152606401610264565b505092915050565b604080518082019091525f8082526020820152610f6a611d50565b8351815260208085015181830152835160408301528301516060808301919091525f908360c08460066107d05a03fa90508080610fa5575f80fd5b5080610f475760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a2067726f7570206164646974696f6e206661696c6564210000006044820152606401610264565b604080518082019091525f8082526020820152604080518082019091525f80825260208201525f61102687878787611683565b90505f805160206122788339815191525f611042888789611b4d565b905061104e8183612225565b60c08901516101a08801519192509081908490819083098408925061107a856103108a5f015184610eae565b955083828209905083846101c08a01518309840892506110a2866103108a6020015184610eae565b955083828209905083846101e08a01518309840892506110ca866103108a6040015184610eae565b955083828209905083846102008a01518309840892506110f2866103108a6060015184610eae565b955083828209905083846102208a015183098408925061111a866103108a6080015184610eae565b955083828209905083846102408a0151830984089250611142866103108d6040015184610eae565b955083828209905083846102608a015183098408925061116a866103108d6060015184610eae565b955083828209905083846102808a0151830984089250611192866103108d6080015184610eae565b955083828209905083846102a08a01518309840892506111ba866103108d60a0015184610eae565b95505f8a60e00151905084856102c08b01518309850893506111e4876103108b60a0015184610eae565b965061121a6112146040805180820182525f80825260209182015281518083019092526001825260029082015290565b85610eae565b975050505050505094509492505050565b604080518082019091525f8082526020820152815160208301511590151615611252575090565b6040518060400160405280835f015181526020017f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4784602001516112969190612258565b6112c0907f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd47612225565b905292915050565b6112ef60405180608001604052805f81526020015f81526020015f81526020015f81525090565b60405180608001604052807f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed81526020017f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c281526020017f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa81526020017f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b815250905090565b5f805f6040518751815260208801516020820152602087015160408201528651606082015260608701516080820152604087015160a0820152855160c0820152602086015160e0820152602085015161010082015284516101208201526060850151610140820152604085015161016082015260205f6101808360085afa9150505f519150806114675760405162461bcd60e51b815260206004820152601c60248201527f426e3235343a2050616972696e6720636865636b206661696c656421000000006044820152606401610264565b50151590505b949350505050565b81515f905f80516020612278833981519152908380156114b6578493505f5b828110156114aa57838586099450600101611494565b506001840393506114bd565b6001830393505b50505092915050565b5f826001036114d7575060016100c9565b815f036114e557505f6100c9565b60208401515f80516020612278833981519152905f908281860990508580156115135760018703925061151a565b6001840392505b5061152482611c38565b915082828209979650505050505050565b5f5f805160206122788339815191528282036115ae5760015f5b60078110156115a3578186036115805786816007811061157157611571612211565b6020020151935050505061146d565b828061158e5761158e612244565b6040890151602001518309915060010161154f565b505f9250505061146d565b6115b6611d6e565b6040870151600160c0838101828152920190805b60078110156115f75760208403935085868a85518903088309808552601f199093019291506001016115ca565b505050505f805f90506001838960408c01515f5b600781101561164b578882518a85518c88518a0909098981880896505088898d84518c03088609945060209384019392830192919091019060010161160b565b50505050809250505f61165d83611c38565b905060208a015185818909965050848187099550848287099a9950505050505050505050565b604080518082019091525f80825260208201525f805f805f5f80516020612278833981519152905060808901518160208a015160208c0151099550895194508160a08b015160608c0151099350816101a089015185089250818184089250818584099450817f2f8dd1f1a7583c42c4e12a44e110404c73ca6c94813f85835da4fb7bb1301d4a85099250816101c089015184089250818184089250818584099450817f1ee678a0470a75a6eaa8fe837060498ba828a3703b311d0f77f010424afeb02585099250816101e089015184089250818184089250818584099450817f2042a587a90c187b0a087c03e29c968b950b1db26d5c82d666905a6895790c0a850992508161020089015184089250818184089250818584099450817f2e2b91456103698adf57b799969dea1c8f739da5d8d40dd3eb9222db7c81e881850992508161022089015184089250818184089250508084830993508084860894506117f08760a0015186610eae565b9550885160608a015160808b0151838284099750836102c08b015189099750836102408b015183099550836101a08b015187089550838187089550838689099750836102608b015183099550836101c08b015187089550838187089550838689099750836102808b015183099550836101e08b015187089550838187089550838689099750836102a08b015183099550836102008b0151870895508381870895505050508083860994506118b7866103108c60c0015188856118b29190612225565b610eae565b95506118d0866103108c60e001518a6101a00151610eae565b95506118ea866103108c61010001518a6101c00151610eae565b9550611904866103108c61012001518a6101e00151610eae565b955061191e866103108c61014001518a6102000151610eae565b9550806101c08801516101a0890151099250611943866103108c610160015186610eae565b9550806102008801516101e0890151099250611968866103108c610180015186610eae565b95506101a08701519250808384099150808283099150808284099250611997866103108c6101e0015186610eae565b95506101c087015192508083840991508082830991508082840992506119c6866103108c610200015186610eae565b95506101e087015192508083840991508082830991508082840992506119f5866103108c610220015186610eae565b95506102008701519250808384099150808283099150808284099250611a24866103108c610240015186610eae565b9550611a41866103108c6101a001516118b28b6102200151611cd9565b9550611a52868b6101c00151610f4f565b9550806101c08801516101a0890151099250806101e08801518409925080610200880151840992508061022088015184099250611a98866103108c610260015186610eae565b9550611aa6885f0151611cd9565b9450611aba866103108960c0015188610eae565b955080600189510860a08a0151909350819080099150808284099250808386099450611aee866103108960e0015188610eae565b9550808386099450611b098661031089610100015188610eae565b9550808386099450611b248661031089610120015188610eae565b9550808386099450611b3f8661031089610140015188610eae565b9a9950505050505050505050565b5f805f8051602061227883398151915290505f836020015190505f846040015190505f60019050606088015160808901516101a08901516102408a01518788898387098a868608088609945050506101c08901516102608a01518788898387098a868608088609945050506101e08901516102808a01518788898387098a868608088609945050506102008901516102a08a01518788898387098a8686080886099450505061022089015191506102c0890151868782898587080985099350505050875160208901518586868309870385089650508485838309860387089998505050505050505050565b5f805f5f80516020612278833981519152905060405160208152602080820152602060408201528460608201526002820360808201528160a082015260205f60c08360055afa9250505f51925081611cd25760405162461bcd60e51b815260206004820152601d60248201527f426e3235343a20706f7720707265636f6d70696c65206661696c6564210000006044820152606401610264565b5050919050565b5f611cf15f8051602061227883398151915283612258565b611d08905f80516020612278833981519152612225565b92915050565b60405180606001604052805f81526020015f8152602001611d2d611d6e565b905290565b60405180606001604052806003906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b6040518060e001604052806007906020820280368337509192915050565b634e487b7160e01b5f52604160045260245ffd5b6040516102e0810167ffffffffffffffff81118282101715611dc457611dc4611d8c565b60405290565b6040516102c0810167ffffffffffffffff81118282101715611dc457611dc4611d8c565b5f60408284031215611dfe575f80fd5b6040516040810181811067ffffffffffffffff82111715611e2157611e21611d8c565b604052823581526020928301359281019290925250919050565b5f82601f830112611e4a575f80fd5b60405160e0810181811067ffffffffffffffff82111715611e6d57611e6d611d8c565b6040528060e0840185811115611e81575f80fd5b845b81811015611e9b578035835260209283019201611e83565b509195945050505050565b5f6104808284031215611eb7575f80fd5b611ebf611da0565b9050611ecb8383611dee565b8152611eda8360408401611dee565b6020820152611eec8360808401611dee565b6040820152611efe8360c08401611dee565b6060820152610100611f1284828501611dee565b6080830152610140611f2685828601611dee565b60a0840152610180611f3a86828701611dee565b60c08501526101c0611f4e87828801611dee565b60e0860152610200611f6288828901611dee565b858701526102409450611f7788868901611dee565b610120870152610280611f8c89828a01611dee565b858801526102c09450611fa189868a01611dee565b610160880152611fb5896103008a01611dee565b848801526103408801356101a0880152610360880135838801526103808801356101e08801526103a0880135828801526103c08801356102208801526103e08801358688015261040088013561026088015261042088013581880152505050506104408401356102a084015261046084013581840152505092915050565b5f805f838503610a60811215612047575f80fd5b61050080821215612056575f80fd5b61205e611dca565b9150853582526020860135602083015261207b8760408801611dee565b604083015261208d8760808801611dee565b606083015261209f8760c08801611dee565b60808301526101006120b388828901611dee565b60a08401526101406120c789828a01611dee565b60c08501526101806120db8a828b01611dee565b60e08601526101c06120ef8b828c01611dee565b8487015261020093506121048b858c01611dee565b6101208701526102406121198c828d01611dee565b84880152610280935061212e8c858d01611dee565b6101608801526121428c6102c08d01611dee565b838801526121548c6103008d01611dee565b6101a08801526121688c6103408d01611dee565b8288015261217a8c6103808d01611dee565b6101e088015261218e8c6103c08d01611dee565b858801526121a08c6104008d01611dee565b6102208801526121b48c6104408d01611dee565b818801525050506121c9896104808a01611dee565b6102608501526104c08801358185015250506104e08601356102a08301528194506121f687828801611e3b565b93505050612208856105e08601611ea6565b90509250925092565b634e487b7160e01b5f52603260045260245ffd5b81810381811115611d0857634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52601260045260245ffd5b5f8261227257634e487b7160e01b5f52601260045260245ffd5b50069056fe30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001a164736f6c6343000817000a", - "nonce": "0x1e", - "chainId": "0x66eee" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "status": "0x1", - "cumulativeGasUsed": "0x22a7cb", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x67b99a3df6529c18cfd17320114dc86e63579c8a6c2717f819de23e4e51a21c5", - "transactionIndex": "0x5", - "blockHash": "0xf37c135d31cb2f4cc34532eb3336967c42fafa564de035ccb86e7841cd7ff92b", - "blockNumber": "0x6cef6a0", - "gasUsed": "0x1f0392", - "effectiveGasPrice": "0xa6bffd0", - "from": "0xb22167f12c232e825d26ffbb3780e024c506664e", - "to": null, - "contractAddress": "0x5f50c15468edad51e987e8e4c814be8453c84de4", - "gasUsedForL1": "0xf348", - "l1BlockNumber": "0x71f552" - } - ], - "libraries": [], - "pending": [], - "returns": { - "contractAddress": { - "internal_type": "address", - "value": "0x5F50C15468eDAD51e987E8E4C814be8453c84de4" - } - }, - "timestamp": 1736601342, - "chain": 421614, - "commit": "9c97b7e0d" -} \ No newline at end of file diff --git a/contracts/src/LightClient.sol b/contracts/src/LightClient.sol deleted file mode 100644 index 0cddb9be8f..0000000000 --- a/contracts/src/LightClient.sol +++ /dev/null @@ -1,473 +0,0 @@ -// SPDX-License-Identifier: UNLICENSED - -pragma solidity ^0.8.0; - -import { OwnableUpgradeable } from - "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; -import { Initializable } from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; -import { UUPSUpgradeable } from - "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; - -import { BN254 } from "bn254/BN254.sol"; -import { IPlonkVerifier } from "./interfaces/IPlonkVerifier.sol"; -import { PlonkVerifier } from "./libraries/PlonkVerifier.sol"; -import { LightClientStateUpdateVK as VkLib } from "./libraries/LightClientStateUpdateVK.sol"; - -/// @title Light Client Contract -/// @notice This contract serves as an always-on client -/// that verifies HotShot's state (Espresso's consensus state) which can be used by -/// Rollup contracts on L1 (Ethereum). -/// This state is submitted by any state-prover with evidence which is -/// a SNARK proof that proves consensus. -/// This contract also keeps track of the current epoch. -/// For this version, the epoch is not used.
-/// The light client state primarily consists of:
-/// - the merkle root of finalized block commitments,
-/// - the fee ledger commitment and
-/// - the active stake table commitment
-/// @dev You can use this contract to keep track of its finalized states in safe, -/// authenticated ways. -contract LightClient is Initializable, OwnableUpgradeable, UUPSUpgradeable { - // === Events === - // - /// @notice upgrade event when the proxy updates the implementation it's pointing to - event Upgrade(address implementation); - - /// @notice when a permissioned prover is set, this event is emitted. - event PermissionedProverRequired(address permissionedProver); - - /// @notice when the permissioned prover is unset, this event is emitted. - event PermissionedProverNotRequired(); - - // === System Parameters === - // - // === Storage === - // - /// @notice genesis stake commitment - StakeTableState public genesisStakeTableState; - - /// @notice genesis block commitment - LightClientState public genesisState; - - /// @notice Finalized HotShot's light client state - LightClientState public finalizedState; - - /// @notice the address of the prover that can call the newFinalizedState function when the - /// contract is in permissioned prover mode. This address is address(0) when the contract is - /// not in permissioned prover mode - address public permissionedProver; - - /// @notice Max number of seconds worth of state commitments to record based on this block - /// timestamp - uint32 public stateHistoryRetentionPeriod; - - /// @notice index of first block in block state series - ///@dev use this instead of index 0 since old states would be set to zero to keep storage costs - /// constant to stateHistoryRetentionPeriod - uint64 public stateHistoryFirstIndex; - - /// @notice an array to store the L1 block heights, HotShot Block Heights and their respective - /// state history - /// commitments - StateHistoryCommitment[] public stateHistoryCommitments; - - // === Data Structure === - // - /// @notice The finalized HotShot state (as the digest of the entire HotShot state) - /// @param viewNum The latest view number of the finalized HotShot chain - /// @param blockHeight The block height of the latest finalized block - /// @param blockCommRoot The merkle root of historical block commitments (BN254::ScalarField) - struct LightClientState { - uint64 viewNum; - uint64 blockHeight; - BN254.ScalarField blockCommRoot; - } - - /// @notice The finalized HotShot Stake state (as the digest of the entire HotShot state) - /// @param threshold The (stake-weighted) quorum threshold for a QC to be considered as valid - /// @param blsKeyComm The commitment to the BlsVerKey column of the stake table - /// @param schnorrKeyComm The commitment to the SchnorrVerKey column of the table - /// @param amountComm The commitment to the stake amount column of the stake table - struct StakeTableState { - uint256 threshold; - BN254.ScalarField blsKeyComm; - BN254.ScalarField schnorrKeyComm; - BN254.ScalarField amountComm; - } - - /// @notice Simplified HotShot commitment struct - /// @param l1BlockHeight the block height of l1 when this state update was stored - /// @param l1BlockTimestamp the block timestamp of l1 when this state update was stored - /// @param hotShotBlockHeight The block height of the latest finalized HotShot block - /// @param hotShotBlockCommRoot The merkle root of historical block commitments - /// (BN254::ScalarField) - struct StateHistoryCommitment { - uint64 l1BlockHeight; - uint64 l1BlockTimestamp; - uint64 hotShotBlockHeight; - BN254.ScalarField hotShotBlockCommRoot; - } - - /// @notice Event that a new finalized state has been successfully verified and updated - event NewState( - uint64 indexed viewNum, uint64 indexed blockHeight, BN254.ScalarField blockCommRoot - ); - - /// @notice The state is outdated and older than currently known `finalizedState` - error OutdatedState(); - /// @notice Invalid user inputs: wrong format or non-sensible arguments - error InvalidArgs(); - /// @notice Wrong plonk proof or public inputs. - error InvalidProof(); - /// @notice Wrong stake table used, should match `finalizedState` - error WrongStakeTableUsed(); - /// @notice Invalid address - error InvalidAddress(); - /// @notice Only a permissioned prover can perform this action - error ProverNotPermissioned(); - /// @notice If the same mode or prover is sent to the function, then no change is required - error NoChangeRequired(); - /// @notice Invalid L1 Block for checking Light Client Updates, premature or in the future - error InsufficientSnapshotHistory(); - /// @notice Invalid HotShot Block for checking HotShot commitments, premature or in the future - error InvalidHotShotBlockForCommitmentCheck(); - /// @notice Invalid Max Block States - error InvalidMaxStateHistory(); - - /// @notice Constructor disables initializers to prevent the implementation contract from being - /// initialized - /// @dev This is standard practice for OpenZeppelin upgradeable contracts. Storage is on the - /// proxy contract - /// since it calls this cnotract via delegatecall - /// @custom:oz-upgrades-unsafe-allow constructor - constructor() { - _disableInitializers(); - } - - /// @notice This contract is called by the proxy when you deploy this contract - /// @param _genesis The initial state of the light client - /// @param _stateHistoryRetentionPeriod The maximum retention period (in seconds) for the state - /// history. the min retention period allowed is 1 hour and max 365 days - /// @param owner The address of the contract owner - function initialize( - LightClientState memory _genesis, - StakeTableState memory _genesisStakeTableState, - uint32 _stateHistoryRetentionPeriod, - address owner - ) public virtual initializer { - __Ownable_init(owner); //sets owner of the contract - __UUPSUpgradeable_init(); - _initializeState(_genesis, _genesisStakeTableState, _stateHistoryRetentionPeriod); - } - - /// @notice returns the current block number - function currentBlockNumber() public view virtual returns (uint256) { - return block.number; - } - - /// @notice Use this to get the implementation contract version - /// @return majorVersion The major version of the contract - /// @return minorVersion The minor version of the contract - /// @return patchVersion The patch version of the contract - function getVersion() - public - pure - virtual - returns (uint8 majorVersion, uint8 minorVersion, uint8 patchVersion) - { - return (1, 0, 0); - } - - /// @notice only the owner can authorize an upgrade - function _authorizeUpgrade(address newImplementation) internal virtual override onlyOwner { - emit Upgrade(newImplementation); - } - - /// @dev Initialization of contract variables happens in this method because the LightClient - /// contract is upgradable and thus has its constructor method disabled. - /// @param _genesis The initial state of the light client - /// @param _genesisStakeTableState The initial stake table state of the light client - /// @param _stateHistoryRetentionPeriod The maximum retention period (in seconds) for the state - /// history. The min retention period allowed is 1 hour and the max is 365 days. - function _initializeState( - LightClientState memory _genesis, - StakeTableState memory _genesisStakeTableState, - uint32 _stateHistoryRetentionPeriod - ) internal { - // The viewNum and blockHeight in the genesis state must be zero to indicate that this is - // the initial state. Stake table commitments and threshold cannot be zero, otherwise it's - // impossible to generate valid proof to move finalized state forward. The - // stateHistoryRetentionPeriod must be at least 1 hour and no more than 365 days - // to ensure proper state retention. - if ( - _genesis.viewNum != 0 || _genesis.blockHeight != 0 - || BN254.ScalarField.unwrap(_genesisStakeTableState.blsKeyComm) == 0 - || BN254.ScalarField.unwrap(_genesisStakeTableState.schnorrKeyComm) == 0 - || BN254.ScalarField.unwrap(_genesisStakeTableState.amountComm) == 0 - || _genesisStakeTableState.threshold == 0 || _stateHistoryRetentionPeriod < 1 hours - || _stateHistoryRetentionPeriod > 365 days - ) { - revert InvalidArgs(); - } - - genesisState = _genesis; - genesisStakeTableState = _genesisStakeTableState; - finalizedState = _genesis; - - stateHistoryRetentionPeriod = _stateHistoryRetentionPeriod; - } - - // === State Modifying APIs === - // - /// @notice Update the latest finalized light client state. It must be updated - /// periodically, especially an update for the last block for every - /// period has to be submitted - /// before any newer state can be accepted since the stake table commitments of that block - /// become the snapshots used for vote verifications later on. - /// @dev if the permissionedProver is set, only the permissionedProver can call this function - /// @dev the state history for `stateHistoryRetentionPeriod` L1 blocks are also recorded in the - /// `stateHistoryCommitments` array - /// @notice While `newState.stakeTable*` refers to the (possibly) new stake table states, - /// the entire `newState` needs to be signed by stakers in `finalizedState` - /// @param newState new light client state - /// @param proof PlonkProof - function newFinalizedState( - LightClientState memory newState, - IPlonkVerifier.PlonkProof memory proof - ) external virtual { - //revert if we're in permissionedProver mode and the permissioned prover has not been set - if (isPermissionedProverEnabled() && msg.sender != permissionedProver) { - revert ProverNotPermissioned(); - } - - if ( - newState.viewNum <= finalizedState.viewNum - || newState.blockHeight <= finalizedState.blockHeight - ) { - revert OutdatedState(); - } - // format validity check - BN254.validateScalarField(newState.blockCommRoot); - - // check plonk proof - verifyProof(newState, proof); - - // upon successful verification, update the latest finalized state - finalizedState = newState; - - updateStateHistory(uint64(currentBlockNumber()), uint64(block.timestamp), newState); - - emit NewState(newState.viewNum, newState.blockHeight, newState.blockCommRoot); - } - - /// @notice Verify the Plonk proof, marked as `virtual` for easier testing as we can swap VK - /// used in inherited contracts. - function verifyProof(LightClientState memory state, IPlonkVerifier.PlonkProof memory proof) - internal - virtual - { - IPlonkVerifier.VerifyingKey memory vk = VkLib.getVk(); - - // Prepare the public input - uint256[7] memory publicInput; - publicInput[0] = uint256(state.viewNum); - publicInput[1] = uint256(state.blockHeight); - publicInput[2] = BN254.ScalarField.unwrap(state.blockCommRoot); - publicInput[3] = BN254.ScalarField.unwrap(genesisStakeTableState.blsKeyComm); - publicInput[4] = BN254.ScalarField.unwrap(genesisStakeTableState.schnorrKeyComm); - publicInput[5] = BN254.ScalarField.unwrap(genesisStakeTableState.amountComm); - publicInput[6] = genesisStakeTableState.threshold; - - if (!PlonkVerifier.verify(vk, publicInput, proof)) { - revert InvalidProof(); - } - } - - /// @notice set the permissionedProver to the non-zero address provided - /// @dev this function can also be used to update the permissioned prover once it's a different - /// address to the current permissioned prover - function setPermissionedProver(address prover) public virtual onlyOwner { - if (prover == address(0)) { - revert InvalidAddress(); - } - if (prover == permissionedProver) { - revert NoChangeRequired(); - } - permissionedProver = prover; - emit PermissionedProverRequired(permissionedProver); - } - - /// @notice set the permissionedProver to address(0) - /// @dev if it was already disabled, then revert with the error, NoChangeRequired - function disablePermissionedProverMode() public virtual onlyOwner { - if (isPermissionedProverEnabled()) { - permissionedProver = address(0); - emit PermissionedProverNotRequired(); - } else { - revert NoChangeRequired(); - } - } - - /// @notice Updates the `stateHistoryCommitments` array when a new finalized state is added - /// and prunes the most outdated element starting from the first element if they fall outside - /// the - /// `stateHistoryRetentionPeriod`. - /// @dev the block timestamp is used to determine if the stateHistoryCommitments array - /// should be pruned, based on the stateHistoryRetentionPeriod (seconds). - /// @dev A FIFO approach is used to remove the most outdated element from the start of the - /// array. - /// However, only one outdated element is removed per invocation of this function, even if - /// multiple elements exceed the retention period. As a result, some outdated elements may - /// remain in the array temporarily until subsequent invocations of this function. - /// @dev the `delete` method does not reduce the array length but resets the value at the - /// specified index to zero. the stateHistoryFirstIndex variable acts as an offset to indicate - /// the starting point for reading the array, since the length of the array is not reduced - /// even after deletion. - /// @param blockNumber The block number of the new finalized state. - /// @param blockTimestamp The block timestamp used to check the retention period. - /// @param state The new `LightClientState` being added to the array. - function updateStateHistory( - uint64 blockNumber, - uint64 blockTimestamp, - LightClientState memory state - ) internal { - if ( - stateHistoryCommitments.length != 0 - && blockTimestamp - stateHistoryCommitments[stateHistoryFirstIndex].l1BlockTimestamp - > stateHistoryRetentionPeriod - ) { - // The stateHistoryCommitments array has reached the maximum retention period - // delete the oldest (first) non-empty element to maintain the FIFO structure. - delete stateHistoryCommitments[stateHistoryFirstIndex]; - - // increment the offset to the first non-zero element in the stateHistoryCommitments - // array - stateHistoryFirstIndex++; - } - - // add the L1 Block & HotShot commitment to the stateHistoryCommitments - stateHistoryCommitments.push( - StateHistoryCommitment( - blockNumber, blockTimestamp, state.blockHeight, state.blockCommRoot - ) - ); - } - - /// @notice checks if the state updates lag behind the specified block threshold based on the - /// provided block number. - /// @dev Reverts if there isn't enough state history to make an accurate comparison. - /// Reverts if the blockThreshold is zero - /// @param blockNumber The block number to compare against the latest state updates. - /// @param blockThreshold The number of blocks updates this contract is allowed to lag behind. - /// @return bool returns true if the lag exceeds the blockThreshold; otherwise, false. - function lagOverEscapeHatchThreshold(uint256 blockNumber, uint256 blockThreshold) - public - view - virtual - returns (bool) - { - uint256 updatesCount = stateHistoryCommitments.length; - - // Edge Case Handling: - // 1. Provided block number is greater than the current block (invalid) - // 2. No updates have occurred (i.e., state history is empty) - // 3. Provided block number is earlier than the first recorded state update - // the stateHistoryFirstIndex is used to check for the first nonZero element - if ( - blockNumber > currentBlockNumber() || updatesCount == 0 - || blockNumber < stateHistoryCommitments[stateHistoryFirstIndex].l1BlockHeight - ) { - revert InsufficientSnapshotHistory(); - } - - uint256 eligibleStateUpdateBlockNumber; // the eligibleStateUpdateBlockNumber is <= - // blockNumber - bool stateUpdateFound; // if an eligible block number is found in the state update history, - // then this variable is set to true - - // Search from the most recent state update back to find the first update <= blockNumber - uint256 i = updatesCount - 1; - while (!stateUpdateFound) { - // Stop searching if we've exhausted the recorded state history - if (i < stateHistoryFirstIndex) { - break; - } - - // Find the first update with a block height <= blockNumber - if (stateHistoryCommitments[i].l1BlockHeight <= blockNumber) { - stateUpdateFound = true; - eligibleStateUpdateBlockNumber = stateHistoryCommitments[i].l1BlockHeight; - break; - } - - i--; - } - - // If no snapshot is found, we don't have enough history stored - // to tell whether HotShot was down. - if (!stateUpdateFound) { - revert InsufficientSnapshotHistory(); - } - - return blockNumber - eligibleStateUpdateBlockNumber > blockThreshold; - } - - /// @notice get the HotShot commitment that represents the Merkle root containing the leaf at - /// the provided hotShotBlockHeight where the block height in the array is greater than - // or equal to the provided hotShotBlockHeight. - /// @dev if the provided hotShotBlockHeight is greater than the latest commitment in the array, - /// the function reverts. - /// @param hotShotBlockHeight the HotShot block height - /// @return hotShotBlockCommRoot the HotShot commitment root - /// @return hotshotBlockHeight the HotShot block height for the corresponding commitment root - function getHotShotCommitment(uint256 hotShotBlockHeight) - public - view - virtual - returns (BN254.ScalarField hotShotBlockCommRoot, uint64 hotshotBlockHeight) - { - uint256 commitmentsHeight = stateHistoryCommitments.length; - if (hotShotBlockHeight > stateHistoryCommitments[commitmentsHeight - 1].hotShotBlockHeight) - { - revert InvalidHotShotBlockForCommitmentCheck(); - } - for (uint256 i = stateHistoryFirstIndex; i < commitmentsHeight; i++) { - // Finds and returns the first HotShot commitment whose height is greater than - // or equal to the specified HotShot height. - if (stateHistoryCommitments[i].hotShotBlockHeight >= hotShotBlockHeight) { - return ( - stateHistoryCommitments[i].hotShotBlockCommRoot, - stateHistoryCommitments[i].hotShotBlockHeight - ); - } - } - } - - /// @notice get the number of state history commitments - /// @return uint256 The number of state history commitments - function getStateHistoryCount() public view returns (uint256) { - return stateHistoryCommitments.length; - } - - /// @notice sets the maximum retention period for storing block state history. - /// @param historySeconds The maximum number of seconds for which state history updates - /// will be stored, based on the block timestamp. It must be greater than or equal to - /// the current state history retention period and must be at least 1 hour and max 365 days. - /// @dev Reverts with `InvalidMaxStateHistory` if the provided value is less than 1 hour, - /// more than 365 days or less than or equal to the current state history retention period. - function setstateHistoryRetentionPeriod(uint32 historySeconds) public onlyOwner { - if ( - historySeconds < 1 hours || historySeconds > 365 days - || historySeconds <= stateHistoryRetentionPeriod - ) { - revert InvalidMaxStateHistory(); - } - - stateHistoryRetentionPeriod = historySeconds; - } - - /// @notice Check if permissioned prover is enabled - function isPermissionedProverEnabled() public view returns (bool) { - return (permissionedProver != address(0)); - } -} From 6833f72bf95b58c7c479f6e18c09ae729255fd2d Mon Sep 17 00:00:00 2001 From: Alysia Huggins Date: Mon, 13 Jan 2025 15:54:55 -0500 Subject: [PATCH 6/8] statehistory is not updated in the initialization steps because precompiles cannot be called during a forge script deploy --- contract-bindings/artifacts/LightClientArbitrum_bytecode.json | 2 +- contract-bindings/artifacts/LightClientMock_bytecode.json | 2 +- contract-bindings/artifacts/LightClient_bytecode.json | 2 +- contracts/src/LightClient.sol | 2 -- 4 files changed, 3 insertions(+), 5 deletions(-) diff --git a/contract-bindings/artifacts/LightClientArbitrum_bytecode.json b/contract-bindings/artifacts/LightClientArbitrum_bytecode.json index 21a7ba2fca..4e648d05dd 100644 --- a/contract-bindings/artifacts/LightClientArbitrum_bytecode.json +++ b/contract-bindings/artifacts/LightClientArbitrum_bytecode.json @@ -1 +1 @@ -"0x60a0604052306080523480156200001557600080fd5b506200002062000030565b6200002a62000030565b620000e4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000815760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000e15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612a896200010e600039600081816111480152818161117101526112f00152612a896000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b36600461200f565b610584565b005b34801561017e57600080fd5b5061019261018d36600461202a565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b5061017061021836600461217e565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b610170610308366004612332565b610848565b34801561031957600080fd5b506102a9610867565b34801561032e57600080fd5b50610170610884565b34801561034357600080fd5b506101706108f3565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b5061039861039336600461202a565b610905565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046123eb565b610a38565b34801561041e57600080fd5b5061017061042d366004612406565b610ac1565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906124d7565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a36600461250a565b610be5565b34801561055b57600080fd5b5061017061056a36600461200f565b610d4b565b34801561057b57600080fd5b506009546102a9565b61058c610d8e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610de9565b6107338282610e59565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610f51565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b600060646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610843919061252c565b905090565b61085061113d565b610859826111e2565b6108638282611223565b5050565b60006108716112e5565b50600080516020612a5d83398151915290565b61088c610d8e565b6008546001600160a01b0316156108d857600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b6108fb610d8e565b6108f1600061132e565b6009805460009182919061091a60018361255b565b8154811061092a5761092a61256e565b6000918252602090912060029091020154600160801b90046001600160401b031684111561096b57604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610a3157846009828154811061099b5761099b61256e565b6000918252602090912060029091020154600160801b90046001600160401b031610610a2957600981815481106109d4576109d461256e565b906000526020600020906002020160010154600982815481106109f9576109f961256e565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b60010161097f565b5050915091565b610a40610d8e565b610e108163ffffffff161080610a5f57506301e133808163ffffffff16115b80610a7d575060085463ffffffff600160a01b909104811690821611155b15610a9b576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b065750825b90506000826001600160401b03166001148015610b225750303b155b905081158015610b30575080155b15610b4e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b7857845460ff60401b1916600160401b1785555b610b818661139f565b610b896113b0565b610b948989896113b8565b8315610bda57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610bf36107de565b841180610bfe575080155b80610c495750600854600980549091600160c01b90046001600160401b0316908110610c2c57610c2c61256e565b60009182526020909120600290910201546001600160401b031684105b15610c675760405163b0b4387760e01b815260040160405180910390fd5b60008080610c7660018561255b565b90505b81610d1457600854600160c01b90046001600160401b03168110610d14578660098281548110610cab57610cab61256e565b60009182526020909120600290910201546001600160401b031611610d02576001915060098181548110610ce157610ce161256e565b60009182526020909120600290910201546001600160401b03169250610d14565b80610d0c81612584565b915050610c79565b81610d325760405163b0b4387760e01b815260040160405180910390fd5b85610d3d848961255b565b119450505050505b92915050565b610d53610d8e565b6001600160a01b038116610d8257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d8b8161132e565b50565b33610dc07f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146108f15760405163118cdaa760e01b8152336004820152602401610d79565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108635760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610d79565b6000610e636114f0565b9050610e6d611d48565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273__$5c5c07cf4f55be9472c2b47d897172e765$__9063ce537a7790610eed908590859088906004016127a2565b602060405180830381865af4158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e91906129d1565b610f4b576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590610fc7575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610f9157610f9161256e565b6000918252602090912060029091020154610fbc90600160401b90046001600160401b0316846129f3565b6001600160401b0316115b1561105b57600854600980549091600160c01b90046001600160401b0316908110610ff457610ff461256e565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b031690601861103583612a1a565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806111c457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111b8600080516020612a5d833981519152546001600160a01b031690565b6001600160a01b031614155b156108f15760405163703e46dd60e11b815260040160405180910390fd5b6111ea610d8e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561127d575060408051601f3d908101601f1916820190925261127a9181019061252c565b60015b6112a557604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d79565b600080516020612a5d83398151915281146112d657604051632a87526960e21b815260048101829052602401610d79565b6112e08383611b1f565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108f15760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6113a7611b75565b610d8b81611bbe565b6108f1611b75565b82516001600160401b03161515806113dc575060208301516001600160401b031615155b806113e957506020820151155b806113f657506040820151155b8061140357506060820151155b8061140d57508151155b8061141f5750610e108163ffffffff16105b8061143357506301e133808163ffffffff16115b15611451576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b031993841691909516908117851790935560408088015160058190558751600055918701516001558601516002556060860151600355600680549092169092179092179091556007556008805463ffffffff8316600160a01b0263ffffffff60a01b199091161790556112e06114e96107de565b4285610f51565b6114f8611d66565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611b2882611bc6565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611b6d576112e08282611c2b565b610863611ca1565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166108f157604051631afcd79f60e31b815260040160405180910390fd5b610d53611b75565b806001600160a01b03163b600003611bfc57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d79565b600080516020612a5d83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611c489190612a40565b600060405180830381855af49150503d8060008114611c83576040519150601f19603f3d011682016040523d82523d6000602084013e611c88565b606091505b5091509150611c98858383611cc0565b95945050505050565b34156108f15760405163b398979f60e01b815260040160405180910390fd5b606082611cd557611cd082611d1f565b611d18565b8151158015611cec57506001600160a01b0384163b155b15611d1557604051639996b31560e01b81526001600160a01b0385166004820152602401610d79565b50805b9392505050565b805115611d2f5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611d9d604051806040016040528060008152602001600081525090565b8152602001611dbf604051806040016040528060008152602001600081525090565b8152602001611de1604051806040016040528060008152602001600081525090565b8152602001611e03604051806040016040528060008152602001600081525090565b8152602001611e25604051806040016040528060008152602001600081525090565b8152602001611e47604051806040016040528060008152602001600081525090565b8152602001611e69604051806040016040528060008152602001600081525090565b8152602001611e8b604051806040016040528060008152602001600081525090565b8152602001611ead604051806040016040528060008152602001600081525090565b8152602001611ecf604051806040016040528060008152602001600081525090565b8152602001611ef1604051806040016040528060008152602001600081525090565b8152602001611f13604051806040016040528060008152602001600081525090565b8152602001611f35604051806040016040528060008152602001600081525090565b8152602001611f57604051806040016040528060008152602001600081525090565b8152602001611f79604051806040016040528060008152602001600081525090565b8152602001611f9b604051806040016040528060008152602001600081525090565b8152602001611fbd604051806040016040528060008152602001600081525090565b8152602001611fdf604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b038116811461200a57600080fd5b919050565b60006020828403121561202157600080fd5b611d1882611ff3565b60006020828403121561203c57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b038111828210171561207c5761207c612043565b60405290565b604051601f8201601f191681016001600160401b03811182821017156120aa576120aa612043565b604052919050565b80356001600160401b038116811461200a57600080fd5b6000606082840312156120db57600080fd5b604051606081018181106001600160401b03821117156120fd576120fd612043565b60405290508061210c836120b2565b815261211a602084016120b2565b6020820152604083013560408201525092915050565b60006040828403121561214257600080fd5b604051604081018181106001600160401b038211171561216457612164612043565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561219357600080fd5b61219d85856120c9565b925061048080605f19830112156121b357600080fd5b6121bb612059565b91506121ca8660608701612130565b82526121d98660a08701612130565b60208301526121eb8660e08701612130565b60408301526101206121ff87828801612130565b606084015261016061221388828901612130565b60808501526101a061222789828a01612130565b60a08601526101e061223b8a828b01612130565b60c087015261022061224f8b828c01612130565b60e08801526102606122638c828d01612130565b6101008901526102a06122788d828e01612130565b878a015261228a8d6102e08e01612130565b6101408a015261229e8d6103208e01612130565b868a01526122b08d6103608e01612130565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561234557600080fd5b61234e83611ff3565b91506020808401356001600160401b038082111561236b57600080fd5b818601915086601f83011261237f57600080fd5b81358181111561239157612391612043565b6123a3601f8201601f19168501612082565b915080825287848285010111156123b957600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff8116811461200a57600080fd5b6000602082840312156123fd57600080fd5b611d18826123d7565b60008060008084860361012081121561241e57600080fd5b61242887876120c9565b94506080605f198201121561243c57600080fd5b50604051608081018181106001600160401b038211171561245f5761245f612043565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061249960e086016123d7565b91506124a86101008601611ff3565b905092959194509250565b60005b838110156124ce5781810151838201526020016124b6565b50506000910152565b60208152600082518060208401526124f68160408501602087016124b3565b601f01601f19169190910160400192915050565b6000806040838503121561251d57600080fd5b50508035926020909101359150565b60006020828403121561253e57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610d4557610d45612545565b634e487b7160e01b600052603260045260246000fd5b60008161259357612593612545565b506000190190565b8060005b6007811015610f4b57815184526020938401939091019060010161259f565b6125d382825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e08401525060808101516101006126368185018380518252602090810151910152565b60a083015191506101406126568186018480518252602090810151910152565b60c084015192506101806126768187018580518252602090810151910152565b60e085015193506101c06126968188018680518252602090810151910152565b928501519350610200926126b68785018680518252602090810151910152565b61012086015194506102406126d78189018780518252602090810151910152565b928601519450610280926126f78885018780518252602090810151910152565b61016087015195506102c0612718818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516127d5604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a08501516101006128228185018380518252602090810151910152565b60c087015191506101406128428186018480518252602090810151910152565b60e088015192506101806128628187018580518252602090810151910152565b9188015192506101c0916128828684018580518252602090810151910152565b61012089015193506102006128a38188018680518252602090810151910152565b918901519350610240916128c38784018680518252602090810151910152565b6101608a015194506102806128e48189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e08301526129bb61050083018561259b565b6129c96105e08301846125be565b949350505050565b6000602082840312156129e357600080fd5b81518015158114611d1857600080fd5b6001600160401b03828116828216039080821115612a1357612a13612545565b5092915050565b60006001600160401b03808316818103612a3657612a36612545565b6001019392505050565b60008251612a528184602087016124b3565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a" +"0x60a0604052306080523480156200001557600080fd5b506200002062000030565b6200002a62000030565b620000e4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000815760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000e15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612a7e6200010e600039600081816111480152818161117101526112f00152612a7e6000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b366004612004565b610584565b005b34801561017e57600080fd5b5061019261018d36600461201f565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612173565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b610170610308366004612327565b610848565b34801561031957600080fd5b506102a9610867565b34801561032e57600080fd5b50610170610884565b34801561034357600080fd5b506101706108f3565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b5061039861039336600461201f565b610905565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046123e0565b610a38565b34801561041e57600080fd5b5061017061042d3660046123fb565b610ac1565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906124cc565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046124ff565b610be5565b34801561055b57600080fd5b5061017061056a366004612004565b610d4b565b34801561057b57600080fd5b506009546102a9565b61058c610d8e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610de9565b6107338282610e59565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610f51565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b600060646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108439190612521565b905090565b61085061113d565b610859826111e2565b6108638282611223565b5050565b60006108716112e5565b50600080516020612a5283398151915290565b61088c610d8e565b6008546001600160a01b0316156108d857600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b6108fb610d8e565b6108f1600061132e565b6009805460009182919061091a600183612550565b8154811061092a5761092a612563565b6000918252602090912060029091020154600160801b90046001600160401b031684111561096b57604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610a3157846009828154811061099b5761099b612563565b6000918252602090912060029091020154600160801b90046001600160401b031610610a2957600981815481106109d4576109d4612563565b906000526020600020906002020160010154600982815481106109f9576109f9612563565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b60010161097f565b5050915091565b610a40610d8e565b610e108163ffffffff161080610a5f57506301e133808163ffffffff16115b80610a7d575060085463ffffffff600160a01b909104811690821611155b15610a9b576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b065750825b90506000826001600160401b03166001148015610b225750303b155b905081158015610b30575080155b15610b4e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b7857845460ff60401b1916600160401b1785555b610b818661139f565b610b896113b0565b610b948989896113b8565b8315610bda57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610bf36107de565b841180610bfe575080155b80610c495750600854600980549091600160c01b90046001600160401b0316908110610c2c57610c2c612563565b60009182526020909120600290910201546001600160401b031684105b15610c675760405163b0b4387760e01b815260040160405180910390fd5b60008080610c76600185612550565b90505b81610d1457600854600160c01b90046001600160401b03168110610d14578660098281548110610cab57610cab612563565b60009182526020909120600290910201546001600160401b031611610d02576001915060098181548110610ce157610ce1612563565b60009182526020909120600290910201546001600160401b03169250610d14565b80610d0c81612579565b915050610c79565b81610d325760405163b0b4387760e01b815260040160405180910390fd5b85610d3d8489612550565b119450505050505b92915050565b610d53610d8e565b6001600160a01b038116610d8257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d8b8161132e565b50565b33610dc07f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146108f15760405163118cdaa760e01b8152336004820152602401610d79565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108635760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610d79565b6000610e636114e5565b9050610e6d611d3d565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273__$5c5c07cf4f55be9472c2b47d897172e765$__9063ce537a7790610eed90859085908890600401612797565b602060405180830381865af4158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e91906129c6565b610f4b576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590610fc7575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610f9157610f91612563565b6000918252602090912060029091020154610fbc90600160401b90046001600160401b0316846129e8565b6001600160401b0316115b1561105b57600854600980549091600160c01b90046001600160401b0316908110610ff457610ff4612563565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b031690601861103583612a0f565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806111c457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111b8600080516020612a52833981519152546001600160a01b031690565b6001600160a01b031614155b156108f15760405163703e46dd60e11b815260040160405180910390fd5b6111ea610d8e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561127d575060408051601f3d908101601f1916820190925261127a91810190612521565b60015b6112a557604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d79565b600080516020612a5283398151915281146112d657604051632a87526960e21b815260048101829052602401610d79565b6112e08383611b14565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108f15760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6113a7611b6a565b610d8b81611bb3565b6108f1611b6a565b82516001600160401b03161515806113dc575060208301516001600160401b031615155b806113e957506020820151155b806113f657506040820151155b8061140357506060820151155b8061140d57508151155b8061141f5750610e108163ffffffff16105b8061143357506301e133808163ffffffff16115b15611451576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6114ed611d5b565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611b1d82611bbb565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611b62576112e08282611c20565b610863611c96565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166108f157604051631afcd79f60e31b815260040160405180910390fd5b610d53611b6a565b806001600160a01b03163b600003611bf157604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d79565b600080516020612a5283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611c3d9190612a35565b600060405180830381855af49150503d8060008114611c78576040519150601f19603f3d011682016040523d82523d6000602084013e611c7d565b606091505b5091509150611c8d858383611cb5565b95945050505050565b34156108f15760405163b398979f60e01b815260040160405180910390fd5b606082611cca57611cc582611d14565b611d0d565b8151158015611ce157506001600160a01b0384163b155b15611d0a57604051639996b31560e01b81526001600160a01b0385166004820152602401610d79565b50805b9392505050565b805115611d245780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611d92604051806040016040528060008152602001600081525090565b8152602001611db4604051806040016040528060008152602001600081525090565b8152602001611dd6604051806040016040528060008152602001600081525090565b8152602001611df8604051806040016040528060008152602001600081525090565b8152602001611e1a604051806040016040528060008152602001600081525090565b8152602001611e3c604051806040016040528060008152602001600081525090565b8152602001611e5e604051806040016040528060008152602001600081525090565b8152602001611e80604051806040016040528060008152602001600081525090565b8152602001611ea2604051806040016040528060008152602001600081525090565b8152602001611ec4604051806040016040528060008152602001600081525090565b8152602001611ee6604051806040016040528060008152602001600081525090565b8152602001611f08604051806040016040528060008152602001600081525090565b8152602001611f2a604051806040016040528060008152602001600081525090565b8152602001611f4c604051806040016040528060008152602001600081525090565b8152602001611f6e604051806040016040528060008152602001600081525090565b8152602001611f90604051806040016040528060008152602001600081525090565b8152602001611fb2604051806040016040528060008152602001600081525090565b8152602001611fd4604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b0381168114611fff57600080fd5b919050565b60006020828403121561201657600080fd5b611d0d82611fe8565b60006020828403121561203157600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b038111828210171561207157612071612038565b60405290565b604051601f8201601f191681016001600160401b038111828210171561209f5761209f612038565b604052919050565b80356001600160401b0381168114611fff57600080fd5b6000606082840312156120d057600080fd5b604051606081018181106001600160401b03821117156120f2576120f2612038565b604052905080612101836120a7565b815261210f602084016120a7565b6020820152604083013560408201525092915050565b60006040828403121561213757600080fd5b604051604081018181106001600160401b038211171561215957612159612038565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561218857600080fd5b61219285856120be565b925061048080605f19830112156121a857600080fd5b6121b061204e565b91506121bf8660608701612125565b82526121ce8660a08701612125565b60208301526121e08660e08701612125565b60408301526101206121f487828801612125565b606084015261016061220888828901612125565b60808501526101a061221c89828a01612125565b60a08601526101e06122308a828b01612125565b60c08701526102206122448b828c01612125565b60e08801526102606122588c828d01612125565b6101008901526102a061226d8d828e01612125565b878a015261227f8d6102e08e01612125565b6101408a01526122938d6103208e01612125565b868a01526122a58d6103608e01612125565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561233a57600080fd5b61234383611fe8565b91506020808401356001600160401b038082111561236057600080fd5b818601915086601f83011261237457600080fd5b81358181111561238657612386612038565b612398601f8201601f19168501612077565b915080825287848285010111156123ae57600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff81168114611fff57600080fd5b6000602082840312156123f257600080fd5b611d0d826123cc565b60008060008084860361012081121561241357600080fd5b61241d87876120be565b94506080605f198201121561243157600080fd5b50604051608081018181106001600160401b038211171561245457612454612038565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061248e60e086016123cc565b915061249d6101008601611fe8565b905092959194509250565b60005b838110156124c35781810151838201526020016124ab565b50506000910152565b60208152600082518060208401526124eb8160408501602087016124a8565b601f01601f19169190910160400192915050565b6000806040838503121561251257600080fd5b50508035926020909101359150565b60006020828403121561253357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610d4557610d4561253a565b634e487b7160e01b600052603260045260246000fd5b6000816125885761258861253a565b506000190190565b8060005b6007811015610f4b578151845260209384019390910190600101612594565b6125c882825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061262b8185018380518252602090810151910152565b60a0830151915061014061264b8186018480518252602090810151910152565b60c0840151925061018061266b8187018580518252602090810151910152565b60e085015193506101c061268b8188018680518252602090810151910152565b928501519350610200926126ab8785018680518252602090810151910152565b61012086015194506102406126cc8189018780518252602090810151910152565b928601519450610280926126ec8885018780518252602090810151910152565b61016087015195506102c061270d818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516127ca604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a08501516101006128178185018380518252602090810151910152565b60c087015191506101406128378186018480518252602090810151910152565b60e088015192506101806128578187018580518252602090810151910152565b9188015192506101c0916128778684018580518252602090810151910152565b61012089015193506102006128988188018680518252602090810151910152565b918901519350610240916128b88784018680518252602090810151910152565b6101608a015194506102806128d98189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e08301526129b0610500830185612590565b6129be6105e08301846125b3565b949350505050565b6000602082840312156129d857600080fd5b81518015158114611d0d57600080fd5b6001600160401b03828116828216039080821115612a0857612a0861253a565b5092915050565b60006001600160401b03808316818103612a2b57612a2b61253a565b6001019392505050565b60008251612a478184602087016124a8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a" diff --git a/contract-bindings/artifacts/LightClientMock_bytecode.json b/contract-bindings/artifacts/LightClientMock_bytecode.json index 2999f519ae..557ba7565b 100644 --- a/contract-bindings/artifacts/LightClientMock_bytecode.json +++ b/contract-bindings/artifacts/LightClientMock_bytecode.json @@ -1 +1 @@ -"0x60a0604052306080523480156200001557600080fd5b50604051620033cd380380620033cd8339810160408190526200003891620004ec565b6200004262000058565b6200004f8383836200010c565b5050506200062c565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000a95760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001095780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b82516001600160401b031615158062000131575060208301516001600160401b031615155b806200013f57506020820151155b806200014d57506040820151155b806200015b57506060820151155b806200016657508151155b80620001795750610e108163ffffffff16105b806200018e57506301e133808163ffffffff16115b15620001ad576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b039485166001600160801b03199384168117680100000000000000009690921695909502908117909355604080880151600581905587516000559187015160015586015160025560608601516003556006805490921690931790911790556007556008805463ffffffff60a01b1916600160a01b63ffffffff8416021790556200024c43428562000251565b505050565b60095415801590620002d2575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110620002955762000295620005a5565b6000918252602090912060029091020154620002c7906801000000000000000090046001600160401b031684620005d1565b6001600160401b0316115b156200036c57600854600980549091600160c01b90046001600160401b0316908110620003035762000303620005a5565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b03169060186200034683620005fb565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b02600160801b600160c01b031995881668010000000000000000026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b604051606081016001600160401b03811182821017156200048357634e487b7160e01b600052604160045260246000fd5b60405290565b604051608081016001600160401b03811182821017156200048357634e487b7160e01b600052604160045260246000fd5b80516001600160401b0381168114620004d257600080fd5b919050565b805163ffffffff81168114620004d257600080fd5b60008060008385036101008112156200050457600080fd5b60608112156200051357600080fd5b6200051d62000452565b6200052886620004ba565b81526200053860208701620004ba565b60208201526040868101519082015293506080605f19820112156200055c57600080fd5b506200056762000489565b60608581015182526080860151602083015260a0860151604083015260c08601519082015291506200059c60e08501620004d7565b90509250925092565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6001600160401b03828116828216039080821115620005f457620005f4620005bb565b5092915050565b60006001600160401b038281166002600160401b03198101620006225762000622620005bb565b6001019392505050565b608051612d776200065660003960008181611182015281816111ab015261132a0152612d776000f3fe6080604052600436106101b75760003560e01c80638584d23f116100ec578063c23b9e9e1161008a578063e030330111610064578063e030330114610636578063f2fde38b14610656578063f567616014610676578063f9e50d191461069657600080fd5b8063c23b9e9e146105b1578063c8e5e498146105ea578063d24d933d1461060657600080fd5b80639baa3cc9116100c65780639baa3cc9146104a55780639fdb54a7146104c5578063ad3cb1cc1461051b578063b5adea3c1461055957600080fd5b80638584d23f1461040b5780638da5cb5b1461044857806396c1ca611461048557600080fd5b8063378ec23b1161015957806352d1902d1161013357806352d1902d146103a057806369cc6a04146103b5578063715018a6146103ca578063826e41fc146103df57600080fd5b8063378ec23b1461032d578063426d31941461034a5780634f1ef2861461038d57600080fd5b80632063d4f7116101955780632063d4f7146102695780632d52aad6146102895780632f79889d146102b6578063313df7b1146102f557600080fd5b8063013fa5fc146101bc57806302b592f3146101de5780630d8e6e2c1461023c575b600080fd5b3480156101c857600080fd5b506101dc6101d73660046121eb565b6106ab565b005b3480156101ea57600080fd5b506101fe6101f9366004612206565b61075e565b60405161023394939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b34801561024857600080fd5b50604080516001815260006020820181905291810191909152606001610233565b34801561027557600080fd5b506101dc61028436600461237c565b6107a9565b34801561029557600080fd5b506101dc6102a4366004612206565b600a805460ff19166001179055600b55565b3480156102c257600080fd5b506008546102dd90600160c01b90046001600160401b031681565b6040516001600160401b039091168152602001610233565b34801561030157600080fd5b50600854610315906001600160a01b031681565b6040516001600160a01b039091168152602001610233565b34801561033957600080fd5b50435b604051908152602001610233565b34801561035657600080fd5b5060005460015460025460035461036d9392919084565b604080519485526020850193909352918301526060820152608001610233565b6101dc61039b366004612530565b610904565b3480156103ac57600080fd5b5061033c610923565b3480156103c157600080fd5b506101dc610940565b3480156103d657600080fd5b506101dc6109af565b3480156103eb57600080fd5b506008546001600160a01b031615155b6040519015158152602001610233565b34801561041757600080fd5b5061042b610426366004612206565b6109c1565b604080519283526001600160401b03909116602083015201610233565b34801561045457600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610315565b34801561049157600080fd5b506101dc6104a03660046125e9565b610af4565b3480156104b157600080fd5b506101dc6104c0366004612604565b610b7d565b3480156104d157600080fd5b506006546007546104f5916001600160401b0380821692600160401b909204169083565b604080516001600160401b03948516815293909216602084015290820152606001610233565b34801561052757600080fd5b5061054c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161023391906126b4565b34801561056557600080fd5b506101dc6105743660046126e7565b80516006805460208401516001600160401b03908116600160401b026001600160801b031990921693169290921791909117905560400151600755565b3480156105bd57600080fd5b506008546105d590600160a01b900463ffffffff1681565b60405163ffffffff9091168152602001610233565b3480156105f657600080fd5b506101dc600a805460ff19169055565b34801561061257600080fd5b506004546005546104f5916001600160401b0380821692600160401b909204169083565b34801561064257600080fd5b506103fb610651366004612703565b610ca1565b34801561066257600080fd5b506101dc6106713660046121eb565b610cd7565b34801561068257600080fd5b506101dc610691366004612725565b610d1a565b3480156106a257600080fd5b5060095461033c565b6106b3610dc8565b6001600160a01b0381166106da5760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036107095760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061076e57600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156107ce57506008546001600160a01b03163314155b156107ec576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b039182169116111580610825575060065460208301516001600160401b03600160401b9092048216911611155b156108435760405163051c46ef60e01b815260040160405180910390fd5b6108508260400151610e23565b61085a8282610e93565b81516006805460208501516001600160401b03908116600160401b026001600160801b031990921693169290921791909117905560408201516007556108a76108a04390565b4284610f8b565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516108f891815260200190565b60405180910390a35050565b61090c611177565b6109158261121c565b61091f828261125d565b5050565b600061092d61131f565b50600080516020612d4b83398151915290565b610948610dc8565b6008546001600160a01b03161561099457600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b6109b7610dc8565b6109ad6000611368565b600980546000918291906109d6600183612830565b815481106109e6576109e6612843565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a2757604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610aed578460098281548110610a5757610a57612843565b6000918252602090912060029091020154600160801b90046001600160401b031610610ae55760098181548110610a9057610a90612843565b90600052602060002090600202016001015460098281548110610ab557610ab5612843565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a3b565b5050915091565b610afc610dc8565b610e108163ffffffff161080610b1b57506301e133808163ffffffff16115b80610b39575060085463ffffffff600160a01b909104811690821611155b15610b57576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610bc25750825b90506000826001600160401b03166001148015610bde5750303b155b905081158015610bec575080155b15610c0a5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c3457845460ff60401b1916600160401b1785555b610c3d866113d9565b610c456113ea565b610c508989896113f2565b8315610c9657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600a5460009060ff16610cbd57610cb88383611523565b610cce565b81600b5484610ccc9190612830565b115b90505b92915050565b610cdf610dc8565b6001600160a01b038116610d0e57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d1781611368565b50565b610d2660096000611ed9565b60005b815181101561091f576009828281518110610d4657610d46612843565b602090810291909101810151825460018181018555600094855293839020825160029092020180549383015160408401516001600160401b03908116600160801b0267ffffffffffffffff60801b19928216600160401b026001600160801b031990971691909416179490941793909316178255606001519082015501610d29565b33610dfa7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109ad5760405163118cdaa760e01b8152336004820152602401610d05565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181108061091f5760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610d05565b6000610e9d611680565b9050610ea7611efa565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273__$5c5c07cf4f55be9472c2b47d897172e765$__9063ce537a7790610f2790859085908890600401612a60565b602060405180830381865af4158015610f44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f689190612c8f565b610f85576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611001575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610fcb57610fcb612843565b6000918252602090912060029091020154610ff690600160401b90046001600160401b031684612cb1565b6001600160401b0316115b1561109557600854600980549091600160c01b90046001600160401b031690811061102e5761102e612843565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b031690601861106f83612cd8565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806111fe57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111f2600080516020612d4b833981519152546001600160a01b031690565b6001600160a01b031614155b156109ad5760405163703e46dd60e11b815260040160405180910390fd5b611224610dc8565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d90602001610753565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156112b7575060408051601f3d908101601f191682019092526112b491810190612cfe565b60015b6112df57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d05565b600080516020612d4b833981519152811461131057604051632a87526960e21b815260048101829052602401610d05565b61131a8383611cb0565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109ad5760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6113e1611d06565b610d1781611d4f565b6109ad611d06565b82516001600160401b0316151580611416575060208301516001600160401b031615155b8061142357506020820151155b8061143057506040820151155b8061143d57506060820151155b8061144757508151155b806114595750610e108163ffffffff16105b8061146d57506301e133808163ffffffff16115b1561148b576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b039485166001600160801b03199384168117600160401b9690921695909502908117909355604080880151600581905587516000559187015160015586015160025560608601516003556006805490921690931790911790556007556008805463ffffffff60a01b1916600160a01b63ffffffff84160217905561131a434285610f8b565b60095460009043841180611535575080155b806115805750600854600980549091600160c01b90046001600160401b031690811061156357611563612843565b60009182526020909120600290910201546001600160401b031684105b1561159e5760405163b0b4387760e01b815260040160405180910390fd5b600080806115ad600185612830565b90505b8161164b57600854600160c01b90046001600160401b0316811061164b5786600982815481106115e2576115e2612843565b60009182526020909120600290910201546001600160401b03161161163957600191506009818154811061161857611618612843565b60009182526020909120600290910201546001600160401b0316925061164b565b8061164381612d17565b9150506115b0565b816116695760405163b0b4387760e01b815260040160405180910390fd5b856116748489612830565b11979650505050505050565b611688611f18565b620100008152600760208201527f1369aa78dc50135ad756d62c97a64a0edcd30066584168200d9d1facf82ca4f56040820151527f2cf23456d712b06f8e3aa5bf0acc3e46a3d094602a3a2b99d873bba05a4391476020604083015101527f08a35f379d2d2c490a51006697275e4db79b67b4a175c1477e262d29e25e42316060820151527f218828131bb7940ccc88c561b299755af4bf0b71ed930b129e8be0a1218139ea6020606083015101527f23a2172436c1145b36d5bc6d3b31fa1610c73a543ea443918aaa3ee175f9921b6080820151527f2502adf404d62877c310214ae9942e93c40b154d34c024bab48a3ca057e60a116020608083015101527f1bb88ada91ab7734882f7826b81275320081ac485f9cf8bfbc3ba54b6eb4dff360a0820151527f25c74a27e9a3b20114a3a91f31c20f01777e7ed913e0ef949f0285e2e7c2069b602060a083015101527f12b0ce76ac8b0dbd405ebc5dd0bae0f91aed50033c7ea36fc62aaba2b98333dc60c0820151527f185b42af49dd1cbe337a84f74b704172428e754a0bea024ab3eb2f996afb2c47602060c083015101527f21f53ad4538b45438bbf0521446070223920e3df6f9022a64cc16d7f94e85c0860e0820151527f2278ac3dedfdac7feb9725a022497175518eada52c8932fc40e6e75bea889fb8602060e083015101527f0876136f81c16298487bfb1be74d4a3487ec45645ab1d09dc2e5b865d62230df610100820151527f098c641c947ecd798dfd5e1b2fe428024cdf03061a53ff774ea8a9e3de9d3f2b602061010083015101527f15eaac2c6232d2268bf79dc47ed9666f992fb3d96ad23fb21690c21586c5472e610120820151527f0f10f1ffc54881287fda6f200bc85d8245b508d844a974098a41119867b325d0602061012083015101527f0895ceea40b085534e9739ca5442ba48b3a3592affde2b509df74521b47d8ab0610140820151527f2e12ec5800ac92fe2a8e7040bc5b435b9eb71e31380173fa7688bf81fcbba455602061014083015101527f2f5384eb5653e47576efe248e7903f463243414bfed5237dda750df3996bd918610160820151527f1c3cd6b11da8704cdc871ab4fa323d7ee57bd40ce165b49a56d5ef6489cd251a602061016083015101527f13579994957ce1554cc1e5b194fb63c9513707f627414f8442681ae736e36450610180820151527f26c9bdcd96d8e420b12974ade93ad9c312c4185213d2f6831a7c625a18890e95602061018083015101527f0cc70a1d542a9a1535ae5d9201696adc5c99c1bcebd9951dfa8afec79fa0b6446101a0820151527f10b043d9f1869181b96579d6616efc17a5df7b84c4d431d966c9094bf1e8815360206101a083015101527f198a65309d131a43b0ab1c47659d0336cfbf62b27f4727106b4fd971c73dd4036101c0820151527f23df99eac3c1947903b211b800efeb76f47d5e87b7414866543492e8c7798d1a60206101c083015101527f221cc5e47b81ce8dcfa72ef981916a8eddef12fcde59c56c62830c126ebef0de6101e0820151527f231f99340c35c9e09652a6df73c9cec5d88738cb71ff45716fdc9e9e45a4926e60206101e083015101527f2c9f1489fce0f263e03f3e97bf0a72273aafcca9325ff47786adb04a52a6d22c610200820151527f21f66e28f17e01e9fd593e16d022c4eca25bd5db96daec606d97b604cc414838602061020083015101527f2015745604a9571e226bd99043cfaf1f96267cc5de67f497563ff81100531d26610220820151527f206889ff4c58dd08ee1107191a2a5bc5dbae55c49d7d8397801799868d10f805602061022083015101527f21062ab8f8ecd8932b429a1eb8614b1e03db61bff6a5cd2d5d7ea193e90e9927610240820151527f217f9b27b934b88ffe555d682dfe6e8b6d503f86b14bbd96342bc48487a60b27602061024083015101527f1c9eda2d195cb731f903235ead6a4f7c66db49da713ecb27afee076f0eea7154610260820151527f2647c161c00b90258e1cefebb17481f8a5d91b5f9dca626e3e89a9215bcca16a602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611cb982611d57565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611cfe5761131a8282611dbc565b61091f611e32565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166109ad57604051631afcd79f60e31b815260040160405180910390fd5b610cdf611d06565b806001600160a01b03163b600003611d8d57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d05565b600080516020612d4b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611dd99190612d2e565b600060405180830381855af49150503d8060008114611e14576040519150601f19603f3d011682016040523d82523d6000602084013e611e19565b606091505b5091509150611e29858383611e51565b95945050505050565b34156109ad5760405163b398979f60e01b815260040160405180910390fd5b606082611e6657611e6182611eb0565b611ea9565b8151158015611e7d57506001600160a01b0384163b155b15611ea657604051639996b31560e01b81526001600160a01b0385166004820152602401610d05565b50805b9392505050565b805115611ec05780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b5080546000825560020290600052602060002090810190610d1791906121a5565b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611f4f604051806040016040528060008152602001600081525090565b8152602001611f71604051806040016040528060008152602001600081525090565b8152602001611f93604051806040016040528060008152602001600081525090565b8152602001611fb5604051806040016040528060008152602001600081525090565b8152602001611fd7604051806040016040528060008152602001600081525090565b8152602001611ff9604051806040016040528060008152602001600081525090565b815260200161201b604051806040016040528060008152602001600081525090565b815260200161203d604051806040016040528060008152602001600081525090565b815260200161205f604051806040016040528060008152602001600081525090565b8152602001612081604051806040016040528060008152602001600081525090565b81526020016120a3604051806040016040528060008152602001600081525090565b81526020016120c5604051806040016040528060008152602001600081525090565b81526020016120e7604051806040016040528060008152602001600081525090565b8152602001612109604051806040016040528060008152602001600081525090565b815260200161212b604051806040016040528060008152602001600081525090565b815260200161214d604051806040016040528060008152602001600081525090565b815260200161216f604051806040016040528060008152602001600081525090565b8152602001612191604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b5b808211156121cb5780546001600160c01b0319168155600060018201556002016121a6565b5090565b80356001600160a01b03811681146121e657600080fd5b919050565b6000602082840312156121fd57600080fd5b610cce826121cf565b60006020828403121561221857600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156122585761225861221f565b60405290565b604051608081016001600160401b03811182821017156122585761225861221f565b604051601f8201601f191681016001600160401b03811182821017156122a8576122a861221f565b604052919050565b80356001600160401b03811681146121e657600080fd5b6000606082840312156122d957600080fd5b604051606081018181106001600160401b03821117156122fb576122fb61221f565b60405290508061230a836122b0565b8152612318602084016122b0565b6020820152604083013560408201525092915050565b60006040828403121561234057600080fd5b604051604081018181106001600160401b03821117156123625761236261221f565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561239157600080fd5b61239b85856122c7565b925061048080605f19830112156123b157600080fd5b6123b9612235565b91506123c8866060870161232e565b82526123d78660a0870161232e565b60208301526123e98660e0870161232e565b60408301526101206123fd8782880161232e565b60608401526101606124118882890161232e565b60808501526101a061242589828a0161232e565b60a08601526101e06124398a828b0161232e565b60c087015261022061244d8b828c0161232e565b60e08801526102606124618c828d0161232e565b6101008901526102a06124768d828e0161232e565b878a01526124888d6102e08e0161232e565b6101408a015261249c8d6103208e0161232e565b868a01526124ae8d6103608e0161232e565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561254357600080fd5b61254c836121cf565b91506020808401356001600160401b038082111561256957600080fd5b818601915086601f83011261257d57600080fd5b81358181111561258f5761258f61221f565b6125a1601f8201601f19168501612280565b915080825287848285010111156125b757600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146121e657600080fd5b6000602082840312156125fb57600080fd5b610cce826125d5565b60008060008084860361012081121561261c57600080fd5b61262687876122c7565b94506080605f198201121561263a57600080fd5b5061264361225e565b60608681013582526080870135602083015260a0870135604083015260c087013590820152925061267660e086016125d5565b915061268561010086016121cf565b905092959194509250565b60005b838110156126ab578181015183820152602001612693565b50506000910152565b60208152600082518060208401526126d3816040850160208701612690565b601f01601f19169190910160400192915050565b6000606082840312156126f957600080fd5b610cce83836122c7565b6000806040838503121561271657600080fd5b50508035926020909101359150565b6000602080838503121561273857600080fd5b82356001600160401b038082111561274f57600080fd5b818501915085601f83011261276357600080fd5b8135818111156127755761277561221f565b612783848260051b01612280565b818152848101925060079190911b8301840190878211156127a357600080fd5b928401925b8184101561280f57608084890312156127c15760008081fd5b6127c961225e565b6127d2856122b0565b81526127df8686016122b0565b8682015260406127f08187016122b0565b90820152606085810135908201528352608090930192918401916127a8565b979650505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cd157610cd161281a565b634e487b7160e01b600052603260045260246000fd5b8060005b6007811015610f8557815184526020938401939091019060010161285d565b61289182825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e08401525060808101516101006128f48185018380518252602090810151910152565b60a083015191506101406129148186018480518252602090810151910152565b60c084015192506101806129348187018580518252602090810151910152565b60e085015193506101c06129548188018680518252602090810151910152565b928501519350610200926129748785018680518252602090810151910152565b61012086015194506102406129958189018780518252602090810151910152565b928601519450610280926129b58885018780518252602090810151910152565b61016087015195506102c06129d6818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a608201905084518252602085015160208301526040850151612a93604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a0850151610100612ae08185018380518252602090810151910152565b60c08701519150610140612b008186018480518252602090810151910152565b60e08801519250610180612b208187018580518252602090810151910152565b9188015192506101c091612b408684018580518252602090810151910152565b6101208901519350610200612b618188018680518252602090810151910152565b91890151935061024091612b818784018680518252602090810151910152565b6101608a01519450610280612ba28189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612c79610500830185612859565b612c876105e083018461287c565b949350505050565b600060208284031215612ca157600080fd5b81518015158114611ea957600080fd5b6001600160401b03828116828216039080821115612cd157612cd161281a565b5092915050565b60006001600160401b03808316818103612cf457612cf461281a565b6001019392505050565b600060208284031215612d1057600080fd5b5051919050565b600081612d2657612d2661281a565b506000190190565b60008251612d40818460208701612690565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a" +"0x60a0604052306080523480156200001557600080fd5b5060405162003136380380620031368339810160408190526200003891620002e0565b6200004262000058565b6200004f8383836200010c565b50505062000399565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000a95760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620001095780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b82516001600160401b031615158062000131575060208301516001600160401b031615155b806200013f57506020820151155b806200014d57506040820151155b806200015b57506060820151155b806200016657508151155b80620001795750610e108163ffffffff16105b806200018e57506301e133808163ffffffff16115b15620001ad576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b0390811668010000000000000000026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b604051606081016001600160401b03811182821017156200027757634e487b7160e01b600052604160045260246000fd5b60405290565b604051608081016001600160401b03811182821017156200027757634e487b7160e01b600052604160045260246000fd5b80516001600160401b0381168114620002c657600080fd5b919050565b805163ffffffff81168114620002c657600080fd5b6000806000838503610100811215620002f857600080fd5b60608112156200030757600080fd5b6200031162000246565b6200031c86620002ae565b81526200032c60208701620002ae565b60208201526040868101519082015293506080605f19820112156200035057600080fd5b506200035b6200027d565b60608581015182526080860151602083015260a0860151604083015260c08601519082015291506200039060e08501620002cb565b90509250925092565b608051612d73620003c360003960008181611182015281816111ab015261132a0152612d736000f3fe6080604052600436106101b75760003560e01c80638584d23f116100ec578063c23b9e9e1161008a578063e030330111610064578063e030330114610636578063f2fde38b14610656578063f567616014610676578063f9e50d191461069657600080fd5b8063c23b9e9e146105b1578063c8e5e498146105ea578063d24d933d1461060657600080fd5b80639baa3cc9116100c65780639baa3cc9146104a55780639fdb54a7146104c5578063ad3cb1cc1461051b578063b5adea3c1461055957600080fd5b80638584d23f1461040b5780638da5cb5b1461044857806396c1ca611461048557600080fd5b8063378ec23b1161015957806352d1902d1161013357806352d1902d146103a057806369cc6a04146103b5578063715018a6146103ca578063826e41fc146103df57600080fd5b8063378ec23b1461032d578063426d31941461034a5780634f1ef2861461038d57600080fd5b80632063d4f7116101955780632063d4f7146102695780632d52aad6146102895780632f79889d146102b6578063313df7b1146102f557600080fd5b8063013fa5fc146101bc57806302b592f3146101de5780630d8e6e2c1461023c575b600080fd5b3480156101c857600080fd5b506101dc6101d73660046121e7565b6106ab565b005b3480156101ea57600080fd5b506101fe6101f9366004612202565b61075e565b60405161023394939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b34801561024857600080fd5b50604080516001815260006020820181905291810191909152606001610233565b34801561027557600080fd5b506101dc610284366004612378565b6107a9565b34801561029557600080fd5b506101dc6102a4366004612202565b600a805460ff19166001179055600b55565b3480156102c257600080fd5b506008546102dd90600160c01b90046001600160401b031681565b6040516001600160401b039091168152602001610233565b34801561030157600080fd5b50600854610315906001600160a01b031681565b6040516001600160a01b039091168152602001610233565b34801561033957600080fd5b50435b604051908152602001610233565b34801561035657600080fd5b5060005460015460025460035461036d9392919084565b604080519485526020850193909352918301526060820152608001610233565b6101dc61039b36600461252c565b610904565b3480156103ac57600080fd5b5061033c610923565b3480156103c157600080fd5b506101dc610940565b3480156103d657600080fd5b506101dc6109af565b3480156103eb57600080fd5b506008546001600160a01b031615155b6040519015158152602001610233565b34801561041757600080fd5b5061042b610426366004612202565b6109c1565b604080519283526001600160401b03909116602083015201610233565b34801561045457600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610315565b34801561049157600080fd5b506101dc6104a03660046125e5565b610af4565b3480156104b157600080fd5b506101dc6104c0366004612600565b610b7d565b3480156104d157600080fd5b506006546007546104f5916001600160401b0380821692600160401b909204169083565b604080516001600160401b03948516815293909216602084015290820152606001610233565b34801561052757600080fd5b5061054c604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161023391906126b0565b34801561056557600080fd5b506101dc6105743660046126e3565b80516006805460208401516001600160401b03908116600160401b026001600160801b031990921693169290921791909117905560400151600755565b3480156105bd57600080fd5b506008546105d590600160a01b900463ffffffff1681565b60405163ffffffff9091168152602001610233565b3480156105f657600080fd5b506101dc600a805460ff19169055565b34801561061257600080fd5b506004546005546104f5916001600160401b0380821692600160401b909204169083565b34801561064257600080fd5b506103fb6106513660046126ff565b610ca1565b34801561066257600080fd5b506101dc6106713660046121e7565b610cd7565b34801561068257600080fd5b506101dc610691366004612721565b610d1a565b3480156106a257600080fd5b5060095461033c565b6106b3610dc8565b6001600160a01b0381166106da5760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036107095760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061076e57600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156107ce57506008546001600160a01b03163314155b156107ec576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b039182169116111580610825575060065460208301516001600160401b03600160401b9092048216911611155b156108435760405163051c46ef60e01b815260040160405180910390fd5b6108508260400151610e23565b61085a8282610e93565b81516006805460208501516001600160401b03908116600160401b026001600160801b031990921693169290921791909117905560408201516007556108a76108a04390565b4284610f8b565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516108f891815260200190565b60405180910390a35050565b61090c611177565b6109158261121c565b61091f828261125d565b5050565b600061092d61131f565b50600080516020612d4783398151915290565b610948610dc8565b6008546001600160a01b03161561099457600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b6109b7610dc8565b6109ad6000611368565b600980546000918291906109d660018361282c565b815481106109e6576109e661283f565b6000918252602090912060029091020154600160801b90046001600160401b0316841115610a2757604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610aed578460098281548110610a5757610a5761283f565b6000918252602090912060029091020154600160801b90046001600160401b031610610ae55760098181548110610a9057610a9061283f565b90600052602060002090600202016001015460098281548110610ab557610ab561283f565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b600101610a3b565b5050915091565b610afc610dc8565b610e108163ffffffff161080610b1b57506301e133808163ffffffff16115b80610b39575060085463ffffffff600160a01b909104811690821611155b15610b57576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610bc25750825b90506000826001600160401b03166001148015610bde5750303b155b905081158015610bec575080155b15610c0a5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c3457845460ff60401b1916600160401b1785555b610c3d866113d9565b610c456113ea565b610c508989896113f2565b8315610c9657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600a5460009060ff16610cbd57610cb8838361151f565b610cce565b81600b5484610ccc919061282c565b115b90505b92915050565b610cdf610dc8565b6001600160a01b038116610d0e57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d1781611368565b50565b610d2660096000611ed5565b60005b815181101561091f576009828281518110610d4657610d4661283f565b602090810291909101810151825460018181018555600094855293839020825160029092020180549383015160408401516001600160401b03908116600160801b0267ffffffffffffffff60801b19928216600160401b026001600160801b031990971691909416179490941793909316178255606001519082015501610d29565b33610dfa7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146109ad5760405163118cdaa760e01b8152336004820152602401610d05565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000181108061091f5760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610d05565b6000610e9d61167c565b9050610ea7611ef6565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273__$5c5c07cf4f55be9472c2b47d897172e765$__9063ce537a7790610f2790859085908890600401612a5c565b602060405180830381865af4158015610f44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f689190612c8b565b610f85576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590611001575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610fcb57610fcb61283f565b6000918252602090912060029091020154610ff690600160401b90046001600160401b031684612cad565b6001600160401b0316115b1561109557600854600980549091600160c01b90046001600160401b031690811061102e5761102e61283f565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b031690601861106f83612cd4565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806111fe57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111f2600080516020612d47833981519152546001600160a01b031690565b6001600160a01b031614155b156109ad5760405163703e46dd60e11b815260040160405180910390fd5b611224610dc8565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d90602001610753565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156112b7575060408051601f3d908101601f191682019092526112b491810190612cfa565b60015b6112df57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d05565b600080516020612d47833981519152811461131057604051632a87526960e21b815260048101829052602401610d05565b61131a8383611cac565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109ad5760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6113e1611d02565b610d1781611d4b565b6109ad611d02565b82516001600160401b0316151580611416575060208301516001600160401b031615155b8061142357506020820151155b8061143057506040820151155b8061143d57506060820151155b8061144757508151155b806114595750610e108163ffffffff16105b8061146d57506301e133808163ffffffff16115b1561148b576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b60095460009043841180611531575080155b8061157c5750600854600980549091600160c01b90046001600160401b031690811061155f5761155f61283f565b60009182526020909120600290910201546001600160401b031684105b1561159a5760405163b0b4387760e01b815260040160405180910390fd5b600080806115a960018561282c565b90505b8161164757600854600160c01b90046001600160401b031681106116475786600982815481106115de576115de61283f565b60009182526020909120600290910201546001600160401b0316116116355760019150600981815481106116145761161461283f565b60009182526020909120600290910201546001600160401b03169250611647565b8061163f81612d13565b9150506115ac565b816116655760405163b0b4387760e01b815260040160405180910390fd5b85611670848961282c565b11979650505050505050565b611684611f14565b620100008152600760208201527f1369aa78dc50135ad756d62c97a64a0edcd30066584168200d9d1facf82ca4f56040820151527f2cf23456d712b06f8e3aa5bf0acc3e46a3d094602a3a2b99d873bba05a4391476020604083015101527f08a35f379d2d2c490a51006697275e4db79b67b4a175c1477e262d29e25e42316060820151527f218828131bb7940ccc88c561b299755af4bf0b71ed930b129e8be0a1218139ea6020606083015101527f23a2172436c1145b36d5bc6d3b31fa1610c73a543ea443918aaa3ee175f9921b6080820151527f2502adf404d62877c310214ae9942e93c40b154d34c024bab48a3ca057e60a116020608083015101527f1bb88ada91ab7734882f7826b81275320081ac485f9cf8bfbc3ba54b6eb4dff360a0820151527f25c74a27e9a3b20114a3a91f31c20f01777e7ed913e0ef949f0285e2e7c2069b602060a083015101527f12b0ce76ac8b0dbd405ebc5dd0bae0f91aed50033c7ea36fc62aaba2b98333dc60c0820151527f185b42af49dd1cbe337a84f74b704172428e754a0bea024ab3eb2f996afb2c47602060c083015101527f21f53ad4538b45438bbf0521446070223920e3df6f9022a64cc16d7f94e85c0860e0820151527f2278ac3dedfdac7feb9725a022497175518eada52c8932fc40e6e75bea889fb8602060e083015101527f0876136f81c16298487bfb1be74d4a3487ec45645ab1d09dc2e5b865d62230df610100820151527f098c641c947ecd798dfd5e1b2fe428024cdf03061a53ff774ea8a9e3de9d3f2b602061010083015101527f15eaac2c6232d2268bf79dc47ed9666f992fb3d96ad23fb21690c21586c5472e610120820151527f0f10f1ffc54881287fda6f200bc85d8245b508d844a974098a41119867b325d0602061012083015101527f0895ceea40b085534e9739ca5442ba48b3a3592affde2b509df74521b47d8ab0610140820151527f2e12ec5800ac92fe2a8e7040bc5b435b9eb71e31380173fa7688bf81fcbba455602061014083015101527f2f5384eb5653e47576efe248e7903f463243414bfed5237dda750df3996bd918610160820151527f1c3cd6b11da8704cdc871ab4fa323d7ee57bd40ce165b49a56d5ef6489cd251a602061016083015101527f13579994957ce1554cc1e5b194fb63c9513707f627414f8442681ae736e36450610180820151527f26c9bdcd96d8e420b12974ade93ad9c312c4185213d2f6831a7c625a18890e95602061018083015101527f0cc70a1d542a9a1535ae5d9201696adc5c99c1bcebd9951dfa8afec79fa0b6446101a0820151527f10b043d9f1869181b96579d6616efc17a5df7b84c4d431d966c9094bf1e8815360206101a083015101527f198a65309d131a43b0ab1c47659d0336cfbf62b27f4727106b4fd971c73dd4036101c0820151527f23df99eac3c1947903b211b800efeb76f47d5e87b7414866543492e8c7798d1a60206101c083015101527f221cc5e47b81ce8dcfa72ef981916a8eddef12fcde59c56c62830c126ebef0de6101e0820151527f231f99340c35c9e09652a6df73c9cec5d88738cb71ff45716fdc9e9e45a4926e60206101e083015101527f2c9f1489fce0f263e03f3e97bf0a72273aafcca9325ff47786adb04a52a6d22c610200820151527f21f66e28f17e01e9fd593e16d022c4eca25bd5db96daec606d97b604cc414838602061020083015101527f2015745604a9571e226bd99043cfaf1f96267cc5de67f497563ff81100531d26610220820151527f206889ff4c58dd08ee1107191a2a5bc5dbae55c49d7d8397801799868d10f805602061022083015101527f21062ab8f8ecd8932b429a1eb8614b1e03db61bff6a5cd2d5d7ea193e90e9927610240820151527f217f9b27b934b88ffe555d682dfe6e8b6d503f86b14bbd96342bc48487a60b27602061024083015101527f1c9eda2d195cb731f903235ead6a4f7c66db49da713ecb27afee076f0eea7154610260820151527f2647c161c00b90258e1cefebb17481f8a5d91b5f9dca626e3e89a9215bcca16a602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611cb582611d53565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611cfa5761131a8282611db8565b61091f611e2e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166109ad57604051631afcd79f60e31b815260040160405180910390fd5b610cdf611d02565b806001600160a01b03163b600003611d8957604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d05565b600080516020612d4783398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611dd59190612d2a565b600060405180830381855af49150503d8060008114611e10576040519150601f19603f3d011682016040523d82523d6000602084013e611e15565b606091505b5091509150611e25858383611e4d565b95945050505050565b34156109ad5760405163b398979f60e01b815260040160405180910390fd5b606082611e6257611e5d82611eac565b611ea5565b8151158015611e7957506001600160a01b0384163b155b15611ea257604051639996b31560e01b81526001600160a01b0385166004820152602401610d05565b50805b9392505050565b805115611ebc5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b5080546000825560020290600052602060002090810190610d1791906121a1565b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611f4b604051806040016040528060008152602001600081525090565b8152602001611f6d604051806040016040528060008152602001600081525090565b8152602001611f8f604051806040016040528060008152602001600081525090565b8152602001611fb1604051806040016040528060008152602001600081525090565b8152602001611fd3604051806040016040528060008152602001600081525090565b8152602001611ff5604051806040016040528060008152602001600081525090565b8152602001612017604051806040016040528060008152602001600081525090565b8152602001612039604051806040016040528060008152602001600081525090565b815260200161205b604051806040016040528060008152602001600081525090565b815260200161207d604051806040016040528060008152602001600081525090565b815260200161209f604051806040016040528060008152602001600081525090565b81526020016120c1604051806040016040528060008152602001600081525090565b81526020016120e3604051806040016040528060008152602001600081525090565b8152602001612105604051806040016040528060008152602001600081525090565b8152602001612127604051806040016040528060008152602001600081525090565b8152602001612149604051806040016040528060008152602001600081525090565b815260200161216b604051806040016040528060008152602001600081525090565b815260200161218d604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b5b808211156121c75780546001600160c01b0319168155600060018201556002016121a2565b5090565b80356001600160a01b03811681146121e257600080fd5b919050565b6000602082840312156121f957600080fd5b610cce826121cb565b60006020828403121561221457600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b03811182821017156122545761225461221b565b60405290565b604051608081016001600160401b03811182821017156122545761225461221b565b604051601f8201601f191681016001600160401b03811182821017156122a4576122a461221b565b604052919050565b80356001600160401b03811681146121e257600080fd5b6000606082840312156122d557600080fd5b604051606081018181106001600160401b03821117156122f7576122f761221b565b604052905080612306836122ac565b8152612314602084016122ac565b6020820152604083013560408201525092915050565b60006040828403121561233c57600080fd5b604051604081018181106001600160401b038211171561235e5761235e61221b565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561238d57600080fd5b61239785856122c3565b925061048080605f19830112156123ad57600080fd5b6123b5612231565b91506123c4866060870161232a565b82526123d38660a0870161232a565b60208301526123e58660e0870161232a565b60408301526101206123f98782880161232a565b606084015261016061240d8882890161232a565b60808501526101a061242189828a0161232a565b60a08601526101e06124358a828b0161232a565b60c08701526102206124498b828c0161232a565b60e088015261026061245d8c828d0161232a565b6101008901526102a06124728d828e0161232a565b878a01526124848d6102e08e0161232a565b6101408a01526124988d6103208e0161232a565b868a01526124aa8d6103608e0161232a565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561253f57600080fd5b612548836121cb565b91506020808401356001600160401b038082111561256557600080fd5b818601915086601f83011261257957600080fd5b81358181111561258b5761258b61221b565b61259d601f8201601f1916850161227c565b915080825287848285010111156125b357600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff811681146121e257600080fd5b6000602082840312156125f757600080fd5b610cce826125d1565b60008060008084860361012081121561261857600080fd5b61262287876122c3565b94506080605f198201121561263657600080fd5b5061263f61225a565b60608681013582526080870135602083015260a0870135604083015260c087013590820152925061267260e086016125d1565b915061268161010086016121cb565b905092959194509250565b60005b838110156126a757818101518382015260200161268f565b50506000910152565b60208152600082518060208401526126cf81604085016020870161268c565b601f01601f19169190910160400192915050565b6000606082840312156126f557600080fd5b610cce83836122c3565b6000806040838503121561271257600080fd5b50508035926020909101359150565b6000602080838503121561273457600080fd5b82356001600160401b038082111561274b57600080fd5b818501915085601f83011261275f57600080fd5b8135818111156127715761277161221b565b61277f848260051b0161227c565b818152848101925060079190911b83018401908782111561279f57600080fd5b928401925b8184101561280b57608084890312156127bd5760008081fd5b6127c561225a565b6127ce856122ac565b81526127db8686016122ac565b8682015260406127ec8187016122ac565b90820152606085810135908201528352608090930192918401916127a4565b979650505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610cd157610cd1612816565b634e487b7160e01b600052603260045260246000fd5b8060005b6007811015610f85578151845260209384019390910190600101612859565b61288d82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e08401525060808101516101006128f08185018380518252602090810151910152565b60a083015191506101406129108186018480518252602090810151910152565b60c084015192506101806129308187018580518252602090810151910152565b60e085015193506101c06129508188018680518252602090810151910152565b928501519350610200926129708785018680518252602090810151910152565b61012086015194506102406129918189018780518252602090810151910152565b928601519450610280926129b18885018780518252602090810151910152565b61016087015195506102c06129d2818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a608201905084518252602085015160208301526040850151612a8f604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a0850151610100612adc8185018380518252602090810151910152565b60c08701519150610140612afc8186018480518252602090810151910152565b60e08801519250610180612b1c8187018580518252602090810151910152565b9188015192506101c091612b3c8684018580518252602090810151910152565b6101208901519350610200612b5d8188018680518252602090810151910152565b91890151935061024091612b7d8784018680518252602090810151910152565b6101608a01519450610280612b9e8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612c75610500830185612855565b612c836105e0830184612878565b949350505050565b600060208284031215612c9d57600080fd5b81518015158114611ea557600080fd5b6001600160401b03828116828216039080821115612ccd57612ccd612816565b5092915050565b60006001600160401b03808316818103612cf057612cf0612816565b6001019392505050565b600060208284031215612d0c57600080fd5b5051919050565b600081612d2257612d22612816565b506000190190565b60008251612d3c81846020870161268c565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a" diff --git a/contract-bindings/artifacts/LightClient_bytecode.json b/contract-bindings/artifacts/LightClient_bytecode.json index 656720cbea..659973104a 100644 --- a/contract-bindings/artifacts/LightClient_bytecode.json +++ b/contract-bindings/artifacts/LightClient_bytecode.json @@ -1 +1 @@ -"0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612a0a62000104600039600081816110d0015281816110f901526112780152612a0a6000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610482578063c23b9e9e146104c0578063d24d933d146104f9578063e030330114610529578063f2fde38b14610549578063f9e50d191461056957600080fd5b8063826e41fc146103465780638584d23f146103725780638da5cb5b146103af57806396c1ca61146103ec5780639baa3cc91461040c5780639fdb54a71461042c57600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b15780634f1ef286146102f457806352d1902d1461030757806369cc6a041461031c578063715018a61461033157600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b366004611f90565b61057e565b005b34801561017e57600080fd5b5061019261018d366004611fab565b610631565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b506101706102183660046120ff565b61067c565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b50435b6040519081526020016101c7565b3480156102bd57600080fd5b506000546001546002546003546102d49392919084565b6040805194855260208501939093529183015260608201526080016101c7565b6101706103023660046122b3565b6107d7565b34801561031357600080fd5b506102a36107f6565b34801561032857600080fd5b50610170610813565b34801561033d57600080fd5b50610170610882565b34801561035257600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561037e57600080fd5b5061039261038d366004611fab565b610894565b604080519283526001600160401b039091166020830152016101c7565b3480156103bb57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103f857600080fd5b5061017061040736600461236c565b6109c7565b34801561041857600080fd5b50610170610427366004612387565b610a50565b34801561043857600080fd5b5060065460075461045c916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561048e57600080fd5b506104b3604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c79190612458565b3480156104cc57600080fd5b506008546104e490600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050557600080fd5b5060045460055461045c916001600160401b0380821692600160401b909204169083565b34801561053557600080fd5b5061036261054436600461248b565b610b74565b34801561055557600080fd5b50610170610564366004611f90565b610cd3565b34801561057557600080fd5b506009546102a3565b610586610d16565b6001600160a01b0381166105ad5760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105dc5760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064157600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a157506008546001600160a01b03163314155b156106bf576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106f8575060065460208301516001600160401b03600160401b9092048216911611155b156107165760405163051c46ef60e01b815260040160405180910390fd5b6107238260400151610d71565b61072d8282610de1565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561077a6107734390565b4284610ed9565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107cb91815260200190565b60405180910390a35050565b6107df6110c5565b6107e88261116a565b6107f282826111ab565b5050565b600061080061126d565b506000805160206129de83398151915290565b61081b610d16565b6008546001600160a01b03161561086757600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b61088a610d16565b61088060006112b6565b600980546000918291906108a96001836124c3565b815481106108b9576108b96124d6565b6000918252602090912060029091020154600160801b90046001600160401b03168411156108fa57604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b818110156109c057846009828154811061092a5761092a6124d6565b6000918252602090912060029091020154600160801b90046001600160401b0316106109b85760098181548110610963576109636124d6565b90600052602060002090600202016001015460098281548110610988576109886124d6565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b60010161090e565b5050915091565b6109cf610d16565b610e108163ffffffff1610806109ee57506301e133808163ffffffff16115b80610a0c575060085463ffffffff600160a01b909104811690821611155b15610a2a576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610a955750825b90506000826001600160401b03166001148015610ab15750303b155b905081158015610abf575080155b15610add5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b0757845460ff60401b1916600160401b1785555b610b1086611327565b610b18611338565b610b23898989611340565b8315610b6957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b60095460009043841180610b86575080155b80610bd15750600854600980549091600160c01b90046001600160401b0316908110610bb457610bb46124d6565b60009182526020909120600290910201546001600160401b031684105b15610bef5760405163b0b4387760e01b815260040160405180910390fd5b60008080610bfe6001856124c3565b90505b81610c9c57600854600160c01b90046001600160401b03168110610c9c578660098281548110610c3357610c336124d6565b60009182526020909120600290910201546001600160401b031611610c8a576001915060098181548110610c6957610c696124d6565b60009182526020909120600290910201546001600160401b03169250610c9c565b80610c94816124ec565b915050610c01565b81610cba5760405163b0b4387760e01b815260040160405180910390fd5b85610cc584896124c3565b119450505050505b92915050565b610cdb610d16565b6001600160a01b038116610d0a57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d13816112b6565b50565b33610d487f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146108805760405163118cdaa760e01b8152336004820152602401610d01565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806107f25760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610d01565b6000610deb611471565b9050610df5611cc9565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273__$5c5c07cf4f55be9472c2b47d897172e765$__9063ce537a7790610e759085908590889060040161270a565b602060405180830381865af4158015610e92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb69190612939565b610ed3576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590610f4f575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610f1957610f196124d6565b6000918252602090912060029091020154610f4490600160401b90046001600160401b03168461295b565b6001600160401b0316115b15610fe357600854600980549091600160c01b90046001600160401b0316908110610f7c57610f7c6124d6565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b0316906018610fbd83612982565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061114c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111406000805160206129de833981519152546001600160a01b031690565b6001600160a01b031614155b156108805760405163703e46dd60e11b815260040160405180910390fd5b611172610d16565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d90602001610626565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611205575060408051601f3d908101601f19168201909252611202918101906129a8565b60015b61122d57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d01565b6000805160206129de833981519152811461125e57604051632a87526960e21b815260048101829052602401610d01565b6112688383611aa0565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108805760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61132f611af6565b610d1381611b3f565b610880611af6565b82516001600160401b0316151580611364575060208301516001600160401b031615155b8061137157506020820151155b8061137e57506040820151155b8061138b57506060820151155b8061139557508151155b806113a75750610e108163ffffffff16105b806113bb57506301e133808163ffffffff16115b156113d9576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b039485166001600160801b03199384168117600160401b9690921695909502908117909355604080880151600581905587516000559187015160015586015160025560608601516003556006805490921690931790911790556007556008805463ffffffff60a01b1916600160a01b63ffffffff841602179055611268434285610ed9565b611479611ce7565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611aa982611b47565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611aee576112688282611bac565b6107f2611c22565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661088057604051631afcd79f60e31b815260040160405180910390fd5b610cdb611af6565b806001600160a01b03163b600003611b7d57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d01565b6000805160206129de83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611bc991906129c1565b600060405180830381855af49150503d8060008114611c04576040519150601f19603f3d011682016040523d82523d6000602084013e611c09565b606091505b5091509150611c19858383611c41565b95945050505050565b34156108805760405163b398979f60e01b815260040160405180910390fd5b606082611c5657611c5182611ca0565b611c99565b8151158015611c6d57506001600160a01b0384163b155b15611c9657604051639996b31560e01b81526001600160a01b0385166004820152602401610d01565b50805b9392505050565b805115611cb05780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611d1e604051806040016040528060008152602001600081525090565b8152602001611d40604051806040016040528060008152602001600081525090565b8152602001611d62604051806040016040528060008152602001600081525090565b8152602001611d84604051806040016040528060008152602001600081525090565b8152602001611da6604051806040016040528060008152602001600081525090565b8152602001611dc8604051806040016040528060008152602001600081525090565b8152602001611dea604051806040016040528060008152602001600081525090565b8152602001611e0c604051806040016040528060008152602001600081525090565b8152602001611e2e604051806040016040528060008152602001600081525090565b8152602001611e50604051806040016040528060008152602001600081525090565b8152602001611e72604051806040016040528060008152602001600081525090565b8152602001611e94604051806040016040528060008152602001600081525090565b8152602001611eb6604051806040016040528060008152602001600081525090565b8152602001611ed8604051806040016040528060008152602001600081525090565b8152602001611efa604051806040016040528060008152602001600081525090565b8152602001611f1c604051806040016040528060008152602001600081525090565b8152602001611f3e604051806040016040528060008152602001600081525090565b8152602001611f60604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b0381168114611f8b57600080fd5b919050565b600060208284031215611fa257600080fd5b611c9982611f74565b600060208284031215611fbd57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b0381118282101715611ffd57611ffd611fc4565b60405290565b604051601f8201601f191681016001600160401b038111828210171561202b5761202b611fc4565b604052919050565b80356001600160401b0381168114611f8b57600080fd5b60006060828403121561205c57600080fd5b604051606081018181106001600160401b038211171561207e5761207e611fc4565b60405290508061208d83612033565b815261209b60208401612033565b6020820152604083013560408201525092915050565b6000604082840312156120c357600080fd5b604051604081018181106001600160401b03821117156120e5576120e5611fc4565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561211457600080fd5b61211e858561204a565b925061048080605f198301121561213457600080fd5b61213c611fda565b915061214b86606087016120b1565b825261215a8660a087016120b1565b602083015261216c8660e087016120b1565b6040830152610120612180878288016120b1565b6060840152610160612194888289016120b1565b60808501526101a06121a889828a016120b1565b60a08601526101e06121bc8a828b016120b1565b60c08701526102206121d08b828c016120b1565b60e08801526102606121e48c828d016120b1565b6101008901526102a06121f98d828e016120b1565b878a015261220b8d6102e08e016120b1565b6101408a015261221f8d6103208e016120b1565b868a01526122318d6103608e016120b1565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b600080604083850312156122c657600080fd5b6122cf83611f74565b91506020808401356001600160401b03808211156122ec57600080fd5b818601915086601f83011261230057600080fd5b81358181111561231257612312611fc4565b612324601f8201601f19168501612003565b9150808252878482850101111561233a57600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff81168114611f8b57600080fd5b60006020828403121561237e57600080fd5b611c9982612358565b60008060008084860361012081121561239f57600080fd5b6123a9878761204a565b94506080605f19820112156123bd57600080fd5b50604051608081018181106001600160401b03821117156123e0576123e0611fc4565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061241a60e08601612358565b91506124296101008601611f74565b905092959194509250565b60005b8381101561244f578181015183820152602001612437565b50506000910152565b6020815260008251806020840152612477816040850160208701612434565b601f01601f19169190910160400192915050565b6000806040838503121561249e57600080fd5b50508035926020909101359150565b634e487b7160e01b600052601160045260246000fd5b81810381811115610ccd57610ccd6124ad565b634e487b7160e01b600052603260045260246000fd5b6000816124fb576124fb6124ad565b506000190190565b8060005b6007811015610ed3578151845260209384019390910190600101612507565b61253b82825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061259e8185018380518252602090810151910152565b60a083015191506101406125be8186018480518252602090810151910152565b60c084015192506101806125de8187018580518252602090810151910152565b60e085015193506101c06125fe8188018680518252602090810151910152565b9285015193506102009261261e8785018680518252602090810151910152565b610120860151945061024061263f8189018780518252602090810151910152565b9286015194506102809261265f8885018780518252602090810151910152565b61016087015195506102c0612680818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a60820190508451825260208501516020830152604085015161273d604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a085015161010061278a8185018380518252602090810151910152565b60c087015191506101406127aa8186018480518252602090810151910152565b60e088015192506101806127ca8187018580518252602090810151910152565b9188015192506101c0916127ea8684018580518252602090810151910152565b610120890151935061020061280b8188018680518252602090810151910152565b9189015193506102409161282b8784018680518252602090810151910152565b6101608a0151945061028061284c8189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e0830152612923610500830185612503565b6129316105e0830184612526565b949350505050565b60006020828403121561294b57600080fd5b81518015158114611c9957600080fd5b6001600160401b0382811682821603908082111561297b5761297b6124ad565b5092915050565b60006001600160401b0380831681810361299e5761299e6124ad565b6001019392505050565b6000602082840312156129ba57600080fd5b5051919050565b600082516129d3818460208701612434565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a" +"0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612a0662000104600039600081816110d0015281816110f901526112780152612a066000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610482578063c23b9e9e146104c0578063d24d933d146104f9578063e030330114610529578063f2fde38b14610549578063f9e50d191461056957600080fd5b8063826e41fc146103465780638584d23f146103725780638da5cb5b146103af57806396c1ca61146103ec5780639baa3cc91461040c5780639fdb54a71461042c57600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b15780634f1ef286146102f457806352d1902d1461030757806369cc6a041461031c578063715018a61461033157600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b366004611f8c565b61057e565b005b34801561017e57600080fd5b5061019261018d366004611fa7565b610631565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b506101706102183660046120fb565b61067c565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b50435b6040519081526020016101c7565b3480156102bd57600080fd5b506000546001546002546003546102d49392919084565b6040805194855260208501939093529183015260608201526080016101c7565b6101706103023660046122af565b6107d7565b34801561031357600080fd5b506102a36107f6565b34801561032857600080fd5b50610170610813565b34801561033d57600080fd5b50610170610882565b34801561035257600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561037e57600080fd5b5061039261038d366004611fa7565b610894565b604080519283526001600160401b039091166020830152016101c7565b3480156103bb57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103f857600080fd5b50610170610407366004612368565b6109c7565b34801561041857600080fd5b50610170610427366004612383565b610a50565b34801561043857600080fd5b5060065460075461045c916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561048e57600080fd5b506104b3604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c79190612454565b3480156104cc57600080fd5b506008546104e490600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050557600080fd5b5060045460055461045c916001600160401b0380821692600160401b909204169083565b34801561053557600080fd5b50610362610544366004612487565b610b74565b34801561055557600080fd5b50610170610564366004611f8c565b610cd3565b34801561057557600080fd5b506009546102a3565b610586610d16565b6001600160a01b0381166105ad5760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105dc5760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064157600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a157506008546001600160a01b03163314155b156106bf576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106f8575060065460208301516001600160401b03600160401b9092048216911611155b156107165760405163051c46ef60e01b815260040160405180910390fd5b6107238260400151610d71565b61072d8282610de1565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561077a6107734390565b4284610ed9565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107cb91815260200190565b60405180910390a35050565b6107df6110c5565b6107e88261116a565b6107f282826111ab565b5050565b600061080061126d565b506000805160206129da83398151915290565b61081b610d16565b6008546001600160a01b03161561086757600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b61088a610d16565b61088060006112b6565b600980546000918291906108a96001836124bf565b815481106108b9576108b96124d2565b6000918252602090912060029091020154600160801b90046001600160401b03168411156108fa57604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b818110156109c057846009828154811061092a5761092a6124d2565b6000918252602090912060029091020154600160801b90046001600160401b0316106109b85760098181548110610963576109636124d2565b90600052602060002090600202016001015460098281548110610988576109886124d2565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b60010161090e565b5050915091565b6109cf610d16565b610e108163ffffffff1610806109ee57506301e133808163ffffffff16115b80610a0c575060085463ffffffff600160a01b909104811690821611155b15610a2a576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610a955750825b90506000826001600160401b03166001148015610ab15750303b155b905081158015610abf575080155b15610add5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b0757845460ff60401b1916600160401b1785555b610b1086611327565b610b18611338565b610b23898989611340565b8315610b6957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b60095460009043841180610b86575080155b80610bd15750600854600980549091600160c01b90046001600160401b0316908110610bb457610bb46124d2565b60009182526020909120600290910201546001600160401b031684105b15610bef5760405163b0b4387760e01b815260040160405180910390fd5b60008080610bfe6001856124bf565b90505b81610c9c57600854600160c01b90046001600160401b03168110610c9c578660098281548110610c3357610c336124d2565b60009182526020909120600290910201546001600160401b031611610c8a576001915060098181548110610c6957610c696124d2565b60009182526020909120600290910201546001600160401b03169250610c9c565b80610c94816124e8565b915050610c01565b81610cba5760405163b0b4387760e01b815260040160405180910390fd5b85610cc584896124bf565b119450505050505b92915050565b610cdb610d16565b6001600160a01b038116610d0a57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d13816112b6565b50565b33610d487f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146108805760405163118cdaa760e01b8152336004820152602401610d01565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806107f25760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610d01565b6000610deb61146d565b9050610df5611cc5565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273__$5c5c07cf4f55be9472c2b47d897172e765$__9063ce537a7790610e7590859085908890600401612706565b602060405180830381865af4158015610e92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb69190612935565b610ed3576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590610f4f575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610f1957610f196124d2565b6000918252602090912060029091020154610f4490600160401b90046001600160401b031684612957565b6001600160401b0316115b15610fe357600854600980549091600160c01b90046001600160401b0316908110610f7c57610f7c6124d2565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b0316906018610fbd8361297e565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061114c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111406000805160206129da833981519152546001600160a01b031690565b6001600160a01b031614155b156108805760405163703e46dd60e11b815260040160405180910390fd5b611172610d16565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d90602001610626565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611205575060408051601f3d908101601f19168201909252611202918101906129a4565b60015b61122d57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d01565b6000805160206129da833981519152811461125e57604051632a87526960e21b815260048101829052602401610d01565b6112688383611a9c565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108805760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61132f611af2565b610d1381611b3b565b610880611af2565b82516001600160401b0316151580611364575060208301516001600160401b031615155b8061137157506020820151155b8061137e57506040820151155b8061138b57506060820151155b8061139557508151155b806113a75750610e108163ffffffff16105b806113bb57506301e133808163ffffffff16115b156113d9576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b611475611ce3565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611aa582611b43565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611aea576112688282611ba8565b6107f2611c1e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661088057604051631afcd79f60e31b815260040160405180910390fd5b610cdb611af2565b806001600160a01b03163b600003611b7957604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d01565b6000805160206129da83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611bc591906129bd565b600060405180830381855af49150503d8060008114611c00576040519150601f19603f3d011682016040523d82523d6000602084013e611c05565b606091505b5091509150611c15858383611c3d565b95945050505050565b34156108805760405163b398979f60e01b815260040160405180910390fd5b606082611c5257611c4d82611c9c565b611c95565b8151158015611c6957506001600160a01b0384163b155b15611c9257604051639996b31560e01b81526001600160a01b0385166004820152602401610d01565b50805b9392505050565b805115611cac5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611d1a604051806040016040528060008152602001600081525090565b8152602001611d3c604051806040016040528060008152602001600081525090565b8152602001611d5e604051806040016040528060008152602001600081525090565b8152602001611d80604051806040016040528060008152602001600081525090565b8152602001611da2604051806040016040528060008152602001600081525090565b8152602001611dc4604051806040016040528060008152602001600081525090565b8152602001611de6604051806040016040528060008152602001600081525090565b8152602001611e08604051806040016040528060008152602001600081525090565b8152602001611e2a604051806040016040528060008152602001600081525090565b8152602001611e4c604051806040016040528060008152602001600081525090565b8152602001611e6e604051806040016040528060008152602001600081525090565b8152602001611e90604051806040016040528060008152602001600081525090565b8152602001611eb2604051806040016040528060008152602001600081525090565b8152602001611ed4604051806040016040528060008152602001600081525090565b8152602001611ef6604051806040016040528060008152602001600081525090565b8152602001611f18604051806040016040528060008152602001600081525090565b8152602001611f3a604051806040016040528060008152602001600081525090565b8152602001611f5c604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b0381168114611f8757600080fd5b919050565b600060208284031215611f9e57600080fd5b611c9582611f70565b600060208284031215611fb957600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b0381118282101715611ff957611ff9611fc0565b60405290565b604051601f8201601f191681016001600160401b038111828210171561202757612027611fc0565b604052919050565b80356001600160401b0381168114611f8757600080fd5b60006060828403121561205857600080fd5b604051606081018181106001600160401b038211171561207a5761207a611fc0565b6040529050806120898361202f565b81526120976020840161202f565b6020820152604083013560408201525092915050565b6000604082840312156120bf57600080fd5b604051604081018181106001600160401b03821117156120e1576120e1611fc0565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561211057600080fd5b61211a8585612046565b925061048080605f198301121561213057600080fd5b612138611fd6565b915061214786606087016120ad565b82526121568660a087016120ad565b60208301526121688660e087016120ad565b604083015261012061217c878288016120ad565b6060840152610160612190888289016120ad565b60808501526101a06121a489828a016120ad565b60a08601526101e06121b88a828b016120ad565b60c08701526102206121cc8b828c016120ad565b60e08801526102606121e08c828d016120ad565b6101008901526102a06121f58d828e016120ad565b878a01526122078d6102e08e016120ad565b6101408a015261221b8d6103208e016120ad565b868a015261222d8d6103608e016120ad565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b600080604083850312156122c257600080fd5b6122cb83611f70565b91506020808401356001600160401b03808211156122e857600080fd5b818601915086601f8301126122fc57600080fd5b81358181111561230e5761230e611fc0565b612320601f8201601f19168501611fff565b9150808252878482850101111561233657600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff81168114611f8757600080fd5b60006020828403121561237a57600080fd5b611c9582612354565b60008060008084860361012081121561239b57600080fd5b6123a58787612046565b94506080605f19820112156123b957600080fd5b50604051608081018181106001600160401b03821117156123dc576123dc611fc0565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061241660e08601612354565b91506124256101008601611f70565b905092959194509250565b60005b8381101561244b578181015183820152602001612433565b50506000910152565b6020815260008251806020840152612473816040850160208701612430565b601f01601f19169190910160400192915050565b6000806040838503121561249a57600080fd5b50508035926020909101359150565b634e487b7160e01b600052601160045260246000fd5b81810381811115610ccd57610ccd6124a9565b634e487b7160e01b600052603260045260246000fd5b6000816124f7576124f76124a9565b506000190190565b8060005b6007811015610ed3578151845260209384019390910190600101612503565b61253782825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061259a8185018380518252602090810151910152565b60a083015191506101406125ba8186018480518252602090810151910152565b60c084015192506101806125da8187018580518252602090810151910152565b60e085015193506101c06125fa8188018680518252602090810151910152565b9285015193506102009261261a8785018680518252602090810151910152565b610120860151945061024061263b8189018780518252602090810151910152565b9286015194506102809261265b8885018780518252602090810151910152565b61016087015195506102c061267c818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a608201905084518252602085015160208301526040850151612739604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a08501516101006127868185018380518252602090810151910152565b60c087015191506101406127a68186018480518252602090810151910152565b60e088015192506101806127c68187018580518252602090810151910152565b9188015192506101c0916127e68684018580518252602090810151910152565b61012089015193506102006128078188018680518252602090810151910152565b918901519350610240916128278784018680518252602090810151910152565b6101608a015194506102806128488189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e083015261291f6105008301856124ff565b61292d6105e0830184612522565b949350505050565b60006020828403121561294757600080fd5b81518015158114611c9557600080fd5b6001600160401b03828116828216039080821115612977576129776124a9565b5092915050565b60006001600160401b0380831681810361299a5761299a6124a9565b6001019392505050565b6000602082840312156129b657600080fd5b5051919050565b600082516129cf818460208701612430565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a" diff --git a/contracts/src/LightClient.sol b/contracts/src/LightClient.sol index 944ed5f9fb..6fed84c1b2 100644 --- a/contracts/src/LightClient.sol +++ b/contracts/src/LightClient.sol @@ -215,8 +215,6 @@ contract LightClient is Initializable, OwnableUpgradeable, UUPSUpgradeable { finalizedState = _genesis; stateHistoryRetentionPeriod = _stateHistoryRetentionPeriod; - - updateStateHistory(uint64(currentBlockNumber()), uint64(block.timestamp), _genesis); } // === State Modifying APIs === From 4b490cd4d095f81ae5d3f1a1f115e39382a2b5ab Mon Sep 17 00:00:00 2001 From: Alysia Huggins Date: Mon, 13 Jan 2025 16:32:08 -0500 Subject: [PATCH 7/8] remove disable initializer --- .../artifacts/LightClientArbitrum_bytecode.json | 2 +- contract-bindings/src/light_client_arbitrum.rs | 4 +--- contracts/src/LightClientArbitrum.sol | 5 ----- 3 files changed, 2 insertions(+), 9 deletions(-) diff --git a/contract-bindings/artifacts/LightClientArbitrum_bytecode.json b/contract-bindings/artifacts/LightClientArbitrum_bytecode.json index 4e648d05dd..8f03a3e2fc 100644 --- a/contract-bindings/artifacts/LightClientArbitrum_bytecode.json +++ b/contract-bindings/artifacts/LightClientArbitrum_bytecode.json @@ -1 +1 @@ -"0x60a0604052306080523480156200001557600080fd5b506200002062000030565b6200002a62000030565b620000e4565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000815760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000e15780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612a7e6200010e600039600081816111480152818161117101526112f00152612a7e6000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b366004612004565b610584565b005b34801561017e57600080fd5b5061019261018d36600461201f565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612173565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b610170610308366004612327565b610848565b34801561031957600080fd5b506102a9610867565b34801561032e57600080fd5b50610170610884565b34801561034357600080fd5b506101706108f3565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b5061039861039336600461201f565b610905565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046123e0565b610a38565b34801561041e57600080fd5b5061017061042d3660046123fb565b610ac1565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906124cc565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046124ff565b610be5565b34801561055b57600080fd5b5061017061056a366004612004565b610d4b565b34801561057b57600080fd5b506009546102a9565b61058c610d8e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610de9565b6107338282610e59565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610f51565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b600060646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108439190612521565b905090565b61085061113d565b610859826111e2565b6108638282611223565b5050565b60006108716112e5565b50600080516020612a5283398151915290565b61088c610d8e565b6008546001600160a01b0316156108d857600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b6108fb610d8e565b6108f1600061132e565b6009805460009182919061091a600183612550565b8154811061092a5761092a612563565b6000918252602090912060029091020154600160801b90046001600160401b031684111561096b57604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610a3157846009828154811061099b5761099b612563565b6000918252602090912060029091020154600160801b90046001600160401b031610610a2957600981815481106109d4576109d4612563565b906000526020600020906002020160010154600982815481106109f9576109f9612563565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b60010161097f565b5050915091565b610a40610d8e565b610e108163ffffffff161080610a5f57506301e133808163ffffffff16115b80610a7d575060085463ffffffff600160a01b909104811690821611155b15610a9b576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b065750825b90506000826001600160401b03166001148015610b225750303b155b905081158015610b30575080155b15610b4e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b7857845460ff60401b1916600160401b1785555b610b818661139f565b610b896113b0565b610b948989896113b8565b8315610bda57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610bf36107de565b841180610bfe575080155b80610c495750600854600980549091600160c01b90046001600160401b0316908110610c2c57610c2c612563565b60009182526020909120600290910201546001600160401b031684105b15610c675760405163b0b4387760e01b815260040160405180910390fd5b60008080610c76600185612550565b90505b81610d1457600854600160c01b90046001600160401b03168110610d14578660098281548110610cab57610cab612563565b60009182526020909120600290910201546001600160401b031611610d02576001915060098181548110610ce157610ce1612563565b60009182526020909120600290910201546001600160401b03169250610d14565b80610d0c81612579565b915050610c79565b81610d325760405163b0b4387760e01b815260040160405180910390fd5b85610d3d8489612550565b119450505050505b92915050565b610d53610d8e565b6001600160a01b038116610d8257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d8b8161132e565b50565b33610dc07f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146108f15760405163118cdaa760e01b8152336004820152602401610d79565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108635760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610d79565b6000610e636114e5565b9050610e6d611d3d565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273__$5c5c07cf4f55be9472c2b47d897172e765$__9063ce537a7790610eed90859085908890600401612797565b602060405180830381865af4158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e91906129c6565b610f4b576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590610fc7575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610f9157610f91612563565b6000918252602090912060029091020154610fbc90600160401b90046001600160401b0316846129e8565b6001600160401b0316115b1561105b57600854600980549091600160c01b90046001600160401b0316908110610ff457610ff4612563565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b031690601861103583612a0f565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806111c457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111b8600080516020612a52833981519152546001600160a01b031690565b6001600160a01b031614155b156108f15760405163703e46dd60e11b815260040160405180910390fd5b6111ea610d8e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561127d575060408051601f3d908101601f1916820190925261127a91810190612521565b60015b6112a557604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d79565b600080516020612a5283398151915281146112d657604051632a87526960e21b815260048101829052602401610d79565b6112e08383611b14565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108f15760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6113a7611b6a565b610d8b81611bb3565b6108f1611b6a565b82516001600160401b03161515806113dc575060208301516001600160401b031615155b806113e957506020820151155b806113f657506040820151155b8061140357506060820151155b8061140d57508151155b8061141f5750610e108163ffffffff16105b8061143357506301e133808163ffffffff16115b15611451576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6114ed611d5b565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611b1d82611bbb565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611b62576112e08282611c20565b610863611c96565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166108f157604051631afcd79f60e31b815260040160405180910390fd5b610d53611b6a565b806001600160a01b03163b600003611bf157604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d79565b600080516020612a5283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611c3d9190612a35565b600060405180830381855af49150503d8060008114611c78576040519150601f19603f3d011682016040523d82523d6000602084013e611c7d565b606091505b5091509150611c8d858383611cb5565b95945050505050565b34156108f15760405163b398979f60e01b815260040160405180910390fd5b606082611cca57611cc582611d14565b611d0d565b8151158015611ce157506001600160a01b0384163b155b15611d0a57604051639996b31560e01b81526001600160a01b0385166004820152602401610d79565b50805b9392505050565b805115611d245780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611d92604051806040016040528060008152602001600081525090565b8152602001611db4604051806040016040528060008152602001600081525090565b8152602001611dd6604051806040016040528060008152602001600081525090565b8152602001611df8604051806040016040528060008152602001600081525090565b8152602001611e1a604051806040016040528060008152602001600081525090565b8152602001611e3c604051806040016040528060008152602001600081525090565b8152602001611e5e604051806040016040528060008152602001600081525090565b8152602001611e80604051806040016040528060008152602001600081525090565b8152602001611ea2604051806040016040528060008152602001600081525090565b8152602001611ec4604051806040016040528060008152602001600081525090565b8152602001611ee6604051806040016040528060008152602001600081525090565b8152602001611f08604051806040016040528060008152602001600081525090565b8152602001611f2a604051806040016040528060008152602001600081525090565b8152602001611f4c604051806040016040528060008152602001600081525090565b8152602001611f6e604051806040016040528060008152602001600081525090565b8152602001611f90604051806040016040528060008152602001600081525090565b8152602001611fb2604051806040016040528060008152602001600081525090565b8152602001611fd4604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b0381168114611fff57600080fd5b919050565b60006020828403121561201657600080fd5b611d0d82611fe8565b60006020828403121561203157600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b038111828210171561207157612071612038565b60405290565b604051601f8201601f191681016001600160401b038111828210171561209f5761209f612038565b604052919050565b80356001600160401b0381168114611fff57600080fd5b6000606082840312156120d057600080fd5b604051606081018181106001600160401b03821117156120f2576120f2612038565b604052905080612101836120a7565b815261210f602084016120a7565b6020820152604083013560408201525092915050565b60006040828403121561213757600080fd5b604051604081018181106001600160401b038211171561215957612159612038565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561218857600080fd5b61219285856120be565b925061048080605f19830112156121a857600080fd5b6121b061204e565b91506121bf8660608701612125565b82526121ce8660a08701612125565b60208301526121e08660e08701612125565b60408301526101206121f487828801612125565b606084015261016061220888828901612125565b60808501526101a061221c89828a01612125565b60a08601526101e06122308a828b01612125565b60c08701526102206122448b828c01612125565b60e08801526102606122588c828d01612125565b6101008901526102a061226d8d828e01612125565b878a015261227f8d6102e08e01612125565b6101408a01526122938d6103208e01612125565b868a01526122a58d6103608e01612125565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561233a57600080fd5b61234383611fe8565b91506020808401356001600160401b038082111561236057600080fd5b818601915086601f83011261237457600080fd5b81358181111561238657612386612038565b612398601f8201601f19168501612077565b915080825287848285010111156123ae57600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff81168114611fff57600080fd5b6000602082840312156123f257600080fd5b611d0d826123cc565b60008060008084860361012081121561241357600080fd5b61241d87876120be565b94506080605f198201121561243157600080fd5b50604051608081018181106001600160401b038211171561245457612454612038565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061248e60e086016123cc565b915061249d6101008601611fe8565b905092959194509250565b60005b838110156124c35781810151838201526020016124ab565b50506000910152565b60208152600082518060208401526124eb8160408501602087016124a8565b601f01601f19169190910160400192915050565b6000806040838503121561251257600080fd5b50508035926020909101359150565b60006020828403121561253357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610d4557610d4561253a565b634e487b7160e01b600052603260045260246000fd5b6000816125885761258861253a565b506000190190565b8060005b6007811015610f4b578151845260209384019390910190600101612594565b6125c882825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061262b8185018380518252602090810151910152565b60a0830151915061014061264b8186018480518252602090810151910152565b60c0840151925061018061266b8187018580518252602090810151910152565b60e085015193506101c061268b8188018680518252602090810151910152565b928501519350610200926126ab8785018680518252602090810151910152565b61012086015194506102406126cc8189018780518252602090810151910152565b928601519450610280926126ec8885018780518252602090810151910152565b61016087015195506102c061270d818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516127ca604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a08501516101006128178185018380518252602090810151910152565b60c087015191506101406128378186018480518252602090810151910152565b60e088015192506101806128578187018580518252602090810151910152565b9188015192506101c0916128778684018580518252602090810151910152565b61012089015193506102006128988188018680518252602090810151910152565b918901519350610240916128b88784018680518252602090810151910152565b6101608a015194506102806128d98189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e08301526129b0610500830185612590565b6129be6105e08301846125b3565b949350505050565b6000602082840312156129d857600080fd5b81518015158114611d0d57600080fd5b6001600160401b03828116828216039080821115612a0857612a0861253a565b5092915050565b60006001600160401b03808316818103612a2b57612a2b61253a565b6001019392505050565b60008251612a478184602087016124a8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a" +"0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000da565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000775760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051612a7e62000104600039600081816111480152818161117101526112f00152612a7e6000f3fe60806040526004361061014b5760003560e01c8063826e41fc116100b6578063ad3cb1cc1161006f578063ad3cb1cc14610488578063c23b9e9e146104c6578063d24d933d146104ff578063e03033011461052f578063f2fde38b1461054f578063f9e50d191461056f57600080fd5b8063826e41fc1461034c5780638584d23f146103785780638da5cb5b146103b557806396c1ca61146103f25780639baa3cc9146104125780639fdb54a71461043257600080fd5b8063378ec23b11610108578063378ec23b14610294578063426d3194146102b75780634f1ef286146102fa57806352d1902d1461030d57806369cc6a0414610322578063715018a61461033757600080fd5b8063013fa5fc1461015057806302b592f3146101725780630d8e6e2c146101d05780632063d4f7146101fd5780632f79889d1461021d578063313df7b11461025c575b600080fd5b34801561015c57600080fd5b5061017061016b366004612004565b610584565b005b34801561017e57600080fd5b5061019261018d36600461201f565b610637565b6040516101c794939291906001600160401b039485168152928416602084015292166040820152606081019190915260800190565b60405180910390f35b3480156101dc57600080fd5b506040805160018152600060208201819052918101919091526060016101c7565b34801561020957600080fd5b50610170610218366004612173565b610682565b34801561022957600080fd5b5060085461024490600160c01b90046001600160401b031681565b6040516001600160401b0390911681526020016101c7565b34801561026857600080fd5b5060085461027c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b3480156102a057600080fd5b506102a96107de565b6040519081526020016101c7565b3480156102c357600080fd5b506000546001546002546003546102da9392919084565b6040805194855260208501939093529183015260608201526080016101c7565b610170610308366004612327565b610848565b34801561031957600080fd5b506102a9610867565b34801561032e57600080fd5b50610170610884565b34801561034357600080fd5b506101706108f3565b34801561035857600080fd5b506008546001600160a01b031615155b60405190151581526020016101c7565b34801561038457600080fd5b5061039861039336600461201f565b610905565b604080519283526001600160401b039091166020830152016101c7565b3480156103c157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661027c565b3480156103fe57600080fd5b5061017061040d3660046123e0565b610a38565b34801561041e57600080fd5b5061017061042d3660046123fb565b610ac1565b34801561043e57600080fd5b50600654600754610462916001600160401b0380821692600160401b909204169083565b604080516001600160401b039485168152939092166020840152908201526060016101c7565b34801561049457600080fd5b506104b9604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101c791906124cc565b3480156104d257600080fd5b506008546104ea90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101c7565b34801561050b57600080fd5b50600454600554610462916001600160401b0380821692600160401b909204169083565b34801561053b57600080fd5b5061036861054a3660046124ff565b610be5565b34801561055b57600080fd5b5061017061056a366004612004565b610d4b565b34801561057b57600080fd5b506009546102a9565b61058c610d8e565b6001600160a01b0381166105b35760405163e6c4247b60e01b815260040160405180910390fd5b6008546001600160a01b03908116908216036105e25760405163a863aec960e01b815260040160405180910390fd5b600880546001600160a01b0319166001600160a01b0383169081179091556040519081527f8017bb887fdf8fca4314a9d40f6e73b3b81002d67e5cfa85d88173af6aa46072906020015b60405180910390a150565b6009818154811061064757600080fd5b6000918252602090912060029091020180546001909101546001600160401b038083169350600160401b8304811692600160801b9004169084565b6008546001600160a01b0316151580156106a757506008546001600160a01b03163314155b156106c5576040516301474c8f60e71b815260040160405180910390fd5b60065482516001600160401b0391821691161115806106fe575060065460208301516001600160401b03600160401b9092048216911611155b1561071c5760405163051c46ef60e01b815260040160405180910390fd5b6107298260400151610de9565b6107338282610e59565b81516006805460208501516001600160401b03908116600160401b026001600160801b0319909216931692909217919091179055604082015160075561078161077a6107de565b4284610f51565b81602001516001600160401b031682600001516001600160401b03167fa04a773924505a418564363725f56832f5772e6b8d0dbd6efce724dfe803dae684604001516040516107d291815260200190565b60405180910390a35050565b600060646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561081f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108439190612521565b905090565b61085061113d565b610859826111e2565b6108638282611223565b5050565b60006108716112e5565b50600080516020612a5283398151915290565b61088c610d8e565b6008546001600160a01b0316156108d857600880546001600160a01b03191690556040517f9a5f57de856dd668c54dd95e5c55df93432171cbca49a8776d5620ea59c0245090600090a1565b60405163a863aec960e01b815260040160405180910390fd5b565b6108fb610d8e565b6108f1600061132e565b6009805460009182919061091a600183612550565b8154811061092a5761092a612563565b6000918252602090912060029091020154600160801b90046001600160401b031684111561096b57604051631856a49960e21b815260040160405180910390fd5b600854600160c01b90046001600160401b03165b81811015610a3157846009828154811061099b5761099b612563565b6000918252602090912060029091020154600160801b90046001600160401b031610610a2957600981815481106109d4576109d4612563565b906000526020600020906002020160010154600982815481106109f9576109f9612563565b906000526020600020906002020160000160109054906101000a90046001600160401b0316935093505050915091565b60010161097f565b5050915091565b610a40610d8e565b610e108163ffffffff161080610a5f57506301e133808163ffffffff16115b80610a7d575060085463ffffffff600160a01b909104811690821611155b15610a9b576040516307a5077760e51b815260040160405180910390fd5b6008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610b065750825b90506000826001600160401b03166001148015610b225750303b155b905081158015610b30575080155b15610b4e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610b7857845460ff60401b1916600160401b1785555b610b818661139f565b610b896113b0565b610b948989896113b8565b8315610bda57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600954600090610bf36107de565b841180610bfe575080155b80610c495750600854600980549091600160c01b90046001600160401b0316908110610c2c57610c2c612563565b60009182526020909120600290910201546001600160401b031684105b15610c675760405163b0b4387760e01b815260040160405180910390fd5b60008080610c76600185612550565b90505b81610d1457600854600160c01b90046001600160401b03168110610d14578660098281548110610cab57610cab612563565b60009182526020909120600290910201546001600160401b031611610d02576001915060098181548110610ce157610ce1612563565b60009182526020909120600290910201546001600160401b03169250610d14565b80610d0c81612579565b915050610c79565b81610d325760405163b0b4387760e01b815260040160405180910390fd5b85610d3d8489612550565b119450505050505b92915050565b610d53610d8e565b6001600160a01b038116610d8257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610d8b8161132e565b50565b33610dc07f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146108f15760405163118cdaa760e01b8152336004820152602401610d79565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018110806108635760405162461bcd60e51b815260206004820152601b60248201527f426e3235343a20696e76616c6964207363616c6172206669656c6400000000006044820152606401610d79565b6000610e636114e5565b9050610e6d611d3d565b83516001600160401b0390811682526020850151168160016020020152604084810151828201526001546060830152600254608083015260035460a083015260005460c08301525163ce537a7760e01b815273__$5c5c07cf4f55be9472c2b47d897172e765$__9063ce537a7790610eed90859085908890600401612797565b602060405180830381865af4158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e91906129c6565b610f4b576040516309bde33960e01b815260040160405180910390fd5b50505050565b60095415801590610fc7575060085460098054600160a01b830463ffffffff1692600160c01b90046001600160401b0316908110610f9157610f91612563565b6000918252602090912060029091020154610fbc90600160401b90046001600160401b0316846129e8565b6001600160401b0316115b1561105b57600854600980549091600160c01b90046001600160401b0316908110610ff457610ff4612563565b60009182526020822060029091020180546001600160c01b03191681556001015560088054600160c01b90046001600160401b031690601861103583612a0f565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550505b604080516080810182526001600160401b0394851681529284166020808501918252830151851684830190815292909101516060840190815260098054600181018255600091909152935160029094027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af81018054935194518716600160801b0267ffffffffffffffff60801b19958816600160401b026001600160801b03199095169690971695909517929092179290921693909317909155517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b090910155565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806111c457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166111b8600080516020612a52833981519152546001600160a01b031690565b6001600160a01b031614155b156108f15760405163703e46dd60e11b815260040160405180910390fd5b6111ea610d8e565b6040516001600160a01b03821681527ff78721226efe9a1bb678189a16d1554928b9f2192e2cb93eeda83b79fa40007d9060200161062c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561127d575060408051601f3d908101601f1916820190925261127a91810190612521565b60015b6112a557604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610d79565b600080516020612a5283398151915281146112d657604051632a87526960e21b815260048101829052602401610d79565b6112e08383611b14565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108f15760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6113a7611b6a565b610d8b81611bb3565b6108f1611b6a565b82516001600160401b03161515806113dc575060208301516001600160401b031615155b806113e957506020820151155b806113f657506040820151155b8061140357506060820151155b8061140d57508151155b8061141f5750610e108163ffffffff16105b8061143357506301e133808163ffffffff16115b15611451576040516350dd03f760e11b815260040160405180910390fd5b8251600480546020808701516001600160401b03908116600160401b026001600160801b03199384169190951690811785179093556040968701516005819055865160005590860151600155958501516002556060909401516003556006805490941617179091556007919091556008805463ffffffff909216600160a01b0263ffffffff60a01b19909216919091179055565b6114ed611d5b565b621000008152600760208201527f23783d0e9777b7af65fbf849da7edb75e74b1eaf503e025d7f2f7f80991befa26040820151527f2a4e2fe8adfa53f468525582d5184c4c70bbdb946c21f216418a9879705e54a76020604083015101527f0624b2c1e77f24afceaf39451743b9fa80d5853fca7ba00389c675650774009b6060820151527f250d7719e94ca2df00dfe327938f5a8d4d837779b99837ca777a53d39127b1796020606083015101527f0dc09515152eaea66d0db2f571cc995e369d26fe647394f10db5398c917519dc6080820151527f1273144d6cec2c4a68b24a149379c0f5592bb7fbddbe32fa171919950ca404cb6020608083015101527f119521bb68caec216e2f05eeb466fb3abfe1f39baf7fe7cb392ea057b6a2d9bf60a0820151527f2d52adeaba8045e53ab526fe9982d0ea452def6b3ea0253d27a19ef3b46e8428602060a083015101527f16c3b5b217d302975a920d13374524d7a52e4a50fd7fb930842271ebf4a84efd60c0820151527f200788916b907b196972bde304318e885a2521514b2db5e4a11899c51204f089602060c083015101527f1127581afe753defca9aef12e7332db9978a200b1699ce3888c0f3aea6111dc360e0820151527f0881e13f00723be1a04872ed02b2d078c31e80feaf27724e262ce97c2cb0bb1d602060e083015101527f1482a3a6bb91d6483d153683e2404f2f5546e0e895530fdf132091498406e3de610100820151527efa52db3d52d905ead1248102f3a80a43a90d8400c68f60a62c543c417b2f4b602061010083015101527f0a57dadd4a55199525ac6ac6fabc87a4cccfdc98142bcef9dbf47de00ecc5164610120820151527f18d95abd9b8e12c36936aa218cfff582548a6bbff25c338c2006eaeb1fe5b696602061012083015101527f2bc40e91dd169b8bc143a02952a1b6c6e627bfeb7a2bbe5078e14123f3c54c1c610140820151527f108d65a20c579b6d9883275eb6889fc3f5fc79735ca9f611a13b67daa2fbc8d0602061014083015101527f21bc1f86d0608e5f0626b467ee6f8282b619223f60a7acb0fc63ba7bdaf783be610160820151527f05ef3282f8eef01515fb9a8a7d6ca06b8b007d1d512403efb268fb03ce5f09e9602061016083015101527f2cab66c1cb5a83869e73ac34fbe467486999babd541d9010ee9a804806eee4ef610180820151527f2db1982419c5a4a17593acff9535fa967683d75c8aec01319b64b84aada2ad84602061018083015101527f2c38667c6c7eb868bdd30c34dd3f4b84d9b9b1a27d7867b364c8b7831423e9086101a0820151527f2b2cb4044dd51165c48138219d51cf8d1689f91ed3eeefead6e055eb488a2ce260206101a083015101527f2d48e54703011df2c74a14dafde3af4fd83ec71875d8ddc3554658640cc955016101c0820151527f243a99d80d32eb5408b59d5b08302bede070d3fb0a8efe2f2262f865bffb4d0d60206101c083015101527f0455d2325bf6269a66f07d838f55f36947a3cd9b87edd8480bced95cbb45cc116101e0820151527f0f66d9085a6ed60b838179987e240992bff4c0516ccf6ccde4a1ca94ce8b986460206101e083015101527f2bac0d23c8585d1487ec611b5effc97e5852fea43a7cba36ccdd2c207931f394610200820151527f1860b54e01a06aea5adb4b13bf5baebab92b736807a3a89ff2040992b06ee6ec602061020083015101527f0c0bfa1c2fc6f8ed01233d5168db1e1dfe725504f032f669f50a92ae77c72906610220820151527f0d741e124c7d1069b8a400cbcdcfd90128a533901ad4de1e037fe72984dc34cf602061022083015101527f01cfed30085c9efce04668205794aa39b1a8ee591234b4c77a22f8c26d899e05610240820151527f2ab68ac82d36cedb647d14a5b0035e8c9a0be84780b7bae1133a27a880966ed1602061024083015101527f072e1d50f8b5cf8d574b3847276477d95bbd5116351000841f728da44f4043b5610260820151527f23f8ea6eacd0876d57220f57eabacbe76a2323411663731a251d5dca36f1b59f602061026083015101527fb0838893ec1f237e8b07323b0744599f4e97b598b3b589bcc2bc37b8d5c418016102808201527fc18393c0fa30fe4e8b038e357ad851eae8de9107584effe7c7f1f651b2010e266102a082015290565b611b1d82611bbb565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115611b62576112e08282611c20565b610863611c96565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166108f157604051631afcd79f60e31b815260040160405180910390fd5b610d53611b6a565b806001600160a01b03163b600003611bf157604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610d79565b600080516020612a5283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051611c3d9190612a35565b600060405180830381855af49150503d8060008114611c78576040519150601f19603f3d011682016040523d82523d6000602084013e611c7d565b606091505b5091509150611c8d858383611cb5565b95945050505050565b34156108f15760405163b398979f60e01b815260040160405180910390fd5b606082611cca57611cc582611d14565b611d0d565b8151158015611ce157506001600160a01b0384163b155b15611d0a57604051639996b31560e01b81526001600160a01b0385166004820152602401610d79565b50805b9392505050565b805115611d245780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6040518060e001604052806007906020820280368337509192915050565b604051806102c001604052806000815260200160008152602001611d92604051806040016040528060008152602001600081525090565b8152602001611db4604051806040016040528060008152602001600081525090565b8152602001611dd6604051806040016040528060008152602001600081525090565b8152602001611df8604051806040016040528060008152602001600081525090565b8152602001611e1a604051806040016040528060008152602001600081525090565b8152602001611e3c604051806040016040528060008152602001600081525090565b8152602001611e5e604051806040016040528060008152602001600081525090565b8152602001611e80604051806040016040528060008152602001600081525090565b8152602001611ea2604051806040016040528060008152602001600081525090565b8152602001611ec4604051806040016040528060008152602001600081525090565b8152602001611ee6604051806040016040528060008152602001600081525090565b8152602001611f08604051806040016040528060008152602001600081525090565b8152602001611f2a604051806040016040528060008152602001600081525090565b8152602001611f4c604051806040016040528060008152602001600081525090565b8152602001611f6e604051806040016040528060008152602001600081525090565b8152602001611f90604051806040016040528060008152602001600081525090565b8152602001611fb2604051806040016040528060008152602001600081525090565b8152602001611fd4604051806040016040528060008152602001600081525090565b815260006020820181905260409091015290565b80356001600160a01b0381168114611fff57600080fd5b919050565b60006020828403121561201657600080fd5b611d0d82611fe8565b60006020828403121561203157600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040516102e081016001600160401b038111828210171561207157612071612038565b60405290565b604051601f8201601f191681016001600160401b038111828210171561209f5761209f612038565b604052919050565b80356001600160401b0381168114611fff57600080fd5b6000606082840312156120d057600080fd5b604051606081018181106001600160401b03821117156120f2576120f2612038565b604052905080612101836120a7565b815261210f602084016120a7565b6020820152604083013560408201525092915050565b60006040828403121561213757600080fd5b604051604081018181106001600160401b038211171561215957612159612038565b604052823581526020928301359281019290925250919050565b6000808284036104e081121561218857600080fd5b61219285856120be565b925061048080605f19830112156121a857600080fd5b6121b061204e565b91506121bf8660608701612125565b82526121ce8660a08701612125565b60208301526121e08660e08701612125565b60408301526101206121f487828801612125565b606084015261016061220888828901612125565b60808501526101a061221c89828a01612125565b60a08601526101e06122308a828b01612125565b60c08701526102206122448b828c01612125565b60e08801526102606122588c828d01612125565b6101008901526102a061226d8d828e01612125565b878a015261227f8d6102e08e01612125565b6101408a01526122938d6103208e01612125565b868a01526122a58d6103608e01612125565b6101808a01526103a08c0135948901949094526103c08b01356101c08901526103e08b0135928801929092526104008a01356102008801526104208a013590870152610440890135610240870152610460890135908601529287013561028085015250506104a0850135908201526104c0909301356102c08401525092909150565b6000806040838503121561233a57600080fd5b61234383611fe8565b91506020808401356001600160401b038082111561236057600080fd5b818601915086601f83011261237457600080fd5b81358181111561238657612386612038565b612398601f8201601f19168501612077565b915080825287848285010111156123ae57600080fd5b80848401858401376000848284010152508093505050509250929050565b803563ffffffff81168114611fff57600080fd5b6000602082840312156123f257600080fd5b611d0d826123cc565b60008060008084860361012081121561241357600080fd5b61241d87876120be565b94506080605f198201121561243157600080fd5b50604051608081018181106001600160401b038211171561245457612454612038565b8060405250606086013581526080860135602082015260a0860135604082015260c086013560608201528093505061248e60e086016123cc565b915061249d6101008601611fe8565b905092959194509250565b60005b838110156124c35781810151838201526020016124ab565b50506000910152565b60208152600082518060208401526124eb8160408501602087016124a8565b601f01601f19169190910160400192915050565b6000806040838503121561251257600080fd5b50508035926020909101359150565b60006020828403121561253357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610d4557610d4561253a565b634e487b7160e01b600052603260045260246000fd5b6000816125885761258861253a565b506000190190565b8060005b6007811015610f4b578151845260209384019390910190600101612594565b6125c882825180518252602090810151910152565b6020818101518051604085015290810151606084015250604081015180516080840152602081015160a0840152506060810151805160c0840152602081015160e084015250608081015161010061262b8185018380518252602090810151910152565b60a0830151915061014061264b8186018480518252602090810151910152565b60c0840151925061018061266b8187018580518252602090810151910152565b60e085015193506101c061268b8188018680518252602090810151910152565b928501519350610200926126ab8785018680518252602090810151910152565b61012086015194506102406126cc8189018780518252602090810151910152565b928601519450610280926126ec8885018780518252602090810151910152565b61016087015195506102c061270d818a018880518252602090810151910152565b9287015180516103008a0152602001516103208901526101a0870151610340890152908601516103608801526101e0860151610380880152928501516103a08701526102208501516103c0870152918401516103e08601526102608401516104008601528301516104208501526102a0830151610440850152909101516104609092019190915250565b6000610a6082019050845182526020850151602083015260408501516127ca604084018280518252602090810151910152565b50606085015180516080840152602081015160a0840152506080850151805160c0840152602081015160e08401525060a08501516101006128178185018380518252602090810151910152565b60c087015191506101406128378186018480518252602090810151910152565b60e088015192506101806128578187018580518252602090810151910152565b9188015192506101c0916128778684018580518252602090810151910152565b61012089015193506102006128988188018680518252602090810151910152565b918901519350610240916128b88784018680518252602090810151910152565b6101608a015194506102806128d98189018780518252602090810151910152565b918a015180516102c08901526020908101516102e08901526101a08b015180516103008a0152810151610320890152938a015180516103408901528401516103608801526101e08a015180516103808901528401516103a088015289015180516103c08801528301516103e087015261022089015180516104008801528301516104208701529088015180516104408701528201516104608601526102608801518051610480870152909101516104a08501528601516104c0840152506102a08501516104e08301526129b0610500830185612590565b6129be6105e08301846125b3565b949350505050565b6000602082840312156129d857600080fd5b81518015158114611d0d57600080fd5b6001600160401b03828116828216039080821115612a0857612a0861253a565b5092915050565b60006001600160401b03808316818103612a2b57612a2b61253a565b6001019392505050565b60008251612a478184602087016124a8565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca164736f6c6343000817000a" diff --git a/contract-bindings/src/light_client_arbitrum.rs b/contract-bindings/src/light_client_arbitrum.rs index 2e509b0a02..df441f0a6d 100644 --- a/contract-bindings/src/light_client_arbitrum.rs +++ b/contract-bindings/src/light_client_arbitrum.rs @@ -14,9 +14,7 @@ pub mod light_client_arbitrum { #[allow(deprecated)] fn __abi() -> ::ethers::core::abi::Abi { ::ethers::core::abi::ethabi::Contract { - constructor: ::core::option::Option::Some(::ethers::core::abi::ethabi::Constructor { - inputs: ::std::vec![], - }), + constructor: ::core::option::Option::None, functions: ::core::convert::From::from([ ( ::std::borrow::ToOwned::to_owned("UPGRADE_INTERFACE_VERSION"), diff --git a/contracts/src/LightClientArbitrum.sol b/contracts/src/LightClientArbitrum.sol index 7a4c5342cb..f173890b6a 100644 --- a/contracts/src/LightClientArbitrum.sol +++ b/contracts/src/LightClientArbitrum.sol @@ -9,11 +9,6 @@ interface ArbSys { } contract LightClientArbitrum is LightClient { - /// @custom:oz-upgrades-unsafe-allow constructor - constructor() { - _disableInitializers(); - } - function currentBlockNumber() public view virtual override returns (uint256) { return ArbSys(address(uint160(100))).arbBlockNumber(); } From a4262102f4428a1b6bae46657706493b110c5639 Mon Sep 17 00:00:00 2001 From: Alysia Huggins Date: Mon, 13 Jan 2025 16:51:24 -0500 Subject: [PATCH 8/8] remove test, not sure of test aim --- contracts/test/LightClient.t.sol | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/contracts/test/LightClient.t.sol b/contracts/test/LightClient.t.sol index 20412fbb42..cf9be666f5 100644 --- a/contracts/test/LightClient.t.sol +++ b/contracts/test/LightClient.t.sol @@ -1079,14 +1079,4 @@ contract LightClient_HotShotCommUpdatesTest is LightClientCommonTest { assertEqBN254(hotShotBlockComm, blockComm); assertEq(hotShotBlockHeight, blockHeight); } - - function test_revertWhenGetHotShotCommitmentInvalidHeight() public { - // Get the highest HotShot blockheight recorded - uint256 numCommitments = lc.getStateHistoryCount(); - (,, uint64 blockHeight,) = lc.stateHistoryCommitments(numCommitments - 1); - // Expect revert when attempting to retrieve a block height higher than the highest one - // recorded - vm.expectRevert(LC.InvalidHotShotBlockForCommitmentCheck.selector); - lc.getHotShotCommitment(blockHeight + 1); - } }