> For the complete documentation index, see [llms.txt](https://gitbook.mor.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://gitbook.mor.org/smart-contracts/documentation/distribution-protocol/v7-protocol/contracts/l1senderv2/changelog.md).

# Changelog

v2 -> v3

## Overview

The changes in this contract are related to moving the minting of MOR tokens and migrating new liquidity from the Arbitrum network to the Base network.

This contract in v2 uses two bridges: the Arbitrum Bridge for transferring liquidity, and LayerZero for sending messages to mint tokens on L2.

Moving from Arbitrum to Base using LayerZero will not be a problem and only requires changing contract configuration. On the other hand, it is not possible to use the Arbitrum Bridge to transfer liquidity to Base. Therefore, to meet the new requirements, the bridge used for transferring liquidity must be replaced with Lido's bridge.

## Storage changes

* `arbitrumBridgeConfig` renamed to `tokenBridgeConfig`. Remove the binding to a specific bridge and make it more abstract. The function that sets these parameters has been renamed accordingly.
* `layerZeroConfig` renamed to `messageBridgeConfig`. Remove the binding to a specific bridge and make it more abstractThe function that sets these parameters has been renamed accordingly.

## Functions changes

#### setTokenBridgeConfig

We've also added handling for the case when we reconfigure from the Arbitrum bridge to the Lido bridge. The Arbitrum bridge uses a gateway via an additional call, which must be handled in new version. Lido deployments: <https://docs.lido.fi/deployed-contracts/#base>

```solidity
if (oldConfig_.wstETH != address(0)) {
  IERC20(stETH).approve(oldConfig_.wstETH, 0);

  address oldGateway_;
  try IGatewayRouter(oldConfig_.gateway).getGateway(oldConfig_.wstETH) returns (address gateway_) {
    oldGateway_ = gateway_;
  } catch {
    oldGateway_ = oldConfig_.gateway;
  }
  IERC20(oldConfig_.wstETH).approve(oldGateway_, 0);
}
```

#### sendWstETH

This function has been changed — it now works with the Lido bridge. `l2Gas_` is the gas fee for L2 and can be taken from the Lido gateway contract. `data_` is additional information for the transfer (optional field).

```solidity
function sendWstETH(
  uint32 l2Gas_, 
  bytes calldata data_
) external onlyOwner;
```

## Test enviroment

Note that in the test environment anyone can call `sendMintMessage`. The `sendWstETH` call, as before, can only be made by the contract owner. The environment is configured so that `wstETH` transfers and MOR minting work.

#### Ethereum

<table><thead><tr><th width="203.89453125">Name</th><th>Address</th></tr></thead><tbody><tr><td><code>L1SenderV3</code></td><td><kbd>0x6Fd2674E13a42E588f83Ae74e5F22a4EE24eD75A</kbd></td></tr></tbody></table>

#### Base

<table><thead><tr><th width="203.89453125">Name</th><th>Address</th></tr></thead><tbody><tr><td><code>L2MessageReceiver</code></td><td><kbd>0xB69DbF7C9aB4597D3b3BC284Cc8771D580299baD</kbd></td></tr><tr><td><code>MOR</code></td><td><kbd>0x98e3CFBdB9707dF6107Cb1A7BD03036052EAa20e</kbd></td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://gitbook.mor.org/smart-contracts/documentation/distribution-protocol/v7-protocol/contracts/l1senderv2/changelog.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
