diff --git a/examples/SEP-24/src/main/kotlin/org/stellar/example/Main.kt b/examples/SEP-24/src/main/kotlin/org/stellar/example/Main.kt index 44435f4..d13beff 100644 --- a/examples/SEP-24/src/main/kotlin/org/stellar/example/Main.kt +++ b/examples/SEP-24/src/main/kotlin/org/stellar/example/Main.kt @@ -110,28 +110,34 @@ suspend fun main() { ) // Send transaction with transfer - val t = (statusChange.transaction as WithdrawalTransaction) - val transfer = stellar.transaction(keypair).transferWithdrawalTransaction(t, asset).build() + val anchorTransaction = (statusChange.transaction as WithdrawalTransaction) + val transfer = stellar.transaction(keypair).transferWithdrawalTransaction(anchorTransaction, asset).build() transfer.sign(keypair) stellar.submitTransaction(transfer) + var terminalStatus: TransactionStatus? = null + do { statusChange = withdrawalWatcher.channel.receive() when (statusChange) { - is StatusChange -> - println( - "Withdrawal transaction status changed to ${statusChange.status}. " + - "Message: ${statusChange.transaction.message}" - ) + is StatusChange -> { + if (statusChange.status.isTerminal()) { + terminalStatus = statusChange.status + } + } is ChannelClosed -> println("Transaction tracking finished") is ExceptionHandlerExit -> println("Retries exhausted trying obtain transaction data, giving up.") } } while (statusChange !is ChannelClosed) + if (terminalStatus != TransactionStatus.COMPLETED) { + println("Transaction was not completed") + } + println("Successful withdrawal") wallet.close()