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