| 244 | } |
| 245 | |
| 246 | func (nts *NetworkTestSuite) ValidateTx(resultData []byte) string { |
| 247 | nts.T().Helper() |
| 248 | |
| 249 | var resp sdk.TxResponse |
| 250 | |
| 251 | err := jsonpb.Unmarshal(bytes.NewBuffer(resultData), &resp) |
| 252 | require.NoError(nts.T(), err, "failed trying to unmarshal JSON transaction result") |
| 253 | |
| 254 | for { |
| 255 | res, err := cosmosauthtx.QueryTx(nts.ClientContextForTest(), resp.TxHash) |
| 256 | if err != nil { |
| 257 | ctxDone := nts.ContextForTest().Err() != nil |
| 258 | if ctxDone { |
| 259 | require.NoErrorf(nts.T(), err, "failed querying for transaction %q", resp.TxHash) |
| 260 | } else { |
| 261 | nts.T().Logf("waiting before checking for TX %s", resp.TxHash) |
| 262 | select { |
| 263 | case <-nts.ContextForTest().Done(): |
| 264 | require.NoError(nts.T(), nts.ContextForTest().Err()) |
| 265 | case <-time.After(500 * time.Millisecond): |
| 266 | |
| 267 | } |
| 268 | } |
| 269 | continue |
| 270 | } |
| 271 | |
| 272 | require.Zero(nts.T(), res.Code, res, "expected response code in transaction to be zero") |
| 273 | break |
| 274 | } |
| 275 | |
| 276 | return resp.TxHash |
| 277 | } |