code: func (s *TxSubmitter) SubmitTransaction(txEnvelope *common.Envelope, waitTimeInSeconds int) (committed bool, txId string, err error) {
  	if waitTimeInSeconds > 0 {
  		waitTime := time.Second * time.Duration(waitTimeInSeconds)
  		ctx, cancelFunc := context.WithTimeout(context.Background(), waitTime)
  		defer cancelFunc()
  		localCh := make(chan TxEvent, 1)
  		committed, txId, err = s.sendTransactionInternal(txEnvelope, ctx, localCh, true)
  		close(localCh)
  		return
  	} else {
  		committed, txId, err = s.sendTransactionInternal(txEnvelope, context.Background(), nil, false)
  		return
  	}
  }
docs: // SubmitTransaction submits a token transaction to fabric.
  // It takes TokenTransaction bytes and waitTimeInSeconds as input parameters.
  // The 'waitTimeInSeconds' indicates how long to wait for transaction commit event.
  // If it is 0, the function will not wait for transaction to be committed.
  // If it is greater than 0, the function will wait until timeout or transaction is committed, whichever is earlier