1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Copyright (c) 2025-2026 R3E Network
// Licensed under the MIT License
//! Neo N3 Runtime facade
//!
//! This crate provides a lightweight façade over the Neo runtime surface so
//! integration tests and examples can exercise the canonical syscall
//! catalogue without depending on a full node implementation. The
//! implementation intentionally returns deterministic placeholder values –
//! enough to validate wiring and type conversions while remaining
//! self-contained for unit tests.
//!
//! # ⚠️ Contract panic safety
//!
//! In Neo N3, a runtime panic (`panic!`, `unwrap()` on `None`/`Err`, index out
//! of bounds, arithmetic overflow) causes the VM to **FAULT**, which reverts
//! the entire transaction. Unlike off-chain Rust, you **cannot** use panics
//! for control flow in on-chain contracts. Always use `NeoResult<T>` and
//! explicit error handling. The `#[neo_contract]` macro expects methods to
//! return `NeoResult<T>` precisely because panics are unrecoverable on-chain.
pub use NeoRuntimeContext;
pub use NeoContractRuntime;
pub use NeoCrypto;
pub use NeoJSON;
pub use NeoRuntime;
pub use ;