tx Helpers
There are a number of helper functions to check the status of a transaction. See useTx for a full list of Transaction state values and descriptions.
shouldDisable
This function that returns true
if a transaction state is DryRun
, PendingSignature
, or Broadcast
. It is good practice to disable a button that triggers a transaction unless it has fully resolved. In a successful transaction, Broadcast
state comes immediately before InBlock
, which is when contracts emit events and the transaction is most likely to succeed. See shouldDisableStrict
if you want to disable a button until it is Finalized
, which may be more appropriate for high stake dApps.
shouldDisableStrict
This function that returns true
if a transaction state is DryRun
, PendingSignature
, Broadcast
, or InBlock
. It is good practice to disable a button that triggers a transaction unless it has fully resolved.
hasAny
Returns a boolean if the transaction status has any of the arguments you pass in. Arguments must be of type Status
;
isPendingSignature
Returns a boolean if the transaction status is PendingSignature
. PendingSignature
is set when you call signAndSend()
on a transaction, which opens up a browser wallet extension modal for a user to sign. Once the transaction is signed the state will change to Broadcast
.
isNone
Returns a boolean if the transaction status is None
.
isDryRun
Returns true
if the transaction status is DryRun
. DryRun
occurs immediately before a transaction is sent to verify if it will succeed.
isErrored
Returns a boolean if the transaction status is Errored
, which means that there was an error in JavaScript somewhere.
isFuture
Returns a boolean if the transaction status is Future
, which means that the transaction is moving in to the transaction pool.
isReady
Returns a boolean if the transaction status is Ready
, which means that the transaction is ready to be entered in to the transaction pool.
isBroadcast
Returns a boolean if the transaction status is Broadcast
. This is the point when events are emitted.
isInBlock
Returns a boolean if the transaction status is InBlock
. At this point it is very likely that the transaction will succeed. Most dApps can optimistically assume that the transaction is a success, but you may want to wait until Finalized
stutus if you are building a high stakes dApp with monetary value so you can offer 100% guarantee that a transaction did succeed.
isInvalid
Returns a boolean if the transaction status is Invalid
.
isUsurped
Returns a boolean if the transaction status is Usurped
.
isDropped
Returns a boolean if the transaction status is Usurped
.
isFinalized
Returns a boolean if the transaction status is Finalized
. This status guarantees that a transaction completed.
isFinalityTimeout
Returns a boolean if the transaction status is FinalityTimeout
.
isRetracted
Returns a boolean if the transaction status is Retracted
.
Last updated