These events are reported in the Watcher's/status.get
endpoint providing an array of byzantine events.omg-js
provides a helper function to get this report.
invalid_exit
UTXO1
to Bob. The associated transaction is included in a block.UTXO1
.invalid_exit
:omg-js
to a website using a script tag:omg-js
with React Native projects. First, add this postinstall script to your project's package.json
:omg-js
objects. Here's an example of how to instantiate them:
web3_provider_url
- the URL to a full Ethereum RPC node (local or from infrastructure provider, e.g. Infura).
Payment Exit Game
contract calling challengeStandardExit()
.invalid_exit
event and proceeds to challenge the exit. He will receive Alice's posted bond if the challenge is successful.noncanonical_ife
TX1
to Bob, using UTXO1
as an input. TX1
is included in a block.TX2
to Carol with the same input UTXO1
(double spend). TX2
is not included in a block.TX2
.noncanonical_ife
:UTXO1
was spent in TX1
.UTXO1
and loses her exit bond to Bob.invalid_ife_challenge
UTXO1
to Bob but Bob does not see the transaction TX1
get included in a block. He assumes the operator is withholding so he attempts to exit his output via an in-flight exit.TX1
.TX2
to Carol using the same UTXO1
(double spend). This transaction is not included in a block.TX1
is eventually included in a block.TX2
to challenge Bob's IFE as non-canonical.invalid_ife_challenge
:TX1
(along with its inclusion proof) to prove that the challenge is invalid.invalid_piggyback
UTXO1
to Bob in TX1
. TX1
is included in a block.TX1
and places an exit_bond
.UTXO1
and committing to a piggyback bond
.UTXO1
to Carol in TX2
. TX2
is included in a block.invalid_piggyback
event:noncanonical_ife
event as TX1
is a canonical transaction included in a valid block.invalid_piggyback
event can be reported only once TX2
has been detected by the Watcher, either as part of a valid block (as in the scenario above) or if referenced by another in-flight exit.TX2
to challenge Bob's piggyback.piggyback bond
committed by Bob.