code: func (c *Client) SignRawTransaction3(tx *wire.MsgTx,
  	inputs []btcjson.RawTxInput,
  	privKeysWIF []string) (*wire.MsgTx, bool, error) {
  
  	return c.SignRawTransaction3Async(tx, inputs, privKeysWIF).Receive()
  }
docs: // SignRawTransaction3 signs inputs for the passed transaction given the list
  // of information about extra input transactions and a list of private keys
  // needed to perform the signing process.  The private keys must be in wallet
  // import format (WIF).
  //
  // This only input transactions that need to be specified are ones the
  // RPC server does not already know.  Already known input transactions will be
  // merged with the specified transactions.  This means the list of transaction
  // inputs can be nil if the RPC server already knows them all.
  //
  // NOTE: Unlike the merging functionality of the input transactions, ONLY the
  // specified private keys will be used, so even if the server already knows some
  // of the private keys, they will NOT be used.
  //
  // See SignRawTransaction if the RPC server already knows the input
  // transactions and private keys or SignRawTransaction2 if it already knows the
  // private keys.