A technical guide comparing data types between Solidity (EVM) and Rust (Soroban), part 2 of a migration series. The article covers primitive and composite types, key differences like String vs. Symbol, and provides code examples for both languages.

This educational guide is the second part of a Solidity-to-Rust series focused on smart contract migration. It explains data types in both Solidity and Soroban Rust, categorizing them into primitives (bool, integers, addresses, strings) and composites (arrays, structs, enums, mappings). Key differences highlighted include Solidity's string vs. Soroban's Symbol for efficient short strings, address handling differences (msg.sender vs. require_auth), and array implementations (fixed arrays vs. Vec). The article provides detailed code examples for each concept, including state variable declaration patterns, demonstrating how developers can transition from EVM smart contracts to Soroban contracts.