@@ -85,23 +85,34 @@ class TransferViewModel @Inject constructor(
8585 var error: Throwable ? = null
8686
8787 viewModelScope.launch {
88+ Logger .debug(" Started to watch order order $orderId " )
89+
8890 while (! isSettled && error == null ) {
8991 try {
9092 Logger .debug(" Refreshing order $orderId " )
91- val order = coreService.blocktank.orders(orderIds = listOf (orderId), refresh = true ).first()
93+ val order = coreService.blocktank.orders(orderIds = listOf (orderId), refresh = true ).firstOrNull()
94+ if (order == null ) {
95+ error = Exception (" Order not found $orderId " )
96+ Logger .error(" Order not found $orderId " , context = " TransferViewModel" )
97+ break
98+ }
99+
92100 val step = updateOrder(order)
93101 settingsStore.setLightningSetupStep(step)
94102 Logger .debug(" LN setup step: $step " )
95103
96104 if (order.state2 == BtOrderState2 .EXPIRED ) {
97105 error = Exception (" Order expired $orderId " )
106+ Logger .error(" Order expired $orderId " , context = " TransferViewModel" )
98107 break
99108 }
100109 if (step > 2 ) {
110+ Logger .debug(" Order settled, stopping watch" )
101111 isSettled = true
102112 break
103113 }
104114 } catch (e: Throwable ) {
115+ Logger .error(" Failed to watch order" , e)
105116 error = e
106117 break
107118 }
@@ -111,19 +122,18 @@ class TransferViewModel @Inject constructor(
111122 }
112123 }
113124
114- @Suppress(" IntroduceWhenSubject" )
115125 private suspend fun updateOrder (order : IBtOrder ): Int {
116126 var currentStep = 0
117127 if (order.channel != null ) {
118128 return 3
119129 }
120130
121- when {
122- order.state2 == BtOrderState2 .CREATED -> {
131+ when (order.state2) {
132+ BtOrderState2 .CREATED -> {
123133 currentStep = 0
124134 }
125135
126- order.state2 == BtOrderState2 .PAID -> {
136+ BtOrderState2 .PAID -> {
127137 currentStep = 1
128138
129139 try {
@@ -133,9 +143,11 @@ class TransferViewModel @Inject constructor(
133143 }
134144 }
135145
136- order.state2 == BtOrderState2 .EXECUTED -> {
146+ BtOrderState2 .EXECUTED -> {
137147 currentStep = 2
138148 }
149+
150+ else -> Unit
139151 }
140152 return currentStep
141153 }
0 commit comments