---
# System prepended metadata

title: Hashi Bridge on Testnet
tags: [Hashi]

---

# Hashi integrated Bridge on Testnet

Status: Completed


## Plan

- [x]  Contract deployments: AMB & xDAI
- [x]  BlockReward contract configuration: [https://gnosis-chiado.blockscout.com/tx/0xb9bccb1e60963af2120934195eed3cf586ca4fcd0e79e52d1d1ce9c3c5b112b0](https://gnosis-chiado.blockscout.com/tx/0xb9bccb1e60963af2120934195eed3cf586ca4fcd0e79e52d1d1ce9c3c5b112b0)
- [x]  Hashi Manager configuration: add CCIP, Wormhole, DendrETH, MockOracle as oracles (threshold 1)
- [x]  Testcases: manually (ETA starts from July 30, 2024)

# Hashi integration with Gnosis bridge in Testnet

This testnet (between Sepolia and Chiado) tests aims to simulate the behavior of Gnosis bridges in mainnet (between Ethereum and Gnosis Chain) after Hashi integration.

There are three scenarios tested for three different phases of the integration:

1. Hashi is not enabled: This should behaves exactly as before hashi integration. A message is only required to be validated by validators that are whitelisted in the bridge validator contract.
2. Hashi is enabled but not mandatory: Hashi oracles are used to relay message id and message hash. A message is only required to be validated by validators as in case 1, but also can refer to Hashi “validator”. A message can still be executed if Hashi’s threshold hash is not met but signed by the threshold amount of bridge validators.
3. Hashi is enabled and mandatory. Similar to case 2, but a message need to be validated by Hashi and meet the threshold amount of bridge validators.

### HASHI_IS_MANDATORY & HASHI_IS_ENABLED

|  | **HASHI_IS_MANDATORY** | **! HASHI_IS_MANDATORY** |
| --- | --- | --- |
| **HASHI_IS_ENABLED** | Can send message from source.
Can execute message from destination. | Can send message from source.
Cannot execute message from destination.  |
| **! HASHI_IS_ENABLED** | behave as without Hashi, use normal validators | behave as without Hashi, use normal validators |

## Architecture and Workflow

### Omnibridge & AMB

![Hashi-Gnosis.png](Hashi%20Bridge%20on%20Testnet/Hashi-Gnosis.png)

For Omnibridge / AMB:

**Ethereum → Gnosis Chain**

1. User approves token for Foreign Omnibridge
2. User calls ForeignOmnibridge.relayTokens(address token, address receiver, uint256 amount)
    1. ForeignOmnibridge calls ForeignAMB.requireToPassMessage()
    2. ForeignAMB check if HASHI_IS_ENABLED is true, and call Yaho.dispatchMessage
    3. Off chain relayer detects MessageDispatched event from Yaho and call Yaho.relayMessagesToAdapters to relay message to each reporters.
    4. Reporters relay the messageId and message hash to adapter contract on Gnosis Chain.
    5. Light Client based oracle only stores hashes on Gnosis Chain.
3. If Hashi is enabled & mandatory, off chain executor calls Gnosis Chain’s Yaru.executeMessages(), which check if the hash is agreed upon a threshold amount of adapters (set in Hashi Manager contract) adapters and set isApprovedByHashi(messageId) to true eventually.
4. Bridge validators detects UserRequestForAffirmation event and call HomeAMB.executeAffirmation. If Hashi is enabled & mandatory, this step has to wait after step 3.

**Gnosis Chain → Ethereum**

1. User approves token for Home Omnibridge
2. User calls HomeOmnibridge.relayTokens(address token, address receiver, uint256 amount)
    1. HomeOmnibridge calls HomeAMB.requireToPassMessage()
    2. HomeAMB check if HASHI_IS_ENABLED is true, and call Yaho.dispatchMessage
    3. Off chain relayer detects MessageDispatched event from Yaho and call Yaho.relayMessagesToAdapters to relay message to each reporters.
    4. Reporters relay the messageId and message hash to adapter contract on Ethereum.
3. Bridge validators detects UserRequestForSignature event and call HomeAMB.submitSignatures. 
4. If Hashi is enabled & mandatory, off chain executor calls Ethereum’s Yaru.executeMessages(), which check if the hash is agreed upon adapters and set isApprovedByHashi(messageId) to true eventually.
5. User claims token by calling Ethereum’s ForeignAMB.executeSignatures().

### xDAI bridge

![Hashi-Gnosis-xDAI.png](Hashi%20Bridge%20on%20Testnet/Hashi-Gnosis-xDAI.png)

**Ethereum → Gnosis Chain**

1. User approves token for Foreign xDAI bridge.
2. User calls ForeignXDAIBridge.relayTokens(address receiver, uint256 amount)
    1. ForeignXDAIBridge check if HASHI_IS_ENABLED is true, and call Yaho.dispatchMessage
    2. Off chain relayer detects MessageDispatched event from Yaho and call Yaho.relayMessagesToAdapters to relay message to each reporters.
    3. Reporters relay the messageId and message hash to adapter contract on Gnosis Chain.
    4. Light Client based oracle only stores hashes on Gnosis Chain.
3. If Hashi is enabled & mandatory, off chain executor calls Gnosis Chain’s Yaru.executeMessages(), which check if the hash is agreed upon a threshold amount of adapters (set in Hashi Manager contract) and set isApprovedByHashi(messageId) to true eventually.
4. Bridge validators detects UserRequestForAffirmation event and call HomexDAIBridge.executeAffirmation. If Hashi is enabled & mandatory, this step has to wait after step 3. Block Reward contract emits AddedReceiver event, which will mint equivalent amount of xDAI to receiver in the next block.

**Gnosis Chain → Ethereum**

1. User calls HomexDAIBridge.relayTokens(address receiver, uint256 amount) or transfer xDAI  to HomexDAIBridge without msg.data.
    1. HomexDAIBridge check if HASHI_IS_ENABLED is true, and call Yaho.dispatchMessage
    2. Off chain relayer detects MessageDispatched event from Yaho and call Yaho.relayMessagesToAdapters to relay message to each reporters.
    3. Reporters relay the messageId and message hash to adapter contract on Ethereum.
2. Bridge validators detects UserRequestForSignature event and call HomexDAIBridge.submitSignatures. 
3. If Hashi is enabled & mandatory, off chain executor calls Ethereum’s Yaru.executeMessages(), which check if the hash is agreed upon adapters and set isApprovedByHashi(messageId) to true eventually.
4. User claims token by calling Ethereum’s ForeignxDAIBridge.executeSignatures(). DAI is transfer to the receiver eventually.

## Contract deployments & Configuration

Here are the list of contracts that needed to be deployed for the end to end test.

What’s new?

1. Hashi Manager: Set reporters, adapters, and threshold used by the bridge contract. 
2. New variables/function:
    1. HASHI_ENABLED
    2. HASHI_MANDATORY
    3. isApprovedByHashi(bytes32 msgId)
    4. setHashiManager(address HashiManager)
3. In xDAI bridge, the data input from `resendDataWithHashi(bytes data)` is `abi.encodePacked(address receiver, uint256 value, bytes32 nonce)`.
    
    However, for validator to call AMB/xDAIbridge `submitSignature(bytes32 signature, bytes message)` and  `executeSignature(bytes32 packed_signature, bytes message)`, the `message` input is `abi.encodePacked(address receiver, uint256 value, bytes32 nonce, address foreignXDAIBridge)`.
    
    Keep in mind that in original xDAI bridge, `bytes32 nonce` is `bytes32 tx Hash` instead.
    

### Contracts

# AMB/xDAI

Foreign

1. EternalStorageProxy → BridgeValidators
2. EternalStorageProxy → ForeignAMB / XDaiForeignBridge
3. EternalStorageProxy → HashiManager

Home

1. EternalStorageProxy → BridgeValidators
2. EternalStorageProxy → HomeAMB / HomeBridgeErcToNative
3. EternalStorageProxy → HashiManager

# Omnibridge

Foreign

1. EternalStorageProxy → ForeignOmnibridge
2. PermittableToken
3. TokenFactory
4. ForwardingRuleManager
5. SelectorGasLimitManager
6. WETHOmnibridgeRouter

Home

1. EternalStorageProxy → HomeOmnibridge
2. PermittableToken
3. TokenFactory
4. ForwardingRuleManager
5. SelectorGasLimitManager
6. FeeManager

### Configuration

## Function calls

- AMB/xDAI
    - [ ]  Proxy: upgradeTo
    - [ ]  initialize
    - [ ]  setHashiManager
- Hashi Manager
    - [ ]  Proxy: upgradeTo
    - [ ]  Proxy: transferProxyOwnership
    - [ ]  initialize (address owner)
    - [ ]  setReportersAdaptersAndThreshold(address[] reporters,address[] adapters,uint256 threshold): Reporter from source chain, Adapter from destination chain, threshold on destination chain
    - [ ]  setYaho(address)
    - [ ]  setYaru(address)
    - [ ]  setTargetChainId(uint256)
    - [ ]  setTargetAddress(address) (address that inherit IJushin.onMessage, which will be called by Yaru on the destination chain)
    - [ ]  setExpectedAdaptersHash(address[])  (adapter addresses on the chain the contract is in)
- Omnibridge
    - [ ]  Proxy: upgradeTo
    - [ ]  Initialize
- Other contracts
    1. BridgeValidators: initialize
    
- Miscellaneous
    
    Before deploying to Foreign xDAI on Sepolia ✅
    
    1. change erc20() address in InterestReceiverBase.sol, SavingsDAIConnector.sol to DAI address in Sepolia

# Test tldr



1. Setup
    1. We tested each phases of Hashi integration( Hashi is not optional, Hashi is optional, Hashi is mandatory) for AMB/Omnibridge, and xDAI Bridge.
    2. Each phase, we tested 11 cases, where some are tested in unit tests in a forking environment, because some cases are difficult to reproduce on testnet.
    3. The test cases cover normal AMB message relaying, Omnibridge token relaying, xDAI/DAI token relaying, and emergency handling.
    4. The contracts configurations are referring from mainnet deployment, aiming to simulate actual transaction behavior on mainnet.
    5. The off chain components includes the updated tokenbridge oracle code, while new components (Hashi relayer, Hashi executor, Hashi oracles) are introduced to coordinate Hashi logic.
2. Test cases
    
    There are 11 test cases and each are tested in three different phases.
    
    | 1 | xdai | relayTokens() of 10dai  from Sepolia should mint 10 xdai on chiado |  |
    | --- | --- | --- | --- |
    | 2 | xdai | relayTokens() of 10 xdai  from Chiado should release 10 dai on sepolia |  |
    | 3 | xdai | transfer() of 10dai  from Sepolia should NOT mint 10 xdai on chiado and funds will be stuck.Funds recovered by governance should release the dai tokens back to the user |  |
    | 4 | xdai | transfer() of 10 xdai  from Chiado should NOT release 10 dai on sepolia and funds will be stuck.Funds recovered by governance should release the xdai tokens back to the user* | transfer() of xDAI without any data will triger the process of xDAI transfer, it only will be reverted when you transfer() xDAI with data.  |
    | 5 | xdai | investDai() should work as expected, depositing funds to MakerDSR (not testable on testnet most probably) |  |
    | 6 | xdai | payInterest() should bridge interest over to chaido, working as currently on mainnet |  |
    | 7 | omnibridge | relayTokens() of 1 eth  from Sepolia should mint 1 weth on chiado |  |
    | 8 | omnibridge | relayTokens() of 1 WETH from Chiado should transfer 1 WETH on Sepolia |  |
    | 9 | omnibridge | relayTokens() of 1 GNO  from Sepolia should mint 1 weth on chiado |  |
    | 10 | omnibridge | relayTokens() of 1 GNO from Chiado should transfer 1 GNO on Sepolia |  |
    |  |  |  |  |
    | 11 | amb | relay messages between Sepolia and Chiado should work |  |
3. Outcome
    1. The results from testing show the workflow of Gnosis bridge after Hashi integration.
    2. Only during Hashi is mandatory, all the transactions has to be approved by Hashi before they can be executed.
    3. After Hashi integration, transfer DAI directly to the xDAI bridge contract on Ethereum will not be processed.  The logic of sDAI will remain the same.

## Contract Addresses

Note:

1. pingpong contract is used in AMB related testing, call ping() function in source chain, and expected to have pong()  function called in destination chain.
2. Common contracts are deployed once and used in all different scenarios, they are either not bridge or chain specific.
3. Only MockReporter and MockAdapter are used in this testing

### Deployment Hashi: !Enabled, !Mandatory  ✅

## AMB

- Sepolia addresses
    1. Foreign AMB: [0xd54307f36dda927d49f244690e25078539e57d66](https://sepolia.etherscan.io/address/0xd54307f36dda927d49f244690e25078539e57d66) ✅
    2. Hashi Manager: [0x9Cc8767020aa74C96076837797b4C62E32Caa24C](https://sepolia.etherscan.io/address/0x9cc8767020aa74c96076837797b4c62e32caa24c#writeProxyContract) ✅
    3. pingpong: 0x2A75C23997F13aa2e519651fa3f1ea5E2008F1ED
- Chiado address
    1. Home AMB: [0x5538f3d31cA86A361D529E5eB5BbE09aE502f0F8](https://gnosis-chiado.blockscout.com/address/0x5538f3d31cA86A361D529E5eB5BbE09aE502f0F8?tab=read_proxy) ✅
    2. Hashi Manager: [0xC7AF83c580Ad42A37107C24AC3B38b810EaF7257](https://gnosis-chiado.blockscout.com/address/0xC7AF83c580Ad42A37107C24AC3B38b810EaF7257?tab=write_contract) ✅
    3. pingpong: 0x40B65d3Cd89487604cfDBD62A4365a6E1b1600d8

## Omnibridge

- Sepolia address
    1. Foreign Omnibridge: [0xF478804dA551774595ad4A2Cc5f8a8D816556e78](https://sepolia.etherscan.io/address/0xF478804dA551774595ad4A2Cc5f8a8D816556e78#code) ✅
    2. Gas Limit Manager: [0xf64a2f01717cA833A3550E59b347cD8a3Ae36d44](https://sepolia.etherscan.io/address/0xf64a2f01717cA833A3550E59b347cD8a3Ae36d44#code) ✅
    3. WETHRouter: [0x7957e3555d1F68B12Afb66EAd403310719Eae873](https://sepolia.etherscan.io/address/0x7957e3555d1F68B12Afb66EAd403310719Eae873#cod)
- Chiado address
    1. Home Omnibridge: [0x09379cAF4f85E28C9110f2836d2639CeC72025EB](https://gnosis-chiado.blockscout.com/address/0x09379cAF4f85E28C9110f2836d2639CeC72025EB?tab=write_proxy) ✅
    2. Gas Limit Manager: [0x162965F966323d4Ca34D95FFD139D444Fe7c0623](https://gnosis-chiado.blockscout.com/address/0x162965F966323d4Ca34D95FFD139D444Fe7c0623#code) ✅
    3. Fee Manager: [0xFa2a233eD022D93273501b50f3D367d82b9b6dDd](https://gnosis-chiado.blockscout.com/address/0xFa2a233eD022D93273501b50f3D367d82b9b6dDd?tab=contract) ✅

## xDAI

- Sepolia address
    1. Foreign xDAI Bridge:  [0x6bB24c137254558449F92Ed65673c07b5ccb90dA](https://sepolia.etherscan.io/address/0x6bb24c137254558449f92ed65673c07b5ccb90da) ✅
    2. Hashi Manager: [0x84ef54031F6a2034AC2B36ECc377A574F1669c10](https://sepolia.etherscan.io/address/0x84ef54031f6a2034ac2b36ecc377a574f1669c10#readProxyContract) ✅
- Chiado addresses
    1. Home xDAI Bridge: [0x0B7d8C6AD44Fb1BE9Ba11cDab58C5E002Fd77848](https://gnosis-chiado.blockscout.com/address/0x0B7d8C6AD44Fb1BE9Ba11cDab58C5E002Fd77848?tab=contract) ✅
    2. Hashi Manager: [0xA27462289EF0A00a1d399D34e9a961697db4E97a](https://gnosis-chiado.blockscout.com/address/0xA27462289EF0A00a1d399D34e9a961697db4E97a) ✅

### Deployment Hashi: Enabled, !Mandatory ✅

## AMB

- Sepolia addresses
    1. Foreign AMB: [0xFB0a13D1e8349bB975f4430e9315b2218cdD12A3](https://sepolia.etherscan.io/address/0xFB0a13D1e8349bB975f4430e9315b2218cdD12A3) ✅
    2. Hashi Manager: [0xe1162AcFA4381C63F1e3E59fDbb930C4FC111866](https://sepolia.etherscan.io/address/0xe1162AcFA4381C63F1e3E59fDbb930C4FC111866#writeProxyContract)  ✅
    3. pingpong: [0x641bFba47ad2d2d422AcfaDd7568A7dfbdcA9608](https://sepolia.etherscan.io/address/0x641bFba47ad2d2d422AcfaDd7568A7dfbdcA9608#code)
- Chiado addresses
    1. Home AMB: [0x8CCF213bFAae8B56B26b91ebd4FF7d7F2b8f0459](https://gnosis-chiado.blockscout.com/address/0x8CCF213bFAae8B56B26b91ebd4FF7d7F2b8f0459) ✅
    2. AMB Helper: [0x16bd77dbf5ea66454a6f4d0343621811416b5507](https://gnosis-chiado.blockscout.com/address/0x16bd77dbf5ea66454a6f4d0343621811416b5507?tab=contract)
    3. Hashi Manager: [0x79c90C5bDfe58C629AA4015457C28f52eAE76925](https://gnosis-chiado.blockscout.com/address/0x79c90C5bDfe58C629AA4015457C28f52eAE76925) ✅
    4. pingpong: [0x2D02deCD5D54D9D210CBc7981bC913b6fd2fCe90](https://gnosis-chiado.blockscout.com/address/0x2D02deCD5D54D9D210CBc7981bC913b6fd2fCe90)
    

## Omnibridge

- Sepolia
    1. Foregin Omnibridge: [0x16BD77Dbf5eA66454A6F4d0343621811416b5507](https://sepolia.etherscan.io/address/0x16bd77dbf5ea66454a6f4d0343621811416b5507#code) ✅
    2. Foreign Selector Gas Limit Manager: [0xbE903fEE718E9Dc440FA79B8F6Cc6f4576435108](https://sepolia.etherscan.io/address/0xbE903fEE718E9Dc440FA79B8F6Cc6f4576435108) ✅
    3. WETH Router: [0xa1b9E491514C2DcC6FB6d60a5272ED3088a41A52](https://sepolia.etherscan.io/address/0xa1b9E491514C2DcC6FB6d60a5272ED3088a41A52#code)
     
- Chiado
    1. Home Omnibridge: [0xe9188ca0445C881682d00157cDAb2ED87b1A4B8B](https://gnosis-chiado.blockscout.com/address/0xe9188ca0445C881682d00157cDAb2ED87b1A4B8B?tab=read_proxy) ✅
    2. Home Selector Gas Limit Manager: [0x0DF693E303ACD4372Fc907241c6EA27A9547e706](https://gnosis-chiado.blockscout.com/address/0x0DF693E303ACD4372Fc907241c6EA27A9547e706?tab=read_contract)
    3. Fee Manager: [0xC4fF3C8fEFd818C3d9F37558E0dB13BC92B0E790](https://gnosis-chiado.blockscout.com/address/0xC4fF3C8fEFd818C3d9F37558E0dB13BC92B0E790) ✅

## xDAI bridge

- Sepolia
    1. Foreign xDAI Bridge: [0x314CBF3F4405a2eaDe19af78773881beA37d15f8](https://sepolia.etherscan.io/address/0x314CBF3F4405a2eaDe19af78773881beA37d15f8#readContract) ✅
    2. Hashi Manager: [0xedc90fA1A8B013dd0047FB8d0447DCD8dDE63553](https://sepolia.etherscan.io/address/0xedc90fA1A8B013dd0047FB8d0447DCD8dDE63553#writeProxyContract) ✅
- Chiado
    1. Home xDAI: [0x8a3A3F0B9899c161393497e1aC32d6ca99289876](https://gnosis-chiado.blockscout.com/address/0x8a3A3F0B9899c161393497e1aC32d6ca99289876?tab=write_proxy) ✅ 
    2. Hashi Manager: [0x2ef668d31988F1CB34cd21f78cdAA41Cc1726fB0](https://gnosis-chiado.blockscout.com/address/0x2ef668d31988F1CB34cd21f78cdAA41Cc1726fB0?tab=write_contract) ✅
        
        

### Deployment Hashi: Enabled, Mandatory ✅

## AMB

- Sepolia addresses
    1. ForeignAMB: [0x2F62433e00168af10c70bc39e2fDbEe5DaCA257b](https://sepolia.etherscan.io/address/0x2F62433e00168af10c70bc39e2fDbEe5DaCA257b) ✅
    2. Hashi Manager: [0x6C5F4F8a719bF054D6b08E3cCc27a5f208Ec8766](https://sepolia.etherscan.io/address/0x6C5F4F8a719bF054D6b08E3cCc27a5f208Ec8766#writeProxyContract) ✅
    3. pingpong: [0x58c17C47693DFCAd3d05b3497AE3413c163eA315](https://sepolia.etherscan.io/address/0x58c17C47693DFCAd3d05b3497AE3413c163eA315)
- Chiado addresses
    1. Home AMB: [0xAF18353BF369897Aab18ec225422F921be9F7eC6](https://gnosis-chiado.blockscout.com/address/0xAF18353BF369897Aab18ec225422F921be9F7eC6?tab=contract) ✅
    2. Hashi Manager: [0xe505cD6522E9A1c2309a915f83dDCA9addaC0895](https://gnosis-chiado.blockscout.com/address/0xe505cD6522E9A1c2309a915f83dDCA9addaC0895?tab=contract_code) ✅
    3. pingpong: [0x596F15a89E79Ff9606Bc624Cc03E2FEF77FE5521](https://gnosis-chiado.blockscout.com/address/0x596F15a89E79Ff9606Bc624Cc03E2FEF77FE5521#code)
    4. AMB BridgeHelper: [0x3fba3D7Ae204a684E4359A3fC211C18EA155cd78](https://gnosis-chiado.blockscout.com/address/0x3fba3D7Ae204a684E4359A3fC211C18EA155cd78)

## Omnibridge

- Sepolia address
    1. Foreign Omnibridge: [0xc4e06E44B2d1e148beFAa3cB2012A985EFe7032a](https://sepolia.etherscan.io/address/0xc4e06E44B2d1e148beFAa3cB2012A985EFe7032a) ✅
    2. Gas Limit: [0xc2DaA50DFb8fCB35FC831085e26B9B2aB17a4C69](https://sepolia.etherscan.io/address/0xc2DaA50DFb8fCB35FC831085e26B9B2aB17a4C69#code) ✅
    3. WETH Router: [0x65E64139f202F89cb6b4bFc140bf01Cda1886465](https://sepolia.etherscan.io/address/0x65E64139f202F89cb6b4bFc140bf01Cda1886465#code)
- Chiado address
    1. Home Omnibridge: [0xB866dC5321Ca41a22938A7afD5Bc3c5069975874](https://gnosis-chiado.blockscout.com/address/0xB866dC5321Ca41a22938A7afD5Bc3c5069975874?tab=write_proxy) ✅
    2. Gas Limit: 0x5FBF80D9B21938580cf2Be8B1ba52a155a6a4892
    3. Fee Manager: [0xEb4285E77EC0Cf7eBb1C9367E072aF1F91c9a4de](https://gnosis-chiado.blockscout.com/address/0xEb4285E77EC0Cf7eBb1C9367E072aF1F91c9a4de) ✅

## xDAI

- Sepolia addresses
    1. Foreign xDAI: [0x97589968FA7ef153af44C6F5d0Fb9AcaEA97AC94](https://sepolia.etherscan.io/address/0x97589968FA7ef153af44C6F5d0Fb9AcaEA97AC94) ✅
    2. Hashi Manager: [0x90d3c0c9BCb317E80A459B0126257665186E59fa](https://sepolia.etherscan.io/address/0x90d3c0c9bcb317e80a459b0126257665186e59fa#code) ✅
- Chiado addresses
    1. Home xDAI: [0x867696eA1cfA243aB909797022D0A0C99BdACcF1](https://gnosis-chiado.blockscout.com/address/0x867696eA1cfA243aB909797022D0A0C99BdACcF1?tab=contract) ✅
    2. Hashi Manager: [0x5b745C021ef62f90862a812EB6763f5758e51eE2](https://gnosis-chiado.blockscout.com/address/0x5b745C021ef62f90862a812EB6763f5758e51eE2?tab=contract) ✅
    3. xDAI Bridge Helper: [0xA7bE47d1111baFDb2f0E9ce8D6431508aC2fd98e](https://gnosis-chiado.blockscout.com/address/0xA7bE47d1111baFDb2f0E9ce8D6431508aC2fd98e#code)

### Common contracts

# Sepolia

1. Bridge validators contract: [0x51CD01B3E863ae2650C80E2c3Bd5B6f339Dfe08E](https://sepolia.etherscan.io/address/0x51cd01b3e863ae2650c80e2c3bd5b6f339dfe08e#code) ✅ (validator: 0x725bC6F18F8CDd7f57A9aB9A9f2Ea17A199185e5, threshold: 1) 

Omnibridge

1. Permittable Token: 0x5830a1756b96eC004f9bf475B91456025B524b2D
2. Foreign Token Factory: 0xe9188ca0445C881682d00157cDAb2ED87b1A4B8B
3. Foreign Forwarding Rules Manager : 0x9834D3147BBDc0c296228597210C69636008e3A5ERC20 Token (GNO)
4. Sepolia: [https://sepolia.etherscan.io/address/0xb293564Fe35a700694569488C72a7D0343356f5a](https://sepolia.etherscan.io/address/0xb293564Fe35a700694569488C72a7D0343356f5a)
    1. bridged token address: 0x439e44d76aca44dc3b7ff73675204f8d790f739c
5. DAI: [0x084Ab2ef1cb3A75EB0fDd81636e9A95D15629c37](https://sepolia.etherscan.io/address/0x084Ab2ef1cb3A75EB0fDd81636e9A95D15629c37) 

# Chiado

1. Bridge validators contract: [0x7667DFD42f13126f82593ec588149f195d432271](https://gnosis-chiado.blockscout.com/address/0x7667DFD42f13126f82593ec588149f195d432271?tab=write_proxy) ✅ (validator: 0x725bC6F18F8CDd7f57A9aB9A9f2Ea17A199185e5, threshold: 1)

Omnibridge

1. Permittable Token:  0xb67A2060e475BD7C40C7b793B52847eBB2F1676a
2. Token Factory: 0x24Efb0bbb2A2c7d82CA6741B1d511f5d1696025c
3. Forwarding Rules Manager: 0x1bE25CE16015C52f238CE2F87Fa9F9F852b16481
4. Chiado: GNO on Chiado [0x622b8ba8173e439b0db98f0b0cfb12bc83063c32](https://gnosis-chiado.blockscout.com/address/0x622b8ba8173e439b0db98f0b0cfb12bc83063c32)

### Hashi oracles

## Sepolia → Chiado

1. CCIP Reporter: [0xf66871C91952b09270d223cD3A1e5Dad57b14fbC](https://sepolia.etherscan.io/address/0xf66871C91952b09270d223cD3A1e5Dad57b14fbC#readProxyContract)
2. CCIP Adapter: [0x8A2A7509B98f0f21BEFF82e2520A920DB61fFa9d](https://gnosis-chiado.blockscout.com/address/0x8A2A7509B98f0f21BEFF82e2520A920DB61fFa9d?tab=contract)
3. Wormhole Reporter: [0xeE8082F48e768e096c2EEC5C80DC818eb6E15858](https://sepolia.etherscan.io/address/0xeE8082F48e768e096c2EEC5C80DC818eb6E15858)
4. Wormhole Adapter: [0x79e4D1B8b8De0bC2F8A3DC477480C935C66F373E](https://gnosis-chiado.blockscout.com/address/0x79e4D1B8b8De0bC2F8A3DC477480C935C66F373E)
5. Mock Reporter: [0x288dA9f5b01D9118AD0A1Fb998C1295fF1cf5c80](https://sepolia.etherscan.io/address/0x288dA9f5b01D9118AD0A1Fb998C1295fF1cf5c80#code)
6. Mock Reporter 2: 0x7F0afc28Dc15161956b260dd960d518e45294f63
7. Mock Adapter: [0xce5C452cf0Ad9a2e27e3077A36639D197b9BF549](https://gnosis-chiado.blockscout.com/address/0xce5C452cf0Ad9a2e27e3077A36639D197b9BF549)
8. Mock Adapter 2: [0xF49F36241570034b6a3eb0735fc6A1d359881bBF](https://gnosis-chiado.blockscout.com/address/0xF49F36241570034b6a3eb0735fc6A1d359881bBF)
9. DendrETH Adapter: [0x355C483e7D7D73eb9C06DDA1819a0Cc99712233c](https://gnosis-chiado.blockscout.com/address/0x355C483e7D7D73eb9C06DDA1819a0Cc99712233c?tab=txs)
10. New DendrETH Adapter*: [0x465740D45DdA1e211939E1Cc8f5dc382f1F15B81](https://gnosis-chiado.blockscout.com/address/0x465740D45DdA1e211939E1Cc8f5dc382f1F15B81#code)
11. Yaho: [0x21eAB033C7D2DF6A67AeF6C5Bda9A7F151eB9f52](https://sepolia.etherscan.io/address/0x21eAB033C7D2DF6A67AeF6C5Bda9A7F151eB9f52)
12. Yaru: [0xBA9165973963a6E5608f03b9648c34A737E48f68](https://sepolia.etherscan.io/address/0xBA9165973963a6E5608f03b9648c34A737E48f68#code)

## Chiado → Sepolia

1. CCIP Reporter: [0x7237bb8d1d38DF8b473b5A38eD90088AF162ad8e](https://gnosis-chiado.blockscout.com/address/0x7237bb8d1d38DF8b473b5A38eD90088AF162ad8e?tab=write_contract)
2. CCIP Adapter: [0xE1B2A16b6CCe40948B14C73c2c3B98c0A35D6003](https://sepolia.etherscan.io/address/0xE1B2A16b6CCe40948B14C73c2c3B98c0A35D6003#writeContract)
3. Mock Reporter: [0x3da176b43604Aacf6178128865AfccB21ee0F943](https://gnosis-chiado.blockscout.com/address/0x3da176b43604Aacf6178128865AfccB21ee0F943)
4. Mock Reporter 2: [0x44857763aa2893Fb479b1CC27F18f4b3F6842Df5](https://gnosis-chiado.blockscout.com/address/0x44857763aa2893Fb479b1CC27F18f4b3F6842Df5)
5. Mock Adapter: [0xBF06b26b409ed48e74F2d01A61675672C07aF370](https://sepolia.etherscan.io/address/0xBF06b26b409ed48e74F2d01A61675672C07aF370)
6. Mock Adapter 2: [0x64629a26FBA981A8B3d062fA2CB719d3648f748F](https://sepolia.etherscan.io/address/0x64629a26FBA981A8B3d062fA2CB719d3648f748F#code)
7. DendrETH Adapter: [0x4e630e1a7b90230b459d7338d65de015acdd54a4](https://sepolia.etherscan.io/address/0x4e630e1a7b90230b459d7338d65de015acdd54a4#code)
8. New DendrETH Adapter*: [0x140019BbCAe74e41Bc8C8f402bBC07C96BA0e43F](https://sepolia.etherscan.io/address/0x140019BbCAe74e41Bc8C8f402bBC07C96BA0e43F)
9. Yaho: [0x21eAB033C7D2DF6A67AeF6C5Bda9A7F151eB9f52](https://gnosis-chiado.blockscout.com/address/0x21eAB033C7D2DF6A67AeF6C5Bda9A7F151eB9f52?tab=contract)
10. Yaru: [0xBA9165973963a6E5608f03b9648c34A737E48f68](https://gnosis-chiado.blockscout.com/address/0xBA9165973963a6E5608f03b9648c34A737E48f68?tab=contract)

*DendrETH contract after PR: [https://github.com/gnosis/hashi/pull/23/](https://github.com/gnosis/hashi/pull/23/files#diff-85aa010d085a9e39eff989551fb4acac13f44bceba160c9c94bac3df6830ba20)

## Testing

- Test cases
    
    
    | **test case #** | bridge | configuration | **description** | **result** | **remarks** | MessageDispatched (Yaho) | MessageDispatched (Oracles) | HashStored (Oracles) | MessageExecuted (Yaru) |
    | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
    | 0 | xDAI / AMB / Omnibridge |  | example | 🟢 🔴 🔵 🟠 | 🔵 to do
    🟢 pass
    🔴 fail
    🟠 cannot be executed |  |  |  |  |
    | 1 | xdai | hashi not enabled | relayTokens() of 10dai  from Sepolia should mint 10 xdai on chiado | 🟢 |  |  |  |  |  |
    | 2 | xdai | hashi not enabled | relayTokens() of 10 xdai  from Chiado should release 10 dai on sepolia | 🟢 |  |  |  |  |  |
    | 3 | xdai | hashi not enabled | transfer() of 10dai  from Sepolia should NOT mint 10 xdai on chiado and funds will be stuck.
    Funds recovered by governance should release the dai tokens back to the user | 🟢 | recoverLegacyTransfer()   |  |  |  |  |
    | 4 | xdai | hashi not enabled | transfer() of 10 xdai  from Chiado should NOT release 10 dai on sepolia and funds will be stuck.
    Funds recovered by governance should release the xdai tokens back to the user | 🟢 | direct transfer is reverted, but calling fallback() without [msg.data](http://msg.data) works |  |  |  |  |
    | 5 | xdai | hashi not enabled | investDai() should work as expected, depositing funds to MakerDSR (not testable on testnet most probably) |  | Tested in Unit test |  |  |  |  |
    | 6 | xdai | hashi not enabled | payInterest() should bridge interest over to chaido, working as currently on mainnet |  | Tested in United test |  |  |  |  |
    | 7 | omnibridge | hashi not enabled | relayTokens() of 1 eth  from Sepolia should mint 1 weth on chiado
     | 🟢 |  |  |  |  |  |
    | 8 | omnibridge | hashi not enabled | relayTokens() of 1 WETH from Chiado should transfer 1 WETH on Sepolia | 🟢 |  |  |  |  |  |
    | 9 | omnibridge | hashi not enabled | relayTokens() of 1 GNO  from Sepolia should mint 1 weth on chiado
     | 🟢 |  |  |  |  |  |
    | 10 | omnibridge | hashi not enabled | relayTokens() of 1 GNO from Chiado should transfer 1 GNO on Sepolia | 🟢 |  |  |  |  |  |
    |  |  |  |  |  |  |  |  |  |  |
    | 11 | amb | hashi not enabled | relay messages between Sepolia and Chiado should work | 🟢 |  |  |  |  |  |
    |  |  |  |  |  |  |  |  |  |  |
    | 12 | xdai | hashi is enabled & ! mandatory | relayTokens() of 10dai  from Sepolia should mint 10 xdai on chiado | 🟢 |  |  |  |  |  |
    | 13 | xdai | hashi is enabled & ! mandatory | relayTokens() of 10 xdai  from Chiado should release 10 dai on sepolia | 🟢 |  |  |  |  |  |
    | 14 | xdai | hashi is enabled & ! mandatory | transfer() of 10dai  from Sepolia should NOT mint 10 xdai on chiado and funds will be stuck.
    Funds recovered by governance should release the dai tokens back to the user | 🟢 | recoverLegacyTransfer()   |  |  |  |  |
    | 15 | xdai | hashi is enabled & ! mandatory | transfer() of 10 xdai  from Chiado should NOT release 10 dai on sepolia and funds will be stuck.
    Funds recovered by governance should release the xdai tokens back to the user | 🟢 | direct transfer is reverted, but calling fallback() without [msg.data](http://msg.data) works |  |  |  |  |
    | 16 | xdai | hashi is enabled & ! mandatory | investDai() should work as expected, depositing funds to MakerDSR (not testable on testnet most probably) |  | Tested in Unit test |  |  |  |  |
    | 17 | xdai | hashi is enabled & ! mandatory | payInterest() should bridge interest over to chaido, working as currently on mainnet |  | Tested in United test |  |  |  |  |
    | 18 | omnibridge | hashi is enabled & ! mandatory | relayTokens() of 1 eth  from Sepolia should mint 1 weth on chiado | 🟢 |  |  |  |  |  |
    | 19 | omnibridge | hashi is enabled & ! mandatory | relayTokens() of 1 WETH from Chiado should mint 1WETH on Sepolia | 🟢 |  |  |  |  |  |
    | 20 | omnibridge | hashi is enabled & ! mandatory | relayTokens() of 1 GNO  from Sepolia should mint 1 weth on chiado | 🟢 |  |  |  |  |  |
    | 21 | omnibridge | hashi is enabled & ! mandatory | relayTokens() of 1 GNO from Chiado should transfer 1 GNO on Sepolia | 🟢 |  |  |  |  |  |
    | 22 | amb | hashi is enabled & ! mandatory | relay messages between Sepolia and Chiado should work | 🟢 |  |  |  |  |  |
    |  |  |  |  |  |  |  |  |  |  |
    | 23 | xdai | hashi is enabled &  mandatory | relayTokens() of 10dai  from Sepolia should mint 10 xdai on chiado | 🟢 |  |  |  |  |  |
    | 24 | xdai | hashi is enabled &  mandatory | relayTokens() of 10 xdai  from Chiado should release 10 dai on sepolia | 🟢 |  |  |  |  |  |
    | 25 | xdai | hashi is enabled &  mandatory | transfer() of 10dai  from Sepolia should NOT mint 10 xdai on chiado and funds will be stuck.
    Funds recovered by governance should release the dai tokens back to the user | 🟢 | recoverLegacyTransfer()   |  |  |  |  |
    | 26 | xdai | hashi is enabled &  mandatory | transfer() of 10 xdai  from Chiado should NOT release 10 dai on sepolia and funds will be stuck.
    Funds recovered by governance should release the xdai tokens back to the user | 🟢 | direct transfer is reverted, but calling fallback() without [msg.data](http://msg.data) works |  |  |  |  |
    | 27 | xdai | hashi is enabled &  mandatory | investDai() should work as expected, depositing funds to MakerDSR (not testable on testnet most probably) |  | Tested in Unit test |  |  |  |  |
    | 28 | xdai | hashi is enabled &  mandatory | payInterest() should bridge interest over to chaido, working as currently on mainnet |  | Tested in United test |  |  |  |  |
    | 29 | omnibridge | hashi is enabled &  mandatory | relayTokens() of 1 eth  from Sepolia should mint 1 weth on chiado | 🟢 |  |  |  |  |  |
    | 30 | omnibridge | hashi is enabled &  mandatory | relayTokens() of 1 WETH from Chiado should mint 1 WETH on Sepolia | 🟢 |  |  |  |  |  |
    | 31 | omnibridge | hashi is enabled &  mandatory | relayTokens() of 1 GNO from Sepolia should mint 1 GNO on Chiado | 🟢 |  |  |  |  |  |
    | 32 | omnibridge | hashi is enabled &  mandatory | relayTokens() of 1 GNO from Chiado should mint 1 GNO on Sepolia | 🟢 |  |  |  |  |  |
    | 33 | amb | hashi is enabled &  mandatory | relay messages between Sepolia and Chiado should work | 🟢 |  |  |  |  |  |
    |  |  |  |  |  |  |  |  |  |  |
    |  |  |  |  |  |  |  |  |  |  |
    | 34 |  | hashi is enabled &  mandatory | test scenarios under ‣  | 🟢 |  |  |  |  |  |
- Test results
    
    # Hashi is !Enabled
    
    - Case 1 ✅
        1. Foreign DAI approve xDAI bridge
            1. [https://sepolia.etherscan.io/tx/0xedec882ec75536b7b535b6d3b4069929eba1619908d588c8140ca3a0fe042a4c](https://sepolia.etherscan.io/tx/0xedec882ec75536b7b535b6d3b4069929eba1619908d588c8140ca3a0fe042a4c)
        2. ForeignxDAI relayTokens
            1. [https://sepolia.etherscan.io/tx/0xb0a3fbea4fcc2d819cba870ed3b9815772105d6df7f9e69b0bd80dcd99f3405c](https://sepolia.etherscan.io/tx/0xb0a3fbea4fcc2d819cba870ed3b9815772105d6df7f9e69b0bd80dcd99f3405c)
        3. Home xDAI executeAffirmation
            1. [https://gnosis-chiado.blockscout.com/tx/0x33a797fd13f85a0d6f4fca2492daf344fe6c2638ec5c5329c9bb5d2e004122f3](https://gnosis-chiado.blockscout.com/tx/0x33a797fd13f85a0d6f4fca2492daf344fe6c2638ec5c5329c9bb5d2e004122f3)
    - Case 2 ✅
        1. Home xDAIBridge relayTokens
            1. [https://gnosis-chiado.blockscout.com/tx/0xa9ef7a5d9cd2e14f61ddfdb752892095eed694195d5bf7a9e7321c232141a75f](https://gnosis-chiado.blockscout.com/tx/0xa9ef7a5d9cd2e14f61ddfdb752892095eed694195d5bf7a9e7321c232141a75f)
        2. Home xDAI submitSignatures
            1. [https://gnosis-chiado.blockscout.com/tx/0xc4b400ca3337494ae0ab7e3ad170df9b137768ad67c25c8ff00c03318ad0faab](https://gnosis-chiado.blockscout.com/tx/0xc4b400ca3337494ae0ab7e3ad170df9b137768ad67c25c8ff00c03318ad0faab)
        3. Foreign xDAI executeSignatures
            1. [https://sepolia.etherscan.io/tx/0xa2ec1694535ecbc1e93b6b18b3170e663c034781b258c4926dab68ced60aec98](https://sepolia.etherscan.io/tx/0xa2ec1694535ecbc1e93b6b18b3170e663c034781b258c4926dab68ced60aec98)
        
    - Case 3 ✅
        1. Transfer 10 DAI() to Foreign xDAI bridge
            1. [https://sepolia.etherscan.io/tx/0x6a0e341a8452217277267c4c800d5816e5aa8e67a5c48a6f4c1079533bd02492](https://sepolia.etherscan.io/tx/0x6a0e341a8452217277267c4c800d5816e5aa8e67a5c48a6f4c1079533bd02492)
        2. recoverLegacyTransfer( address receiver) onlyUpgradeabilityOwner: 
            1. [https://sepolia.etherscan.io/tx/0x5a7061cf4bc4c2ca76f16e3c4e8af5305247591b721874ce054a123377319276](https://sepolia.etherscan.io/tx/0x5a7061cf4bc4c2ca76f16e3c4e8af5305247591b721874ce054a123377319276)
            
    - Case 4 ✅
        
        Direct transfer is reverted
        
        ```solidity
         cast send  0x0B7d8C6AD44Fb1BE9Ba11cDab58C5E002Fd77848  --value 10ether --rpc-url https://rpc.chiadochain.net --private-key  <PK>
        ```
        
        Return
        
        ```solidity
        server returned an error response: error code -32015: revert
        ```
        
        calling fallback
        
        [https://gnosis-chiado.blockscout.com/tx/0x0f52fec57f88064f8167860d2f583df20ae16cbcf6f27f557082ff9c641ed27b](https://gnosis-chiado.blockscout.com/tx/0x0f52fec57f88064f8167860d2f583df20ae16cbcf6f27f557082ff9c641ed27b)
        
        executeSignatures
        
        [https://sepolia.etherscan.io/tx/0x961a20feeebb8fe0d27bab1477a48ff4047f06e073c7ac3a5f4075b0a00e5e2c](https://sepolia.etherscan.io/tx/0x961a20feeebb8fe0d27bab1477a48ff4047f06e073c7ac3a5f4075b0a00e5e2c)
        
    - Case 5 ✅
        
        Tested in Unit Test
        
    - Case 6 ✅
        
        Tested in Unit Test
        
    - Case 7 ✅
        
        ## ETH→WETH
        
        Sepolia→Chiado 
        
        1. Foreign WETHRouter wrapAndRelayTokens
            1. [https://sepolia.etherscan.io/tx/0x2556448cbed42b7ee92af838bc1ff32867db741632e28205eaf577a05fce36ac](https://sepolia.etherscan.io/tx/0x2556448cbed42b7ee92af838bc1ff32867db741632e28205eaf577a05fce36ac)
        2. Home AMB executeAffirmation 
            1. [https://gnosis-chiado.blockscout.com/tx/0x58c8202656bfb8c3dcdd2e66b359553f8d09da9b9762c13a303e20160f064d1a (failed to deployAndHandleBridgedToken)](https://gnosis-chiado.blockscout.com/tx/0x2c52d13420ecb5beaf949b605d698bd539cbed4a1b64c3d9d4e707a0aef09544?tab=logs)
        
    - Case 8 ✅
        
        ## WETH → WETH
        
        Chiado → Sepolia
        
        1. WETH Approve HomeOmnibridge
            1. [https://gnosis-chiado.blockscout.com/tx/0x47d2987f9d0a5b084586a5ab8200b0fcc38df14ec0f3d8d526ffb38fa46ff58d](https://gnosis-chiado.blockscout.com/tx/0x47d2987f9d0a5b084586a5ab8200b0fcc38df14ec0f3d8d526ffb38fa46ff58d)
        2. Home Omnibridge relayTokens
            1. [https://gnosis-chiado.blockscout.com/tx/0x5bfbe2d4d5267bf07a9250d0eb96f869d76cbd29c766c96be4b0193b48a43213](https://gnosis-chiado.blockscout.com/tx/0x5bfbe2d4d5267bf07a9250d0eb96f869d76cbd29c766c96be4b0193b48a43213)
        3. Home AMB submit Signature
            1. [https://gnosis-chiado.blockscout.com/tx/0x6ff25befae5a0be10f89c477cbe0e0a3842a473b256dff50bf8a44f3388ae348](https://gnosis-chiado.blockscout.com/tx/0x6ff25befae5a0be10f89c477cbe0e0a3842a473b256dff50bf8a44f3388ae348)
        4. Foreign AMB executeSignatures
            1. [https://sepolia.etherscan.io/tx/0x22d0828b152e1a87ed7af350c5587deec9afe4efdd3c1441e32d4c740e124a18](https://sepolia.etherscan.io/tx/0x22d0828b152e1a87ed7af350c5587deec9afe4efdd3c1441e32d4c740e124a18)
    - Case 9 ✅
        
        # ERC20↔ERC20 ✅
        
        Sepolia→Chiado
        
        1. Foreign Token Approve Omnibridge
            1. [https://sepolia.etherscan.io/tx/0x0b13a7411d00628fa6f1f87a78b514856fef87ef935dcb3bcc9ef27937eda3b9](https://sepolia.etherscan.io/tx/0x0b13a7411d00628fa6f1f87a78b514856fef87ef935dcb3bcc9ef27937eda3b9)
        2. Foreign Token relayTokens
            1. [https://sepolia.etherscan.io/tx/0xac1d52583f2f8b2ef15d1d5e8f17fe21e799ca1150f1ae831526ebfd41af652e](https://sepolia.etherscan.io/tx/0xac1d52583f2f8b2ef15d1d5e8f17fe21e799ca1150f1ae831526ebfd41af652e)
        3. Home AMB.executeAffirmation
            1. [https://gnosis-chiado.blockscout.com/tx/0x63ae1c341a2b9ceeab1fbdedd2b4a0b94b4a1c9ca6b1876cc644c5609f34f2b7?tab=logs](https://gnosis-chiado.blockscout.com/tx/0x63ae1c341a2b9ceeab1fbdedd2b4a0b94b4a1c9ca6b1876cc644c5609f34f2b7?tab=logs)
    - Case 10 ✅
        
        Chiado → Sepolia
        
        1. Home Token approve Omnibridge
            1. [https://gnosis-chiado.blockscout.com/tx/0x390abe15c5c7a9fea77ffb9fd136fb14cf739ca18e1730d99fd7d6e2f27bb216](https://gnosis-chiado.blockscout.com/tx/0x390abe15c5c7a9fea77ffb9fd136fb14cf739ca18e1730d99fd7d6e2f27bb216)
        2. Home Token relayTokens
            1. [https://gnosis-chiado.blockscout.com/tx/0x041aa65dd7a4f1817535d2464051c53cfb948b5a70bdf08b8ed7cc0e1149eca6](https://gnosis-chiado.blockscout.com/tx/0x041aa65dd7a4f1817535d2464051c53cfb948b5a70bdf08b8ed7cc0e1149eca6)
        3. Home AMB.submitSignatures
            1. [https://gnosis-chiado.blockscout.com/tx/0xf794677f97dcba8eab313a7f5a2f6c7f147858955e4001ccc39108f5b90d1ae2](https://gnosis-chiado.blockscout.com/tx/0xf794677f97dcba8eab313a7f5a2f6c7f147858955e4001ccc39108f5b90d1ae2)
        4. Foreign AMB.executeAffirmation
            1. [https://sepolia.etherscan.io/tx/0xe7a0988b210593e2d62b258192f23f4b29a39cccec035d2050d778a0afb3fcba](https://sepolia.etherscan.io/tx/0xe7a0988b210593e2d62b258192f23f4b29a39cccec035d2050d778a0afb3fcba)
    - Case 11  ✅
        
        Sepolia→Chiado
        
        1. Foregin Png
            1. [https://sepolia.etherscan.io/tx/0x13bf568e25f6760a21e718da4108826ab5f56903c1b9495fdf9e70e38ca21ef9](https://sepolia.etherscan.io/tx/0x13bf568e25f6760a21e718da4108826ab5f56903c1b9495fdf9e70e38ca21ef9)
        2. Home AMB executeAffirmation
            1. [https://gnosis-chiado.blockscout.com/tx/0xe5cc3cddd76780445b98ae6214537958cdc64639917cb01b1b1e59e49df5dd0c](https://gnosis-chiado.blockscout.com/tx/0xe5cc3cddd76780445b98ae6214537958cdc64639917cb01b1b1e59e49df5dd0c?tab=index)
            
        
        Chiado → Sepolia
        
        1. Home ping
            1. [https://gnosis-chiado.blockscout.com/tx/0xb4d1b112b82258469dbb2d160904e03553c3fe7688a152c768ad345e0bb2ce3a](https://gnosis-chiado.blockscout.com/tx/0xb4d1b112b82258469dbb2d160904e03553c3fe7688a152c768ad345e0bb2ce3a)
        2. Home AMB submitSignatures
            1. [https://gnosis-chiado.blockscout.com/tx/0xcc3309a140f3e0667c20b0d959db1e2bb70f04c21672a2fe81c38d1b45d7a119](https://gnosis-chiado.blockscout.com/tx/0xcc3309a140f3e0667c20b0d959db1e2bb70f04c21672a2fe81c38d1b45d7a119)
        3. Foreign AMB executeSignature
            1. [https://sepolia.etherscan.io/tx/0x6f140acc9d8f79a11ef54caa2b5acb6f3db4ae32fdea13ac83a31fbdd9882497](https://sepolia.etherscan.io/tx/0x6f140acc9d8f79a11ef54caa2b5acb6f3db4ae32fdea13ac83a31fbdd9882497)
    
    # Hashi is Enabled
    
    - Case 12 ✅
        1. DAI contract: approve ForeignxDAI bridge
            1. [https://sepolia.etherscan.io/tx/0xccacba1de185713071f3623acc82f38b93254b1d826fa13b92e0bf0ec77693fe](https://sepolia.etherscan.io/tx/0xccacba1de185713071f3623acc82f38b93254b1d826fa13b92e0bf0ec77693fe)
        2. ForeignxDAI bridge relayTokens
            1. [https://sepolia.etherscan.io/tx/0x521d513692fc0113fedc3597dcdd3ba9048d8657df01e938ff0a949950a6c9fa#eventlog](https://sepolia.etherscan.io/tx/0x521d513692fc0113fedc3597dcdd3ba9048d8657df01e938ff0a949950a6c9fa#eventlog)
        3. relayer: relayMessagesToAdapters
            1. [https://sepolia.etherscan.io/tx/0xae8f5a9a5864064e9fd4f9ea763ec8feb8790a71fbad38ee943de31a0cd1da8e](https://sepolia.etherscan.io/tx/0xae8f5a9a5864064e9fd4f9ea763ec8feb8790a71fbad38ee943de31a0cd1da8e)
        4. call MockAdapter.storeHashes
            1. [https://gnosis-chiado.blockscout.com/tx/0x53bf5036c8f92d7d3d1a1740a7ab7f6828a0db9fae5c96a97586cadfc1503dff?tab=index](https://gnosis-chiado.blockscout.com/tx/0x53bf5036c8f92d7d3d1a1740a7ab7f6828a0db9fae5c96a97586cadfc1503dff?tab=index)
        5. executor: Yaru.executeMessages
            1. [https://gnosis-chiado.blockscout.com/tx/0x5cda2adc63feb7b9324212f72c29c3b681e1aae827da106c7994c90e38cc5c08?tab=index](https://gnosis-chiado.blockscout.com/tx/0x5cda2adc63feb7b9324212f72c29c3b681e1aae827da106c7994c90e38cc5c08?tab=index)
        6. validator oracle: HomexDAI executeAffirmation
            1. [https://gnosis-chiado.blockscout.com/tx/0xdd4156660dec70c65bc0e08be4d7b31c368e33677cffb903119626434bb61b08?tab=logs](https://gnosis-chiado.blockscout.com/tx/0xdd4156660dec70c65bc0e08be4d7b31c368e33677cffb903119626434bb61b08?tab=logs)
    - Case 13 ✅
        1. call Home xDAI bridge relayTokens:
            1.  [https://gnosis-chiado.blockscout.com/tx/0x003440b1cbbf971685ab76ac59509c7465793dc3edc1738a8eab523389bb720e](https://gnosis-chiado.blockscout.com/tx/0x003440b1cbbf971685ab76ac59509c7465793dc3edc1738a8eab523389bb720e)
        2. Validator call Home xDAI submitSignatures
            1. [https://gnosis-chiado.blockscout.com/tx/0xb8b171a1c8ddb986387f52a17329da08a334e26c2c59edc7ce0a36f39cc4fd36](https://gnosis-chiado.blockscout.com/tx/0xb8b171a1c8ddb986387f52a17329da08a334e26c2c59edc7ce0a36f39cc4fd36)
        3. call Home Yaho.relayMessagesToAdapters
            1. [https://gnosis-chiado.blockscout.com/tx/0x4380b38bda10ef8d16434dd89cde43eee9731047b42d5e0ea87c491408c6fc72](https://gnosis-chiado.blockscout.com/tx/0x4380b38bda10ef8d16434dd89cde43eee9731047b42d5e0ea87c491408c6fc72)
        4. call Foreign MockAdapter.storeHash
            1. [https://sepolia.etherscan.io/tx/0xbe4821b40d846ea40647daeef46fbd55d5a69dcaa2afa67b2a3b4a559e6327e3](https://sepolia.etherscan.io/tx/0xbe4821b40d846ea40647daeef46fbd55d5a69dcaa2afa67b2a3b4a559e6327e3)
        5. call Foreign Yaru executeMessages
            1. [https://sepolia.etherscan.io/tx/0xa6dae9fe26c96daf72a27b76e1b17d604dbce407376570935323208e1e7f9985](https://sepolia.etherscan.io/tx/0xa6dae9fe26c96daf72a27b76e1b17d604dbce407376570935323208e1e7f9985)
        6. Validator call Foreign xDAI  executeSignatures
            1. [https://sepolia.etherscan.io/tx/0x4257bdeb95f0fb2975fdc53ac14cb2b8028fd6953cf7d73615ef399572544f30](https://sepolia.etherscan.io/tx/0x4257bdeb95f0fb2975fdc53ac14cb2b8028fd6953cf7d73615ef399572544f30)
    - Case 14 ✅
        1. Transfer 10 DAI to Foregin xDAI bridge: [https://sepolia.etherscan.io/tx/0xdff56e32738b8d523b813e23e037ac0b1ed1f2f553f12b34300ba5f29ecc8b49](https://sepolia.etherscan.io/tx/0xdff56e32738b8d523b813e23e037ac0b1ed1f2f553f12b34300ba5f29ecc8b49)
        2. Call recoverLegacyTransfer( address receiver) onlyUpgradeabilityOwner: [https://sepolia.etherscan.io/tx/0xb7f1fe7b6cc0cd4e23f573fe944b3c40e92695170420ffe6e49e370fb22d2e1f](https://sepolia.etherscan.io/tx/0xb7f1fe7b6cc0cd4e23f573fe944b3c40e92695170420ffe6e49e370fb22d2e1f)
    - Case 15  ✅
        1. Direct transfer is reverted
            
            ```solidity
            $ cast send 0x8a3A3F0B9899c161393497e1aC32d6ca99289876 --value 10ether --rpc-url https://rpc.chiadochain.net --private-key <PRIV_KEY>
            ```
            
            ```solidity
            server returned an error response: error code -32015: revert
            ```
            
        2. Transfer 10 DAI without [msg.data](http://msg.data) to Home xDAI bridge: [https://gnosis-chiado.blockscout.com/tx/0xda2f2520797e99dae67758aa6d47d204f49d07316667958feedf6d8f0c6235ba](https://gnosis-chiado.blockscout.com/tx/0xda2f2520797e99dae67758aa6d47d204f49d07316667958feedf6d8f0c6235ba) emit the `MessageDispatched` and `UserRequestForSignatures` events, same as calling `relayTokens()` .
        3. Code: [https://github.com/crosschain-alliance/tokenbridge-contracts/blob/feat/hashi-integration-xdai-bridge/contracts/upgradeable_contracts/erc20_to_native/HomeBridgeErcToNative.sol#L25-L28](https://github.com/crosschain-alliance/tokenbridge-contracts/blob/feat/hashi-integration-xdai-bridge/contracts/upgradeable_contracts/erc20_to_native/HomeBridgeErcToNative.sol#L25-L28)
            
            ```solidity
                function() public payable {
                    require(msg.data.length == 0);
                    nativeTransfer(msg.sender);
                }
            ```
            
        4. In Solidity v0.4, function() is known as the fallback function. It has the following characteristics:
            1. It's a function without a name.
            2. It doesn't take any arguments.
            3. It can't return anything
            
            It's executed when a contract receives a transaction without any data (i.e., plain Ether transfer), or when none of the other functions match the given function signature.
            It's optional, but if present, it must be marked external.
            
            Note that in more recent versions of Solidity, the fallback functionality has been split into separate fallback() and receive() functions for better clarity and control.
            
        
    - Case 16 ✅
        
        Tested in Unit Test
        
    - Case 17 ✅
        
        Tested in Unit Test
        
    - Case 18 ✅
        
        # ETH→WETH
        
        Sepolia→Chiado
        
        1. Foreign WETHRouter wrapAndRelayTokens()
            1. [https://sepolia.etherscan.io/tx/0xc5334bf8d6dc76d3a82d136ba485365b2e5eaec7f3d327c919c2e2b19910067c](https://sepolia.etherscan.io/tx/0xc5334bf8d6dc76d3a82d136ba485365b2e5eaec7f3d327c919c2e2b19910067c)
        2. Foreign Yaho relayMessagesToAdapters
            1. [https://sepolia.etherscan.io/tx/0xce5b453a916b0c4b6b87825fe371750f4f9cc4795511e5a11b7f957213195b02](https://sepolia.etherscan.io/tx/0xce5b453a916b0c4b6b87825fe371750f4f9cc4795511e5a11b7f957213195b02)
        3. Home MockAdapter.setHashes
            1. [https://gnosis-chiado.blockscout.com/tx/0xd8d90c2cb64bf2fdfc0f65aae798009c87cfc9babd783abc4753f5f9cc36b77f](https://gnosis-chiado.blockscout.com/tx/0xd8d90c2cb64bf2fdfc0f65aae798009c87cfc9babd783abc4753f5f9cc36b77f)
        4. Home Yaru executeMessages
            1. [https://gnosis-chiado.blockscout.com/tx/0xbfa419d25fd7e3273259a2dbaf26d2a0702b5f7242e1321effd7bcb009278132](https://gnosis-chiado.blockscout.com/tx/0xbfa419d25fd7e3273259a2dbaf26d2a0702b5f7242e1321effd7bcb009278132)
        5. Home AMB executeAffirmation
            1. [https://gnosis-chiado.blockscout.com/tx/0x60aa247d1169d0780f93000e401d7bac024980f830b37036463fcfd6699c18cd](https://gnosis-chiado.blockscout.com/tx/0x60aa247d1169d0780f93000e401d7bac024980f830b37036463fcfd6699c18cd)
    - Case 19 ✅
        
        ## WETH→WETH
        
        Chiado → Sepolia
        
        1. Home Token approve Omnibridge
            1. [https://gnosis-chiado.blockscout.com/tx/0x86e8993beb0a6005c35499a5e6b7ced380c5fbcd7e83696ff48a53aa1ff4a03f](https://gnosis-chiado.blockscout.com/tx/0x86e8993beb0a6005c35499a5e6b7ced380c5fbcd7e83696ff48a53aa1ff4a03f)
        2. Home Token relayTokens
            1. [https://gnosis-chiado.blockscout.com/tx/0x0eb7993e2c1ab9551ef55f9173e0a07207183212d37288c2ae2eb6daca7fb1ab](https://gnosis-chiado.blockscout.com/tx/0x0eb7993e2c1ab9551ef55f9173e0a07207183212d37288c2ae2eb6daca7fb1ab)
        3. Home Yaho.relayMessagesToAdapters
            1. [https://gnosis-chiado.blockscout.com/tx/0x1b260edacddaa00e84ca0ddc1c8d61a56f5adf636527063b0a6d89cf1851633e](https://gnosis-chiado.blockscout.com/tx/0x1b260edacddaa00e84ca0ddc1c8d61a56f5adf636527063b0a6d89cf1851633e)
        4. Foreign MockAdapter.setHashes
            1. [https://sepolia.etherscan.io/tx/0xdec14e122a8951b9a307c3b2a96e168bb1701d80835d2e22e2b38437a070df20](https://sepolia.etherscan.io/tx/0xdec14e122a8951b9a307c3b2a96e168bb1701d80835d2e22e2b38437a070df20)
        5. Foreign Yaru.executeMessages
            1. [https://sepolia.etherscan.io/tx/0xc0bf1bfda17a430294cff733423e7fc34b6eecf3ae3359551fb69a0c6f0516d0](https://sepolia.etherscan.io/tx/0xc0bf1bfda17a430294cff733423e7fc34b6eecf3ae3359551fb69a0c6f0516d0)
        6. Foreign AMB.executeSignature
            1. [https://sepolia.etherscan.io/tx/0xb2a30a60ca030c5dffe175fe2ce29c26482a779b0e4cda5fc9c9648898b61737](https://sepolia.etherscan.io/tx/0xb2a30a60ca030c5dffe175fe2ce29c26482a779b0e4cda5fc9c9648898b61737)
    - Case 20 ✅
        
        # ERC20→ERC20
        
        Sepolia → Chiado
        
        1. GNO approve Omnibridge 
            1. [https://sepolia.etherscan.io/tx/0x82b5632bf3af35ec952ef742622904af3beb623b44200c8dd4e0e23f593495b3](https://sepolia.etherscan.io/tx/0x82b5632bf3af35ec952ef742622904af3beb623b44200c8dd4e0e23f593495b3)
        2. Foreign Omnibridge relayTokens: [https://sepolia.etherscan.io/tx/0x0c8492716f7b18e023266e17f34ef78599e5f80e8ec7352cc79cc0b64760eccc](https://sepolia.etherscan.io/tx/0x0c8492716f7b18e023266e17f34ef78599e5f80e8ec7352cc79cc0b64760eccc)
        3. Yaho relayMessagesToAdapters: 
            1. [https://sepolia.etherscan.io/tx/0x16301cb6110f1bf05f91f27de21626f85745d5699f2c2ce933a33e4983508c6f](https://sepolia.etherscan.io/tx/0x16301cb6110f1bf05f91f27de21626f85745d5699f2c2ce933a33e4983508c6f)
        4. Home MockAdapter setHashes
            1. [https://gnosis-chiado.blockscout.com/tx/0xc0be1fc0e068c5bcc10814f418826af612ed0779f3ffe8e46b8a73bce14cf876](https://gnosis-chiado.blockscout.com/tx/0xc0be1fc0e068c5bcc10814f418826af612ed0779f3ffe8e46b8a73bce14cf876)
        5. Home Yaru executeMesages
            1. [https://gnosis-chiado.blockscout.com/tx/0x755778d2e48ac8134e52ed5ead505c484a922a00a4c8567a819e54b49a4cc4c0](https://gnosis-chiado.blockscout.com/tx/0x755778d2e48ac8134e52ed5ead505c484a922a00a4c8567a819e54b49a4cc4c0)
        6. Home AMB exeucteAffirmation
            1. [https://gnosis-chiado.blockscout.com/tx/0x46412ca32c1855739d1d3cc5fd5c236513f426a320f7bdd2d384ef009ed5d448](https://gnosis-chiado.blockscout.com/tx/0x46412ca32c1855739d1d3cc5fd5c236513f426a320f7bdd2d384ef009ed5d448)
    - Case 21 ✅
        
        Chiado → Sepolia
        
        1. GNO approve Home Omnibridge
            1.  [https://gnosis-chiado.blockscout.com/tx/0xe5a05f89bb8efae2bd8c8c9082de85c1193d77a5646320a58b90af41d048bbd6](https://gnosis-chiado.blockscout.com/tx/0xe5a05f89bb8efae2bd8c8c9082de85c1193d77a5646320a58b90af41d048bbd6)
        2. Home Omnibridge relayTokens: 
            1. [https://gnosis-chiado.blockscout.com/tx/0x7ccd2c6951cc6898389ec0640ea7fb9663d657128d8da98f5347510ba4dd51e1](https://gnosis-chiado.blockscout.com/tx/0x7ccd2c6951cc6898389ec0640ea7fb9663d657128d8da98f5347510ba4dd51e1)
        3. Home Yaho relayMessagesToAdapters
            1.  [https://gnosis-chiado.blockscout.com/tx/0xe153522cd26ac55e7c80938da1dd9e35bd01dd31ad3e02a2146352dd186d3469](https://gnosis-chiado.blockscout.com/tx/0xe153522cd26ac55e7c80938da1dd9e35bd01dd31ad3e02a2146352dd186d3469)
        4. Home AMB submitSignatures:
            1.  [https://gnosis-chiado.blockscout.com/tx/0x0fa936ad5782527fcd545107355aaccdd68d318c9e36e9f6f25f87e125ddcb9d](https://gnosis-chiado.blockscout.com/tx/0x0fa936ad5782527fcd545107355aaccdd68d318c9e36e9f6f25f87e125ddcb9d).
        5. Foreign MockAdapter setHashes: [https://sepolia.etherscan.io/tx/0x224027add0c6edbc5ffb03a6bdbe9687b422947a0d2197ce0db2632d0984c176](https://sepolia.etherscan.io/tx/0x224027add0c6edbc5ffb03a6bdbe9687b422947a0d2197ce0db2632d0984c176)
        6. Foreign Yaru executeMessages: [https://sepolia.etherscan.io/tx/0x0ec26e13bfeff8d20c214281b728b3f5c4c900d304a435c3e65d052c5e84e2a9](https://sepolia.etherscan.io/tx/0x0ec26e13bfeff8d20c214281b728b3f5c4c900d304a435c3e65d052c5e84e2a9)
        7. Foreign AMB exeucteSignature: [https://sepolia.etherscan.io/tx/0xa4a53bb7ef36d1181c4117ce7f1dd72c4aa780643f5e5fdcc9a6b45bbeccd8fc](https://sepolia.etherscan.io/tx/0xa4a53bb7ef36d1181c4117ce7f1dd72c4aa780643f5e5fdcc9a6b45bbeccd8fc)
    - Case 22 ✅
        
        Sepolia→Chiado
        
        1. Foreign ping send requireToPassMessage
            1. [https://sepolia.etherscan.io/tx/0x8b30a5e8f9a1b05e1b3f7f2b011a1599436256b763e0be9d15f540cf2b44cc96](https://sepolia.etherscan.io/tx/0x8b30a5e8f9a1b05e1b3f7f2b011a1599436256b763e0be9d15f540cf2b44cc96)
        2. call Yaho.relayMessagesToAdaptes
            1. [https://sepolia.etherscan.io/tx/0x283d7f4bcf56b292ed58ce30b1ffd22edcbf325af6cdc033550c327db6d1ea60](https://sepolia.etherscan.io/tx/0x283d7f4bcf56b292ed58ce30b1ffd22edcbf325af6cdc033550c327db6d1ea60)
        3. call Home MockAdapter.storeHashes
            1. [https://gnosis-chiado.blockscout.com/tx/0xdf74254c8aced3e2afc10b993724fccb9951e71461d78293495313f0a69506c9](https://gnosis-chiado.blockscout.com/tx/0xdf74254c8aced3e2afc10b993724fccb9951e71461d78293495313f0a69506c9)
        4. call Home Yaru.executeMessages
            1. [https://gnosis-chiado.blockscout.com/tx/0xa70880fc7f70dc042c30820f231b6a130ce743e7657ffdfb98907e2f55e335d9](https://gnosis-chiado.blockscout.com/tx/0xa70880fc7f70dc042c30820f231b6a130ce743e7657ffdfb98907e2f55e335d9)
        5. Validator Home AMB.executeAffirmation
            1. [https://gnosis-chiado.blockscout.com/tx/0x4b0e6c67b8bb810645fd8a22a258b97fc2525742e57022533b7444cbbc08a53d](https://gnosis-chiado.blockscout.com/tx/0x4b0e6c67b8bb810645fd8a22a258b97fc2525742e57022533b7444cbbc08a53d)
        
        Chiado→Sepolia
        
        1. Home ping 
            1. [https://gnosis-chiado.blockscout.com/tx/0xe999e27548238336237f832b25acfbeabc14887dcf06babb717f5054fe5c21df](https://gnosis-chiado.blockscout.com/tx/0xe999e27548238336237f832b25acfbeabc14887dcf06babb717f5054fe5c21df)
        2. Validator call HomeAMB.submitSignatures
            1. [https://gnosis-chiado.blockscout.com/tx/0x07c3787acdb5639c171f7084078303b007a56fddbf1cc4718329b711a6141dca](https://gnosis-chiado.blockscout.com/tx/0x07c3787acdb5639c171f7084078303b007a56fddbf1cc4718329b711a6141dca)
        3. call Yaho.relayMessagesToAdapters
            1. [https://gnosis-chiado.blockscout.com/tx/0x8847de9d442c3ada484327b1dc2dbb297880f0dc0b849270598164f75e5055af](https://gnosis-chiado.blockscout.com/tx/0x8847de9d442c3ada484327b1dc2dbb297880f0dc0b849270598164f75e5055af)
        4. call Foreign mockAdapter.storeHashes
            1. [https://sepolia.etherscan.io/tx/0x57915d3634b95b1f5e0f2987e658e291ab613025e670220513e1dd142f8dd9d4](https://sepolia.etherscan.io/tx/0x57915d3634b95b1f5e0f2987e658e291ab613025e670220513e1dd142f8dd9d4)
        5. call Foreign Yaru.executeMessages
            1. [https://sepolia.etherscan.io/tx/0x9a0da87241835ad10f3714ca68e02938f248d90240bfdbd54cb9fb1b37ccf13c](https://sepolia.etherscan.io/tx/0x9a0da87241835ad10f3714ca68e02938f248d90240bfdbd54cb9fb1b37ccf13c)
        6. call ForeignAMB executeSignatures
            1. [https://sepolia.etherscan.io/tx/0xb74da206ca4475cd23d88c377c67164c13804af1bdc52b2e23eb5490b8942c00#eventlog](https://sepolia.etherscan.io/tx/0xb74da206ca4475cd23d88c377c67164c13804af1bdc52b2e23eb5490b8942c00#eventlog)
    
    # Hashi is Mandatory
    
    - Case 23✅
        1. DAI contract approve Foreign xDAI bridge
            1. [https://sepolia.etherscan.io/tx/0xcdbd1516755f918c6de4f5ee8eb9266649891b2277c9c2de23baba3717675065](https://sepolia.etherscan.io/tx/0xcdbd1516755f918c6de4f5ee8eb9266649891b2277c9c2de23baba3717675065)
        2. Foreign xDAI bridge relayTokens
            1. [https://sepolia.etherscan.io/tx/0x140a843f8a5926915cf429d9dbd890fcc500a36c14808713d3816d3486ff9955](https://sepolia.etherscan.io/tx/0x140a843f8a5926915cf429d9dbd890fcc500a36c14808713d3816d3486ff9955)
        3. Foreign Yaho relayMessagesToAdapters
            1. [https://sepolia.etherscan.io/tx/0x166454520c43853e8e4d5af58ceb488f104cf928f8539a079138b2ec10aa7e6e](https://sepolia.etherscan.io/tx/0x166454520c43853e8e4d5af58ceb488f104cf928f8539a079138b2ec10aa7e6e)
        4. Home Adapter store Hashes
            1. [https://gnosis-chiado.blockscout.com/tx/0x937bdda73679a024af3aa3da818138d432248f83b770ef4fb4f34187e25f2f8f](https://gnosis-chiado.blockscout.com/tx/0x937bdda73679a024af3aa3da818138d432248f83b770ef4fb4f34187e25f2f8f)
        5. Home Yaru executeMessages
            1. [https://gnosis-chiado.blockscout.com/tx/0x6116578636c0a06dc649c8608ee25469dbed5377211833d9d1052beec2712b96](https://gnosis-chiado.blockscout.com/tx/0x6116578636c0a06dc649c8608ee25469dbed5377211833d9d1052beec2712b96)
        6. Home xDAI executeAffirmation
            1. [https://gnosis-chiado.blockscout.com/tx/0xd39146ccd863ddf5ad2955351ea6b95b32a4ce1073c7da9b8d5881388c6b4713?tab=index](https://gnosis-chiado.blockscout.com/tx/0xd39146ccd863ddf5ad2955351ea6b95b32a4ce1073c7da9b8d5881388c6b4713?tab=index)
    - Case 24 ✅
        1. Home xDAI relayTokens
            1. [https://gnosis-chiado.blockscout.com/tx/0x08199542b73ced47fa47ff77f84f7b276f7fa1fa7d4fe3110330ac96646310ba](https://gnosis-chiado.blockscout.com/tx/0x08199542b73ced47fa47ff77f84f7b276f7fa1fa7d4fe3110330ac96646310ba)
        2. Home xDAI submitSignatures
            1. [https://gnosis-chiado.blockscout.com/tx/0x02e47df8f3c730753ba89c7928b4ac9f7c36a15f5673bc7ce8c085d3a8c73852](https://gnosis-chiado.blockscout.com/tx/0x02e47df8f3c730753ba89c7928b4ac9f7c36a15f5673bc7ce8c085d3a8c73852)
        3. Home Yaho relayMessagesToAdapters
            1. [https://gnosis-chiado.blockscout.com/tx/0xfcfb159884999ecce2887ee460f13237260914676b0fdf170be0ae65550cd2a6](https://gnosis-chiado.blockscout.com/tx/0xfcfb159884999ecce2887ee460f13237260914676b0fdf170be0ae65550cd2a6)
        4. Foreign MockAdapter store Hashes
            1. [https://sepolia.etherscan.io/tx/0xaa9fae9afb8bad735f9d0463ee1ea65672f2bcef1a72a137c0717e6405045a2f](https://sepolia.etherscan.io/tx/0xaa9fae9afb8bad735f9d0463ee1ea65672f2bcef1a72a137c0717e6405045a2f)
        5. Foreign Yaru executeMessages
            1. [https://sepolia.etherscan.io/tx/0xee61fd8a5923e96c11ffb32177d0de054369e171f9496fbf8f992df9358fdc5e](https://sepolia.etherscan.io/tx/0xee61fd8a5923e96c11ffb32177d0de054369e171f9496fbf8f992df9358fdc5e)
        6. Foreign xDAI executeSignatures
            1. [https://sepolia.etherscan.io/tx/0x585985c3706a37db51523569ceb5c9afe69742ba7152f862590475c00b8e1d68](https://sepolia.etherscan.io/tx/0x585985c3706a37db51523569ceb5c9afe69742ba7152f862590475c00b8e1d68)
        
    - Case 25✅
        1. Transfer 10 DAI to Foregin xDAI bridge: 
            1. [https://sepolia.etherscan.io/tx/0x5951eea66cac97fa0db98e7e4522a78cf39200738b76addcf303bdcde23cfeda](https://sepolia.etherscan.io/tx/0x5951eea66cac97fa0db98e7e4522a78cf39200738b76addcf303bdcde23cfeda)
        2. Call recoverLegacyTransfer( address receiver) onlyUpgradeabilityOwner: 
            1. [https://sepolia.etherscan.io/tx/0x6b96b433141a6c265cdbc68aa3562bfa96bffb5eada9791673d502be83c13b77](https://sepolia.etherscan.io/tx/0x6b96b433141a6c265cdbc68aa3562bfa96bffb5eada9791673d502be83c13b77)
    - Case 26  ✅
        
        Direct transfer is reverted
        
        ```solidity
        cast send 0x867696eA1cfA243aB909797022D0A0C99BdACcF1  --value 10ether --rpc-url https://rpc.chiadochain.net --private-key <PRIV_KEY>
        ```
        
        Return
        
        ```solidity
        server returned an error response: error code -32015: revert
        ```
        
        Calling the fallback() function will work as normal `relayTokens` call
        
        [https://gnosis-chiado.blockscout.com/tx/0x8c24d9f350ecb654a0ea26371370fa3059305a99c0df637a2c04245cde81fb38](https://gnosis-chiado.blockscout.com/tx/0x8c24d9f350ecb654a0ea26371370fa3059305a99c0df637a2c04245cde81fb38)
        
    - Case 27 ✅
        
        Tested in Unit Test
        
    - Case 28 ✅
        
        Tested in Unit Test
        
    - Case 29 ✅
        
        ## ETH→WETH
        
        Sepolia→Chiado
        
        1. Foreign WETHRouter wrapAndRelayTokens
            1. [https://sepolia.etherscan.io/tx/0x45200e0385ed90b95068115f49f1d4d992c9cefaa153d64497fc9dd1b408718b](https://sepolia.etherscan.io/tx/0x45200e0385ed90b95068115f49f1d4d992c9cefaa153d64497fc9dd1b408718b)
        2. Foreign Yaho.relayMessagesToAdapters
            1. [https://sepolia.etherscan.io/tx/0xab2494710d2cfb01022e207aaa84876b77273f1f3590683570771ab3dc60a02e](https://sepolia.etherscan.io/tx/0xab2494710d2cfb01022e207aaa84876b77273f1f3590683570771ab3dc60a02e)
        3. Home MockAdapter.setHashes
            1. [https://gnosis-chiado.blockscout.com/tx/0xbb73bc14504e7ad8ed67cc9f751b09473a947e7751a8d3b2d28025074b645436](https://gnosis-chiado.blockscout.com/tx/0xbb73bc14504e7ad8ed67cc9f751b09473a947e7751a8d3b2d28025074b645436)
        4. Home Yaru.executeMessages
            1. [https://gnosis-chiado.blockscout.com/tx/0xb9571e5d8d9226886dc9bfed68a734b629a3caf10213cc3b8e697eb86326a87d](https://gnosis-chiado.blockscout.com/tx/0xb9571e5d8d9226886dc9bfed68a734b629a3caf10213cc3b8e697eb86326a87d)
        5. Home AMB.executeAffirmation
            1. [https://gnosis-chiado.blockscout.com/tx/0x5b1967ef9d0e7cb086b34fd391567ea10be1a69f5d2966a5449a32cd659eec88](https://gnosis-chiado.blockscout.com/tx/0x5b1967ef9d0e7cb086b34fd391567ea10be1a69f5d2966a5449a32cd659eec88)
    - Case 30 ✅
        
        ## WETH→WETH
        
        Chiado → Sepolia
        
        1. Home Token approve Omnibridge
            1. [https://gnosis-chiado.blockscout.com/tx/0x9de01343ed819a6abce7cf10714adf939dda782fcb1676e0307602e8a15e8986](https://gnosis-chiado.blockscout.com/tx/0x9de01343ed819a6abce7cf10714adf939dda782fcb1676e0307602e8a15e8986)
        2. Home Token relayTokens
            1. [https://gnosis-chiado.blockscout.com/tx/0x5c5d0c65800b2e4bd391f12e01394f3422e175b1dd67dd70b7c202965840015b](https://gnosis-chiado.blockscout.com/tx/0x5c5d0c65800b2e4bd391f12e01394f3422e175b1dd67dd70b7c202965840015b)
        3. Home AMB submitSignature
            1. [https://gnosis-chiado.blockscout.com/tx/0x4a3cac68a96c17f473fe89e1a12903278f1ac2f23c208d4ec1df00987cc353f1](https://gnosis-chiado.blockscout.com/tx/0x4a3cac68a96c17f473fe89e1a12903278f1ac2f23c208d4ec1df00987cc353f1)
        4. Home Yaho.relayMessagesToAdapters
            1. [https://gnosis-chiado.blockscout.com/tx/0xf1a08b02f02617c42985f49595b78b45d994981568f86e0e4ece4f4d3c36ebf3](https://gnosis-chiado.blockscout.com/tx/0xf1a08b02f02617c42985f49595b78b45d994981568f86e0e4ece4f4d3c36ebf3)
        5. Foreign MockAdapter.setHashes
            1. [https://sepolia.etherscan.io/tx/0xab881a6b24950c15798e0bab5919319415f9e6c7df173f3c3d05a8c1048dbb6b](https://sepolia.etherscan.io/tx/0xab881a6b24950c15798e0bab5919319415f9e6c7df173f3c3d05a8c1048dbb6b)
        6. Foreign Yaru.executeMessages
            1. [https://sepolia.etherscan.io/tx/0x0f854ac0b269b889babde0a93ac1a7b68cc930a219d84754512bdbddd5c3f210](https://sepolia.etherscan.io/tx/0x0f854ac0b269b889babde0a93ac1a7b68cc930a219d84754512bdbddd5c3f210)
        7. Foreign AMB.executeSignature
            1. [https://sepolia.etherscan.io/tx/0x64d87740110b8f588c556d2754b2a8b81f8ea60378f3a14fa364e72f0fc1a2ef](https://sepolia.etherscan.io/tx/0x64d87740110b8f588c556d2754b2a8b81f8ea60378f3a14fa364e72f0fc1a2ef)
    - Case 31 ✅
        
        ## GNO→GNO (ERC20)
        
        Sepolia→Chiado 
        
        1. Foreign Token Approve Omnibridge
            1. [https://sepolia.etherscan.io/tx/0x7f422735340d423b92a4886429691883da37e47ff40ebbe8ad20091f68c56132](https://sepolia.etherscan.io/tx/0x7f422735340d423b92a4886429691883da37e47ff40ebbe8ad20091f68c56132)
        2. Foreign Token relayTokens
            1. [https://sepolia.etherscan.io/tx/0x290eb9836218179c8d066af43ffcd5d070bc4dd28aa6ab694334eb85e6a2ceb0](https://sepolia.etherscan.io/tx/0x290eb9836218179c8d066af43ffcd5d070bc4dd28aa6ab694334eb85e6a2ceb0)
        3. Foreign Yaho.relayMessagesToAdapters
            1. [https://sepolia.etherscan.io/tx/0xa553e1b8522d3ff757c7f2e32a49b8d397804a8e91a275d12daa9ba69e685c9f](https://sepolia.etherscan.io/tx/0xa553e1b8522d3ff757c7f2e32a49b8d397804a8e91a275d12daa9ba69e685c9f)
        4. Home MockAdapter.setHashes
            1. [https://gnosis-chiado.blockscout.com/tx/0xb8e1d3d9251a2d22b9651b8d9aff3a9eeaf4fe6a2ee2623842380f2b43f06371](https://gnosis-chiado.blockscout.com/tx/0xb8e1d3d9251a2d22b9651b8d9aff3a9eeaf4fe6a2ee2623842380f2b43f06371)
        5. Home Yaru.executeMessages
            1. [https://gnosis-chiado.blockscout.com/tx/0x734c5df29f6ed45b9df7b85b470d583ea66369fcf1a4e117915295fd9fe3607e](https://gnosis-chiado.blockscout.com/tx/0x734c5df29f6ed45b9df7b85b470d583ea66369fcf1a4e117915295fd9fe3607e)
        6. Home AMB.executeAffirmation
            1. [https://gnosis-chiado.blockscout.com/tx/0xedffd1d55c7fd3b5c675ba47b6a4f416939a0967ad9396eb180ef82fa107bf91?tab=logs](https://gnosis-chiado.blockscout.com/tx/0xedffd1d55c7fd3b5c675ba47b6a4f416939a0967ad9396eb180ef82fa107bf91?tab=logs)
    - Case 32 ✅
        
        ## GNO→GNO (ERC20
        
        Chiado → Sepolia
        
        1. Home Token approve Omnibridge
            1. [https://gnosis-chiado.blockscout.com/tx/0x5c00c3afc09c3e7e6decba2dc8476d2796411a3ad81ac43ce0fc3d10870bf6de](https://gnosis-chiado.blockscout.com/tx/0x5c00c3afc09c3e7e6decba2dc8476d2796411a3ad81ac43ce0fc3d10870bf6de)
        2. Home Token relayTokens
            1. [https://gnosis-chiado.blockscout.com/tx/0xe82c643df10ba9325e90355af88caea396d6dbbb4a24e01ccd42e96c7d378046](https://gnosis-chiado.blockscout.com/tx/0xe82c643df10ba9325e90355af88caea396d6dbbb4a24e01ccd42e96c7d378046)
        3. Home Yaho.relayMessagesToAdapters
            1. [https://gnosis-chiado.blockscout.com/tx/0xdc1e5de4546755e1deb645d5422b0d4fe54cbcb22cf163c97d33a045fd5e6a94](https://gnosis-chiado.blockscout.com/tx/0xdc1e5de4546755e1deb645d5422b0d4fe54cbcb22cf163c97d33a045fd5e6a94)
        4. Home AMB.submitSignatures
            1. [https://gnosis-chiado.blockscout.com/tx/0xc6fe79f005eb8c30c952014285d89a0ffff70ff4440bdac0c75e3e26ef4e3752](https://gnosis-chiado.blockscout.com/tx/0xc6fe79f005eb8c30c952014285d89a0ffff70ff4440bdac0c75e3e26ef4e3752)
        5. Foreign MockAdapter.setHashes
            1. [https://sepolia.etherscan.io/tx/0x8ce633cd7451c24ec5cec76f819f8a8cf5b0541a6e4fc209e85d721b9faf3291](https://sepolia.etherscan.io/tx/0x8ce633cd7451c24ec5cec76f819f8a8cf5b0541a6e4fc209e85d721b9faf3291)
        6. Foreign Yaru.executeMessages
            1. [https://sepolia.etherscan.io/tx/0x02d4b64841ffce8ad7245ff04265503112c153483489d2e726782c708fe2e52d](https://sepolia.etherscan.io/tx/0x02d4b64841ffce8ad7245ff04265503112c153483489d2e726782c708fe2e52d)
        7. Foreign AMB.executeAffirmation
            1. [https://sepolia.etherscan.io/tx/0xa7c9698eac7d74a4668674c0fe7cb0e03ac16392c7890222c80eee4f477fe9b7](https://sepolia.etherscan.io/tx/0xa7c9698eac7d74a4668674c0fe7cb0e03ac16392c7890222c80eee4f477fe9b7)
    - Case 33 ✅
        
        Sepolia→Chiado
        
        1. Foreign ping
            1. [https://sepolia.etherscan.io/tx/0xc447e6cd958aabaa49cf08e91a64d44ceed8fa55a07e185ba541f078b0fd12e7](https://sepolia.etherscan.io/tx/0xc447e6cd958aabaa49cf08e91a64d44ceed8fa55a07e185ba541f078b0fd12e7)
        2. Foreign Yaho relayMessagesToAdapters
            1. [https://sepolia.etherscan.io/tx/0x03afa484c4630caa51984b123df16e69c26173a572fa8249aee4915cd537ba98](https://sepolia.etherscan.io/tx/0x03afa484c4630caa51984b123df16e69c26173a572fa8249aee4915cd537ba98)
        3. Home MockAdapter setHashes
            1. [https://gnosis-chiado.blockscout.com/tx/0x3473770ee6f7b5078481b43a4290e50935f040ed43245435ab3b1d783cbbc271](https://gnosis-chiado.blockscout.com/tx/0x3473770ee6f7b5078481b43a4290e50935f040ed43245435ab3b1d783cbbc271)
        4. Home Yaru executeMessages
            1. [https://gnosis-chiado.blockscout.com/tx/0xd5d37b7f4034563a54f87642fe7662ab114f6905e8befcfed92f0e339087a5be](https://gnosis-chiado.blockscout.com/tx/0xd5d37b7f4034563a54f87642fe7662ab114f6905e8befcfed92f0e339087a5be)
        5. Home AMB executeAffirmation
            1. [https://gnosis-chiado.blockscout.com/tx/0x382b69282c25187ceb124a6d88d081c5d414575a28239e6436ab33d3b5104fe7](https://gnosis-chiado.blockscout.com/tx/0x382b69282c25187ceb124a6d88d081c5d414575a28239e6436ab33d3b5104fe7)
        
        Chiado→Sepolia
        
        1. Home ping
            1. [https://gnosis-chiado.blockscout.com/tx/0x230817f9d9083736b2d35ce99576441fccea8606f5a92c5a038a94d6053589f1](https://gnosis-chiado.blockscout.com/tx/0x230817f9d9083736b2d35ce99576441fccea8606f5a92c5a038a94d6053589f1)
        2. Home AMB submitSignatures
            1. [https://gnosis-chiado.blockscout.com/tx/0x291ea264407cff8e8981481c3a66cc147b834e2f3ef277681ecae5ef97c95c69](https://gnosis-chiado.blockscout.com/tx/0x291ea264407cff8e8981481c3a66cc147b834e2f3ef277681ecae5ef97c95c69)
        3. Home Yaho relayMEssagesToAdapter
            1. [https://gnosis-chiado.blockscout.com/tx/0xc3fd3bad1be86c34bbf642f495e3e918eabe69c79ce67d8a0115c6d9aef6784c](https://gnosis-chiado.blockscout.com/tx/0xc3fd3bad1be86c34bbf642f495e3e918eabe69c79ce67d8a0115c6d9aef6784c)
        4. Foreign Mock Adapter setHashes
            1. [https://sepolia.etherscan.io/tx/0xc9842dcbf25a7bfbaba0d90c9e6e048c95a0c764fdb7d929992520d5c8a88a98](https://sepolia.etherscan.io/tx/0xc9842dcbf25a7bfbaba0d90c9e6e048c95a0c764fdb7d929992520d5c8a88a98)
        5. Foreign Yaru executeMessages
            1. [https://sepolia.etherscan.io/tx/0x2a50ab7dd4875a283c46f3a267bc652482873031552b0881bc63e88fa54077b9](https://sepolia.etherscan.io/tx/0x2a50ab7dd4875a283c46f3a267bc652482873031552b0881bc63e88fa54077b9)
        6. Foreign AMB executeSignatures
            1. [https://sepolia.etherscan.io/tx/0xd42c6dbe3df752ff5f9dfa85479b2e31b1459c73a8ed986169eaf3e9fa051636](https://sepolia.etherscan.io/tx/0xd42c6dbe3df752ff5f9dfa85479b2e31b1459c73a8ed986169eaf3e9fa051636)
    - Case 34  ✅
        
        **Scenario: Hashi is enabled & mandatory**
        
        # Omnibridge ✅
        
        Original [reporter, adapter, threshold]:  [[0x288dA9f5b01D9118AD0A1Fb998C1295fF1cf5c80](https://sepolia.etherscan.io/address/0x288dA9f5b01D9118AD0A1Fb998C1295fF1cf5c80#code),[0xce5C452cf0Ad9a2e27e3077A36639D197b9BF549](https://gnosis-chiado.blockscout.com/address/0xce5C452cf0Ad9a2e27e3077A36639D197b9BF549), 1]
        
        New [reporter, adapter, threshold]: [0x7F0afc28Dc15161956b260dd960d518e45294f63, [0xF49F36241570034b6a3eb0735fc6A1d359881bBF](https://gnosis-chiado.blockscout.com/address/0xF49F36241570034b6a3eb0735fc6A1d359881bBF), 1]
        
        Sepolia → Chiado ✅
        
        1. Foreign approve GNO 
            1. [https://sepolia.etherscan.io/tx/0xd6471df3198955b6934a27b4d75879b1a88cc1c05fbe1dd05acb9801957ede94](https://sepolia.etherscan.io/tx/0xd6471df3198955b6934a27b4d75879b1a88cc1c05fbe1dd05acb9801957ede94)
        2. Foreign relayTokens 
            1. [https://sepolia.etherscan.io/tx/0x385013e26a056d2c595e37f66ecdabe0e8805094628c05accee8099cafab0549](https://sepolia.etherscan.io/tx/0x385013e26a056d2c595e37f66ecdabe0e8805094628c05accee8099cafab0549)
        3. Hashi Manager set Reporters, adapters and threshold
            1. [https://sepolia.etherscan.io/tx/0x1d9d5401ac1c1e9b59ca67f433e5700aaf6b28ad27feead991b403b7405f791b](https://sepolia.etherscan.io/tx/0x1d9d5401ac1c1e9b59ca67f433e5700aaf6b28ad27feead991b403b7405f791b)
        4. Foreign AMB resend Data with hashi
            1. [https://sepolia.etherscan.io/tx/0xabbe34db78cf9b553a80e1dde4755a4f8aa3cc9bd4f4d5d07f46e13fe5e19db6](https://sepolia.etherscan.io/tx/0xabbe34db78cf9b553a80e1dde4755a4f8aa3cc9bd4f4d5d07f46e13fe5e19db6)
        5. Foreign Yaho relayMessagesToAdapters
            1. [https://sepolia.etherscan.io/tx/0x401bf6fe034b3ac3d54fa976e6333ed2fea4de5426cbca110f84fdf941516b1f](https://sepolia.etherscan.io/tx/0x401bf6fe034b3ac3d54fa976e6333ed2fea4de5426cbca110f84fdf941516b1f)
        6. Home Hashi Manager set expected threshold ,set expected adapters
            1. [https://gnosis-chiado.blockscout.com/tx/0xeef14d23bf038235b973864c0ce13b088049fa686008ba436141e1752c10ee60](https://gnosis-chiado.blockscout.com/tx/0xeef14d23bf038235b973864c0ce13b088049fa686008ba436141e1752c10ee60)
        7. Home MockAdapter2 setHashes
            1. [https://gnosis-chiado.blockscout.com/tx/0x001bb627f3159f63f1d44ce2d267f1bf6dbe2585fc2a308f98bbd70fd39ea9dd](https://gnosis-chiado.blockscout.com/tx/0x001bb627f3159f63f1d44ce2d267f1bf6dbe2585fc2a308f98bbd70fd39ea9dd)
        8. Home Yaru executeMessages
            1. [https://gnosis-chiado.blockscout.com/tx/0x7e75125948040534388a4bea5d5363dc6d911a7efcd5228b277d755063fdc7ee](https://gnosis-chiado.blockscout.com/tx/0x7e75125948040534388a4bea5d5363dc6d911a7efcd5228b277d755063fdc7ee)
        9. Home AMB executeAffirmation
            1. [https://gnosis-chiado.blockscout.com/tx/0x7068e00f02dfcdf678d20f2a5f1e6f0155311b79fb932d4034544b5d45116521](https://gnosis-chiado.blockscout.com/tx/0x7068e00f02dfcdf678d20f2a5f1e6f0155311b79fb932d4034544b5d45116521?tab=index)
        
        ### Chiado → Sepolia ✅
        
        Original [reporter, adapter, threshold]: [[0x3da176b43604Aacf6178128865AfccB21ee0F943](https://gnosis-chiado.blockscout.com/address/0x3da176b43604Aacf6178128865AfccB21ee0F943), [0xBF06b26b409ed48e74F2d01A61675672C07aF370](https://sepolia.etherscan.io/address/0xBF06b26b409ed48e74F2d01A61675672C07aF370), 1]
        
        New [reporter, adapter, threshold]: [[0x44857763aa2893Fb479b1CC27F18f4b3F6842Df5](https://gnosis-chiado.blockscout.com/address/0x44857763aa2893Fb479b1CC27F18f4b3F6842Df5), [0x64629a26FBA981A8B3d062fA2CB719d3648f748F](https://sepolia.etherscan.io/address/0x64629a26FBA981A8B3d062fA2CB719d3648f748F#code), 1]
        
        1. Home approve GNO
            1. [https://gnosis-chiado.blockscout.com/tx/0x947b6e2918af8e9ac893f51c21136414300860776b5e4b9d964c5185b3763240](https://gnosis-chiado.blockscout.com/tx/0x947b6e2918af8e9ac893f51c21136414300860776b5e4b9d964c5185b3763240)
        2. Home relayTokens
            1. [https://gnosis-chiado.blockscout.com/tx/0x47529167fd90ca29cfcbef713e118e24c1aa79e04e34321c8ef6cc066b56583e](https://gnosis-chiado.blockscout.com/tx/0x47529167fd90ca29cfcbef713e118e24c1aa79e04e34321c8ef6cc066b56583e)
        3. Hashi Manager set reporters, adapters, threshold
            1. [https://gnosis-chiado.blockscout.com/tx/0x1cf33c97d506bbd165569140b16192e8e3a6eadb4326afa06dfeeaede7a98584](https://gnosis-chiado.blockscout.com/tx/0x1cf33c97d506bbd165569140b16192e8e3a6eadb4326afa06dfeeaede7a98584)
        4. Home AMB resendDataWithHashi
            1. [https://gnosis-chiado.blockscout.com/tx/0x773c90614abea357825519db19f4f428fc628162f2653be8ba09bd06e6063141](https://gnosis-chiado.blockscout.com/tx/0x773c90614abea357825519db19f4f428fc628162f2653be8ba09bd06e6063141)
        5. Home validator AMB.submitSignatures
            1. [https://gnosis-chiado.blockscout.com/tx/0x5560dd68fdc3a31668b40b44e13c035d3be329e62c0aad87379b0a6f56584114](https://gnosis-chiado.blockscout.com/tx/0x5560dd68fdc3a31668b40b44e13c035d3be329e62c0aad87379b0a6f56584114)
        6. Home Yaho relayMessagesToAdapters
            1. [https://gnosis-chiado.blockscout.com/tx/0xfdade9169fe2ae4e36a7735c2e3c34526bac8fd0d885bfef51ee1022b4e63991](https://gnosis-chiado.blockscout.com/tx/0xfdade9169fe2ae4e36a7735c2e3c34526bac8fd0d885bfef51ee1022b4e63991)
        7. Foreign MockAdapter2 setHashes
            1. [https://sepolia.etherscan.io/tx/0x48a9f93f363ccc3f0086f49c44c51b4cfef831114f32c58e89bf453a392c67cf](https://sepolia.etherscan.io/tx/0x48a9f93f363ccc3f0086f49c44c51b4cfef831114f32c58e89bf453a392c67cf)
        8. Foreign Hashi Manager set expected adapters, set expected threshold
            1. [https://sepolia.etherscan.io/tx/0x272925a525653cb3b257783ca1b79eb373435921951fec54d5f602abf35d41eb](https://sepolia.etherscan.io/tx/0x272925a525653cb3b257783ca1b79eb373435921951fec54d5f602abf35d41eb)
        9. Foreign Yaru executeMessages
            1. [https://sepolia.etherscan.io/tx/0x5794e4860958e709ea61b53e72aa8271dcb1c2446caef6b3175d44668f05fb3b](https://sepolia.etherscan.io/tx/0x5794e4860958e709ea61b53e72aa8271dcb1c2446caef6b3175d44668f05fb3b)
        10. Foreign AMB executeSignatures
            1. [https://sepolia.etherscan.io/tx/0xa41539fc1827dbaab9fc37fe01fb07516735248f946bb97e384a49073d7c1d0b](https://sepolia.etherscan.io/tx/0xa41539fc1827dbaab9fc37fe01fb07516735248f946bb97e384a49073d7c1d0b)
        
        # **xDAI bridge** ✅
        
        <aside>
        💡 In xDAI bridge, the data input from resendDataWithHashi(bytes data) is abi.encodePacked(address receiver, uint256 value, bytes32 nonce).
        
        However, for validator submitSignature(bytes32 signature, bytes message) and validator executeSignature(bytes32 packed_signature, bytes message), the message input is abi.encodePacked(address receiver, uint256 value, bytes32 nonce, address foreignXDAIBridge).
        
        Keep in mind that in original xDAI bridge, bytes32 nonce is bytes32 tx Hash instead.
        
        </aside>
        
        ### **Sepolia → Chiado** ✅
        
        Original [reporter, adapter, threshold]:  [[0x288dA9f5b01D9118AD0A1Fb998C1295fF1cf5c80](https://sepolia.etherscan.io/address/0x288dA9f5b01D9118AD0A1Fb998C1295fF1cf5c80#code),[0xce5C452cf0Ad9a2e27e3077A36639D197b9BF549](https://gnosis-chiado.blockscout.com/address/0xce5C452cf0Ad9a2e27e3077A36639D197b9BF549), 1]
        
        New [reporter, adapter, threshold]: [0x7F0afc28Dc15161956b260dd960d518e45294f63, [0xF49F36241570034b6a3eb0735fc6A1d359881bBF](https://gnosis-chiado.blockscout.com/address/0xF49F36241570034b6a3eb0735fc6A1d359881bBF), 1]
        
        1. Foreign DAI approve
            1. [https://sepolia.etherscan.io/tx/0xaad9d97ecee82ea686d97e292ad1d4e05f996400fbbe2c0d50d95fd261305b95](https://sepolia.etherscan.io/tx/0xaad9d97ecee82ea686d97e292ad1d4e05f996400fbbe2c0d50d95fd261305b95)
        2. Foreign xDAI bridge relayTokens
            1. [https://sepolia.etherscan.io/tx/0x289b63271bf4e99e4f263f867d18cb8bf425ba194138fc115418fb3b334d2cc9](https://sepolia.etherscan.io/tx/0x289b63271bf4e99e4f263f867d18cb8bf425ba194138fc115418fb3b334d2cc9)
        3. Foreign Hashi Manager set reporeters,adapters, threshold
            1. [https://sepolia.etherscan.io/tx/0xe6bb93de47c7b211035c649d181d81d406249ddc8dfa319ae00c77cd7fe912ca](https://sepolia.etherscan.io/tx/0xe6bb93de47c7b211035c649d181d81d406249ddc8dfa319ae00c77cd7fe912ca)
        4. Foreign xDAI bridge resendDataWithHashi
            1. [https://sepolia.etherscan.io/tx/0x854b304b8e6249700f0927e70c377d0566f68ae0d463602173dfc5e7b485565a](https://sepolia.etherscan.io/tx/0x854b304b8e6249700f0927e70c377d0566f68ae0d463602173dfc5e7b485565a)
        5. Foreign Yaho relayMessagesToAdapters
            1. [https://sepolia.etherscan.io/tx/0xf9b94a85947e0d54e131b308c929bb08c3df2eab9c965714ddad7c304bfee4f3](https://sepolia.etherscan.io/tx/0xf9b94a85947e0d54e131b308c929bb08c3df2eab9c965714ddad7c304bfee4f3)
        6. Home MockAdapter2 setHashes
            1. [https://gnosis-chiado.blockscout.com/tx/0xcaa4a11f4e470282eb998139fa6c55424a7b9760d99e95068e2444be0bc07ea9](https://gnosis-chiado.blockscout.com/tx/0xcaa4a11f4e470282eb998139fa6c55424a7b9760d99e95068e2444be0bc07ea9)
        7. Home Hashi manager set expected adapters, set expected threshold
            1. [https://gnosis-chiado.blockscout.com/tx/0xcf7592fe6d8a2de384ee0fdff0f23e23916008183f5c0191b8fde9909bcd6ba1](https://gnosis-chiado.blockscout.com/tx/0xcf7592fe6d8a2de384ee0fdff0f23e23916008183f5c0191b8fde9909bcd6ba1)
        8. Home Yaru executeMessages
            1. [https://gnosis-chiado.blockscout.com/tx/0xdd902fd42eb64d54d356f650f73446fe6fadf2a327392f42577806a3db3f778e](https://gnosis-chiado.blockscout.com/tx/0xdd902fd42eb64d54d356f650f73446fe6fadf2a327392f42577806a3db3f778e)
        9. Home xDAI bridge execute Affirmation
            1. [https://gnosis-chiado.blockscout.com/tx/0x1c878604414699a843b626350abd46b5a0300a767fea112af2bdf9f00e09aba9?tab=index](https://gnosis-chiado.blockscout.com/tx/0x1c878604414699a843b626350abd46b5a0300a767fea112af2bdf9f00e09aba9?tab=index)
        
        ### Chiado → Sepolia ✅
        
        Original [reporter, adapter, threshold]: [[0x3da176b43604Aacf6178128865AfccB21ee0F943](https://gnosis-chiado.blockscout.com/address/0x3da176b43604Aacf6178128865AfccB21ee0F943), [0xBF06b26b409ed48e74F2d01A61675672C07aF370](https://sepolia.etherscan.io/address/0xBF06b26b409ed48e74F2d01A61675672C07aF370), 1]
        
        New [reporter, adapter, threshold]: [[0x44857763aa2893Fb479b1CC27F18f4b3F6842Df5](https://gnosis-chiado.blockscout.com/address/0x44857763aa2893Fb479b1CC27F18f4b3F6842Df5), [0x64629a26FBA981A8B3d062fA2CB719d3648f748F](https://sepolia.etherscan.io/address/0x64629a26FBA981A8B3d062fA2CB719d3648f748F#code), 1]
        
        1. Home xDAI bridge relayTokens
            1. [https://gnosis-chiado.blockscout.com/tx/0x682536addb97020bb07a2812b5a7c5c2fcc8f514879743648c7554383c0c1ffb](https://gnosis-chiado.blockscout.com/tx/0x682536addb97020bb07a2812b5a7c5c2fcc8f514879743648c7554383c0c1ffb)
        2. Home Hashi Manager set reportes, adapters, threshold
            1. [https://gnosis-chiado.blockscout.com/tx/0xfeb7e279463fb3f197c6f6c63996cd911d04e73fb79a49b451212903b639a925](https://gnosis-chiado.blockscout.com/tx/0xfeb7e279463fb3f197c6f6c63996cd911d04e73fb79a49b451212903b639a925)
        3. Home xDAi bridge resendDataWithHashi
            1. [https://gnosis-chiado.blockscout.com/tx/0xf1dbe8f6d3b0ffd10d710e1259e158c594bf33e1e9a2c742b355005fd009eb9a](https://gnosis-chiado.blockscout.com/tx/0xf1dbe8f6d3b0ffd10d710e1259e158c594bf33e1e9a2c742b355005fd009eb9a)
        4. Home Yaho relayMessagesToAdapters
            1. [https://gnosis-chiado.blockscout.com/tx/0xf9c6d7a975bfa5f90a62e5e791c95cba37163ffbceca9cb1a948d06905ae40a2](https://gnosis-chiado.blockscout.com/tx/0xf9c6d7a975bfa5f90a62e5e791c95cba37163ffbceca9cb1a948d06905ae40a2)
        5. Home AMB validator submit signture
            1. [https://gnosis-chiado.blockscout.com/tx/0x5346588a1947ecddc760aacd0cd841bb62f7db5aeee15591ec1c4486aecd5ab4](https://gnosis-chiado.blockscout.com/tx/0x5346588a1947ecddc760aacd0cd841bb62f7db5aeee15591ec1c4486aecd5ab4)
        6. Foreign MockAdapter2 setHashes
            1. [https://sepolia.etherscan.io/tx/0x2dee3f295399cb00065d4f25d7738b6ce724db52dd365eb0e0487c2b67efb330](https://sepolia.etherscan.io/tx/0x2dee3f295399cb00065d4f25d7738b6ce724db52dd365eb0e0487c2b67efb330)
        7. Foreign Hashi Manager set expected adapters, set expected threshold
            1. [https://sepolia.etherscan.io/tx/0x4df0c2872f6c774890d1255d1224bf0c442155b55b3f73eb2f7f02a6f59ad2d8](https://sepolia.etherscan.io/tx/0x4df0c2872f6c774890d1255d1224bf0c442155b55b3f73eb2f7f02a6f59ad2d8)
        8. Foreign Yaru executeMessages
            1. [https://sepolia.etherscan.io/tx/0x5b665524044e9d08184a7794c9f61dd93f37b49f4653cd46e41865c437704227](https://sepolia.etherscan.io/tx/0x5b665524044e9d08184a7794c9f61dd93f37b49f4653cd46e41865c437704227)
        9. Foreign xDAI bridge executeSignature
            1. [https://sepolia.etherscan.io/tx/0x7e90f570bbf1d20d6dcd43163760129dcc8715455c653bfd09c502325078c5b4](https://sepolia.etherscan.io/tx/0x7e90f570bbf1d20d6dcd43163760129dcc8715455c653bfd09c502325078c5b4)
    

