mirror of
https://github.com/vacp2p/linea-monorepo.git
synced 2026-01-09 04:08:01 -05:00
* allow tokenbridge overrides * add L1MessageService overrides * refactor L2 MessageService * refactor L2 MessageService V1 * use correct modifier * refactor LineaRollup for overriding * allow other overrides * reinstate general in pause on tokenbridge * add missing NatSpec * sample overrides * add generic bridge and document placeholder * documentation and folder placement * documentation cleanup * use imported references * use variable pragma for inherited contracts * reset pragmas for some * use base abstract contracts with version overrides * use TokenBridgeBase as abstract * Update contracts/src/bridging/token/TokenBridgeBase.sol Co-authored-by: Victorien Gauch <85494462+VGau@users.noreply.github.com> Signed-off-by: The Dark Jester <thedarkjester@users.noreply.github.com> * Update contracts/src/bridging/token/TokenBridgeBase.sol Co-authored-by: Victorien Gauch <85494462+VGau@users.noreply.github.com> Signed-off-by: The Dark Jester <thedarkjester@users.noreply.github.com> * Update contracts/src/bridging/token/TokenBridgeBase.sol Co-authored-by: Victorien Gauch <85494462+VGau@users.noreply.github.com> Signed-off-by: The Dark Jester <thedarkjester@users.noreply.github.com> * Update contracts/src/bridging/token/interfaces/ITokenBridge.sol Co-authored-by: Victorien Gauch <85494462+VGau@users.noreply.github.com> Signed-off-by: The Dark Jester <thedarkjester@users.noreply.github.com> * Update contracts/src/messaging/l2/L2MessageServiceBase.sol Co-authored-by: Victorien Gauch <85494462+VGau@users.noreply.github.com> Signed-off-by: The Dark Jester <thedarkjester@users.noreply.github.com> * Update contracts/src/messaging/l2/v1/interfaces/IL2MessageServiceV1.sol Co-authored-by: Victorien Gauch <85494462+VGau@users.noreply.github.com> Signed-off-by: The Dark Jester <thedarkjester@users.noreply.github.com> * Update contracts/src/rollup/interfaces/ILineaRollup.sol Co-authored-by: Victorien Gauch <85494462+VGau@users.noreply.github.com> Signed-off-by: The Dark Jester <thedarkjester@users.noreply.github.com> * Update contracts/src/rollup/LineaRollupBase.sol Co-authored-by: Victorien Gauch <85494462+VGau@users.noreply.github.com> Signed-off-by: The Dark Jester <thedarkjester@users.noreply.github.com> * Update contracts/src/_testing/unit/bridging/InheritingTokenBridge.sol Co-authored-by: Victorien Gauch <85494462+VGau@users.noreply.github.com> Signed-off-by: The Dark Jester <thedarkjester@users.noreply.github.com> * Update contracts/src/verifiers/PlonkVerifierDev.sol Co-authored-by: Victorien Gauch <85494462+VGau@users.noreply.github.com> Signed-off-by: The Dark Jester <thedarkjester@users.noreply.github.com> * Update contracts/src/verifiers/PlonkVerifierForDataAggregation.sol Co-authored-by: Victorien Gauch <85494462+VGau@users.noreply.github.com> Signed-off-by: The Dark Jester <thedarkjester@users.noreply.github.com> * Update contracts/src/verifiers/PlonkVerifierForMultiTypeDataAggregation.sol Co-authored-by: Victorien Gauch <85494462+VGau@users.noreply.github.com> Signed-off-by: The Dark Jester <thedarkjester@users.noreply.github.com> * Update contracts/src/verifiers/PlonkVerifierMainnetFull.sol Co-authored-by: Victorien Gauch <85494462+VGau@users.noreply.github.com> Signed-off-by: The Dark Jester <thedarkjester@users.noreply.github.com> * Update contracts/src/verifiers/PlonkVerifierSepoliaFull.sol Co-authored-by: Victorien Gauch <85494462+VGau@users.noreply.github.com> Signed-off-by: The Dark Jester <thedarkjester@users.noreply.github.com> * linting * allow submitDataAsCalldata overriding * address missing test coverage * adjust gap name for storage clarity --------- Signed-off-by: The Dark Jester <thedarkjester@users.noreply.github.com> Co-authored-by: Victorien Gauch <85494462+VGau@users.noreply.github.com>
59 lines
2.0 KiB
Solidity
59 lines
2.0 KiB
Solidity
// SPDX-License-Identifier: Apache-2.0
|
|
pragma solidity ^0.8.30;
|
|
|
|
/**
|
|
* @title L1 Message Service interface for pre-existing functions, events, structs and errors.
|
|
* @author ConsenSys Software Inc.
|
|
* @custom:security-contact security-report@linea.build
|
|
*/
|
|
|
|
interface IL1MessageService {
|
|
/**
|
|
* @param proof The Merkle proof array related to the claimed message.
|
|
* @param messageNumber The message number of the claimed message.
|
|
* @param leafIndex The leaf index related to the Merkle proof of the message.
|
|
* @param from The address of the original sender.
|
|
* @param to The address the message is intended for.
|
|
* @param fee The fee being paid for the message delivery.
|
|
* @param value The value to be transferred to the destination address.
|
|
* @param feeRecipient The recipient for the fee.
|
|
* @param merkleRoot The Merkle root of the claimed message.
|
|
* @param data The calldata to pass to the recipient.
|
|
*/
|
|
struct ClaimMessageWithProofParams {
|
|
bytes32[] proof;
|
|
uint256 messageNumber;
|
|
uint32 leafIndex;
|
|
address from;
|
|
address to;
|
|
uint256 fee;
|
|
uint256 value;
|
|
address payable feeRecipient;
|
|
bytes32 merkleRoot;
|
|
bytes data;
|
|
}
|
|
|
|
/**
|
|
* @dev Thrown when L2 Merkle root does not exist.
|
|
*/
|
|
error L2MerkleRootDoesNotExist();
|
|
|
|
/**
|
|
* @dev Thrown when the Merkle proof is invalid.
|
|
*/
|
|
error InvalidMerkleProof();
|
|
|
|
/**
|
|
* @dev Thrown when Merkle depth doesn't match proof length.
|
|
*/
|
|
error ProofLengthDifferentThanMerkleDepth(uint256 actual, uint256 expected);
|
|
|
|
/**
|
|
* @notice Claims and delivers a cross-chain message using a Merkle proof.
|
|
* @dev if tree depth is empty, it will revert with L2MerkleRootDoesNotExist.
|
|
* @dev if tree depth is different than proof size, it will revert with ProofLengthDifferentThanMerkleDepth.
|
|
* @param _params Collection of claim data with proof and supporting data.
|
|
*/
|
|
function claimMessageWithProof(ClaimMessageWithProofParams calldata _params) external;
|
|
}
|