POA Forum

Bridge transaction not relayed

This transaction was sent on the Ethereum side but has failed to show up on the Xdai side. I think it’s just a relayer failure as more recent transactions made it across fine.


I see no issues with this transaction. Here is the list of confirmations the validators sent:

Since the last confirmation was included in the block 9077375, the block reward contract minted xDAI in this block.

Let’s compare the balance of the same account which was used as the sender on the Ethereum Mainnet side:

  1. Get the balance in the block 9077374:
    curl -X POST -H "Content-Type: application/json" --data \
      '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0x54cfa816152f16ac47be814fd3ea3015ed3ed6b6","0x8a827e"],"id":1}' \
  2. Get the balance in the block 9077375:
    curl -X POST -H "Content-Type: application/json" --data \
      '{"jsonrpc":"2.0","method":"eth_getBalance","params":["0x54cfa816152f16ac47be814fd3ea3015ed3ed6b6","0x8a827f"],"id":1}' \
  3. 0x91fd1e2e878470e is 0.657474843112392462 xDai, 0x8f6440677fee910e is 10.332454258366910734 xDai. The difference is 9.674979415254518272 xDai – exactly the same amount of tokens which was sent in the originated transaction.
1 Like

You are correct, the block explorer I was using to visualize the balance was not high enough resolution. My apologies.

How exactly did you find the confirmations using the etherscan details? I’d like to replicate that when debugging myself in the future.

In order to determine if validators are signing your request, just monitor for the transactions which produce events SignedForAffirmation (topic: 0x5df9cc3eb93d8a9a481857a3b70a8ca966e6b80b25cf0ee2cce180ec5afa80a1) with your transaction id as the parameter (a reference to the code). The very last validator’s confirmation will produce also the event AffirmationCompleted (topic: 0x6fc115a803b8703117d9a3956c5a15401cb42401f91630f015eb6b043fa76253) where your transaction id is the third parameter (the code reference)

For the opposite direction the things are more complicated:

  1. The validators are collecting signatures first. The event SignedForUserRequest allows you to monitor this.
  2. As soon as the signatures are collected, the transaction on the Ethereum Mainnet side must appear and emit RelayedMessage (topic: 0x4ab7d581336d92edbea22636a613e8e76c99ac7f91137c1523db38dbfb3bf329) where the originating transaction id is specified as the parameter (the code reference).
1 Like