code: func (r FutureSignRawTransactionResult) Receive() (*wire.MsgTx, bool, error) {
  	res, err := receiveFuture(r)
  	if err != nil {
  		return nil, false, err
  	}
  
  	// Unmarshal as a signrawtransaction result.
  	var signRawTxResult btcjson.SignRawTransactionResult
  	err = json.Unmarshal(res, &signRawTxResult)
  	if err != nil {
  		return nil, false, err
  	}
  
  	// Decode the serialized transaction hex to raw bytes.
  	serializedTx, err := hex.DecodeString(signRawTxResult.Hex)
  	if err != nil {
  		return nil, false, err
  	}
  
  	// Deserialize the transaction and return it.
  	var msgTx wire.MsgTx
  	if err := msgTx.Deserialize(bytes.NewReader(serializedTx)); err != nil {
  		return nil, false, err
  	}
  
  	return &msgTx, signRawTxResult.Complete, nil
  }
docs: // Receive waits for the response promised by the future and returns the
  // signed transaction as well as whether or not all inputs are now signed.