When going through [this tutorial][1] for adding contracts to the default node template, adding `pallets-contracts-rpc`, the 4th recommended crate to install, I receive various errors. Things compile fine when only the first 3 crates are installed.

```
# causes compilation errors
# pallet-contracts-rpc = { version = "4.0.0-dev", default-features = false, git = "https://github.com/paritytech/substrate.git", branch = "polkadot-v0.9.23" }
```

```
...
  error[E0308]: mismatched types
      --> /Users/g/.cargo/registry/src/github.com-1ecc6299db9ec823/socket2-0.4.4/src/socket.rs:1777:25
       |
  1777 | from!(net::TcpListener, Socket);
       |                         ^^^^^^ expected struct `Socket`, found `()`
       |
      ::: /Users/g/.cargo/registry/src/github.com-1ecc6299db9ec823/socket2-0.4.4/src/lib.rs:104:16
       |
  104  |             fn from(socket: $from) -> $for {
       |                ---- implicitly returns `()` as its body has no tail or `return` expression

  error[E0308]: mismatched types
      --> /Users/g/.cargo/registry/src/github.com-1ecc6299db9ec823/socket2-0.4.4/src/socket.rs:1778:23
       |
  1778 | from!(net::UdpSocket, Socket);
       |                       ^^^^^^ expected struct `Socket`, found `()`
       |
      ::: /Users/g/.cargo/registry/src/github.com-1ecc6299db9ec823/socket2-0.4.4/src/lib.rs:104:16
       |
  104  |             fn from(socket: $from) -> $for {
       |                ---- implicitly returns `()` as its body has no tail or `return` expression

  error[E0308]: mismatched types
      --> /Users/g/.cargo/registry/src/github.com-1ecc6299db9ec823/socket2-0.4.4/src/socket.rs:1779:15
       |
  1779 | from!(Socket, net::TcpStream);
       |               ^^^^^^^^^^^^^^ expected struct `TcpStream`, found `()`
       |
      ::: /Users/g/.cargo/registry/src/github.com-1ecc6299db9ec823/socket2-0.4.4/src/lib.rs:104:16
       |
  104  |             fn from(socket: $from) -> $for {
       |                ---- implicitly returns `()` as its body has no tail or `return` expression

  error[E0308]: mismatched types
      --> /Users/g/.cargo/registry/src/github.com-1ecc6299db9ec823/socket2-0.4.4/src/socket.rs:1780:15
       |
  1780 | from!(Socket, net::TcpListener);
       |               ^^^^^^^^^^^^^^^^ expected struct `TcpListener`, found `()`
       |
      ::: /Users/g/.cargo/registry/src/github.com-1ecc6299db9ec823/socket2-0.4.4/src/lib.rs:104:16
       |
  104  |             fn from(socket: $from) -> $for {
       |                ---- implicitly returns `()` as its body has no tail or `return` expression

  error[E0308]: mismatched types
      --> /Users/g/.cargo/registry/src/github.com-1ecc6299db9ec823/socket2-0.4.4/src/socket.rs:1781:15
       |
  1781 | from!(Socket, net::UdpSocket);
       |               ^^^^^^^^^^^^^^ expected struct `UdpSocket`, found `()`
       |
      ::: /Users/g/.cargo/registry/src/github.com-1ecc6299db9ec823/socket2-0.4.4/src/lib.rs:104:16
       |
  104  |             fn from(socket: $from) -> $for {
       |                ---- implicitly returns `()` as its body has no tail or `return` expression

...
```

It seems on the contracts node template that crate is not installed. https://github.com/paritytech/substrate-contracts-node/blob/main/runtime/Cargo.toml


  [1]: https://docs.substrate.io/how-to-guides/v3/pallet-design/contracts-pallet/#import-the-dependencies