When moving BNT across blockchains, BancorX will send your BNT to a destination account (on the destination blockchain) which the user defines.
If the destination account information provided by the user is invalid, it will cause the transaction to fail (simply because the blockchain cannot prosses through a transaction with an invalid destination account name on EOS. Since that account does not exist there is nowhere to send your BNT!). For such cases, we've created the reroute contract and process.
The Reroute Contract
The Reroute contract is a separate smart contract, which will become relevant when a transaction fails due to an invalid target account. Using the Reroute Contract a user can re-transmit a transaction (which originally failed) with the updated and correct delivery details (i.e., destination blockchain and address) for that transaction.
If there is an unfulfilled transaction and the transaction has expired (i.e., has been pending for 24 hours), the fall-back reroute process will be triggered. The observing oracles will note if there is a reroute transaction processed through the Reroute Contract, and if it is using the same wallet used for the original BNT transfer transaction (indicating the same hash/user/signatory), the transaction will be processed again. This time, with the updated details (blockchain and address).
Reroute Contract Cycles
The Oracles are programmed to autonomously observe the Reroute Contract and pending transactions periodically. As a result, transactions that require a reroute may be reported only after 48+ hours of there submission.
Only transactions that are NOT fulfilled will have the option to be rerouted. This will not replace the user's responsibility to indicate valid destination details.
Reroute Contract Details
When sending a reroute transaction you will need to pass:
1. Hash of the original transaction - this will link the reroute request to the original request
2. Destination blockchain - the blockchain you would like to receive the BNT to
3. Destination address - the address you would like to receive the BNT tokens
Keep in mind, only transactions signed by the same wallet that triggered the original request will be reported.
To submit a reroute request on the Ethereum blockchain click here.
To submit a reroute request on the EOS blockchain click here.