How Rust and Solidity smart contracts can interact