Skip to content

Semantic Mapping

Neo DevPack for Solidity accepts Solidity syntax and lowers it to Neo N3 contracts. This section splits the EVM-to-Neo behavior map by topic so readers do not have to scan the language, internals, devpack, and standards references on one page.

Reading Path

TopicStart HereUse When
Execution contextExecution ContextYou need msg, tx, block, this, or gasleft() behavior.
TypesTypes and ValuesYou are checking how Solidity values become NeoVM stack items or ABI values.
StorageStorage and MappingsYou are using state variables, mappings, arrays, structs, or upgradeable storage.
Calls and assetsCalls and AssetsYou are porting Ether transfers, address.call, callbacks, or token flows.
SyscallsSyscalls and DevpackYou want to know which Neo syscall or devpack wrapper backs a Solidity construct.
ParityParity and LimitationsYou need to distinguish exact, approximate, warning-only, and unsupported behavior.
StandardsStandards MappingYou are porting ERC/EIP patterns to NEP standards or manifest capabilities.
Compiler loweringIndexed Storage LoweringYou are working on mapping/indexed-storage compiler implementation details.

Mapping Rule of Thumb

Neo DevPack for Solidity preserves Solidity source compatibility where it can, but the runtime target is Neo N3. Exact mappings compile silently. Approximate mappings compile with diagnostics. Unsupported mappings are rejected or intentionally blocked when Neo cannot provide the EVM security or state semantics.

Canonical References

MIT Licensed