code: func (trans *Transactor) CheckTxSync(ctx context.Context, txEnv *txs.Envelope) (*txs.Receipt, error) {
  	trans.logger.Trace.Log("method", "CheckTxSync",
  		structure.TxHashKey, txEnv.Tx.Hash(),
  		"tx", txEnv.String())
  	// Sign unless already signed
  	unlock, err := trans.MaybeSignTxMempool(txEnv)
  	if err != nil {
  		return nil, err
  	}
  	defer unlock()
  	err = txEnv.Validate()
  	if err != nil {
  		return nil, err
  	}
  	txBytes, err := trans.txEncoder.EncodeTx(txEnv)
  	if err != nil {
  		return nil, err
  	}
  	return trans.CheckTxSyncRaw(ctx, txBytes)
  }
docs: // Broadcast a transaction and waits for a response from the mempool. Transactions to BroadcastTx will block during
  // various mempool operations (managed by Tendermint) including mempool Reap, Commit, and recheckTx.