These are contract error codes, returned by transactions. If you are getting
an error back from the REST API instead, you want
API errors, which use string codes like
INVALID_ARGUMENT.Reading a failed transaction
A reverted Aura transaction reports:1
Identify the contract
Match the address against Contracts. If it is not one
of the singletons, it is an individual market, so use the
MarketContract table.
2
Look up the code in that contract's table
The same number means different things in different contracts. Code
4 is
ALREADY_RESOLVED in a market and Unauthorized in the factory. You have to
know which contract threw it.MarketContract
Thrown by an individual market: order placement, settlement, claims, and teardown.
Codes
2 and 5 are reserved and not thrown.
MarketFactory
Thrown when proposing markets, linking related proposals, or executing governance changes.
Codes
0 through 3, 5, 10, 11, and 17 are reserved and not thrown.
OptimisticOracle
Thrown during outcome submission, disputes, commit and reveal voting, and penalty processing.
Codes
5, 6, and 18 are reserved and not thrown.
VaultContract
Thrown when staking, unstaking, or withdrawing $AURA.Voting
Thrown when voting on market proposals or finalizing the vote.The ones people actually hit
Four codes account for most real failures:INVALID_PRICE (market, code 13)
INVALID_PRICE (market, code 13)
Prices are integer ticks from 1 to 999, where 500 means 50%. Both 0 and 1000
are rejected, because a market at absolute certainty has nothing to trade.
INVALID_FILL (market, code 12)
INVALID_FILL (market, code 12)
Usually a quantity that is not a whole multiple of the lot size. Order
quantities must be multiples of
10000000 base units.TRADER_NOT_EOA (market, code 18)
TRADER_NOT_EOA (market, code 18)
The transaction came from a contract address. Aura requires trades to come
from a real account so that penalties and payouts have somewhere to land.
Sign from a normal wallet.

