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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
//! # Raiden-rs
//!
//! The Raiden Network is an off-chain scaling solution, enabling near-instant, low-fee and scalable
//! payments. It's complementary to the Ethereum Blockchain and works with any ERC20 compatible
//! token. The Raiden project is work in progress. Its goal is to research state channel technology,
//! define protocols and develop reference implementations.
//!
//! ## Quickstart: `prelude`
//!
//! A prelude is provided which imports all the important data types and traits for you. Use this
//! when you want to quickly bootstrap a new project.
//!
//! ```rust
//! use raiden-rs::prelude::*;
//! ```
//!
//! ## Modules
//!
//! The following paragraphs are a quick explanation of each module in ascending order of
//! abstraction.
//!
//! ### `raiden-api`
//!
//! A high level API crate which lets you interact with the components of Raiden to trigger various
//! Raiden specific functionality such as opening / closing channels, deposit & withdraw as well as
//! initiating payments .. etc.
//!
//! ### `raiden-blockchain`
//!
//! Implements various ethereum specific functionality such as interacting with the contracts
//! on-chain, signing & recovery and decoding Ethereum events into state changes.
//!
//! ### `raiden-macros`
//!
//! Provides simple macros for type conversions.
//!
//! ### `raiden-network_messages`, `raiden-network_transport`
//!
//! Implements Raiden protocol messages and matrix network integration to exchange messages between
//! nodes over the wire.
//!
//! ### `raiden-pathfinding`
//!
//! Implements ways to interact with the pathfinding service to retrieve routes for payments.
//!
//! ### `raiden-primitives`
//!
//! Defines various primitive data types and utils.
//!
//! ### `raiden-state_machine`
//!
//! This is the most vital crate which handles a complete chain state and it's transitions using
//! state changes.
//!
//! ### `raiden-transition`
//!
//! Plays a middleman role by handling all incoming messages and dispatching those as state changes
//! into the state machine, while also handling resulting events from the state machine to be sent
//! over the networking layer.
pub use raiden_api;
pub use raiden_blockchain;
pub use raiden_macros;
pub use raiden_network_messages;
pub use raiden_network_transport;
pub use raiden_pathfinding;
pub use raiden_primitives;
pub use raiden_state_machine;
pub use raiden_transition;
/// Easy imports of frequently used type definitions and traits.
// For macro expansions only, not public API.
extern crate self as raiden;