@@ -100,39 +100,39 @@ git submodule update --init --recursive
100100## Architecture
101101
102102```
103- ┌───────────────────────────────────────────────────────────────── ┐
104- │ Rust Application │
105- ├───────────────────────────────────────────────────────────────── ┤
106- │ src/lib.rs │ src/descriptor.rs │
107- │ ┌─────────────────┐ │ ┌───────────────────────────────────── ┐ │
108- │ │ Miniscript │ │ │ Descriptor │ │
109- │ │ - from_str() │ │ │ - parse() │ │
110- │ │ - is_valid() │ │ │ - expand() │ │
111- │ │ - is_sane() │ │ │ - get_address() │ │
112- │ │ - satisfy() │ │ │ - get_pubkeys() │ │
113- │ │ - to_script() │ │ │ - is_range() │ │
114- │ └────────┬────────┘ │ └──────────────┬ ──────────────────────┘ │
115- ├───────────┼──────────┴─────────────────┼ ────────────────────────┤
116- │ │ FFI Boundary │ │
117- │ │ (bindgen) │ │
118- ├───────────┼────────────────────────────┼ ────────────────────────┤
119- │ cpp/miniscript_wrapper.h/.cpp │ cpp/descriptor_wrapper.h/.cpp │
120- │ ┌─────────────────────────────────────┴ ──────────────────────┐ │
121- │ │ C Wrapper Layer │ │
122- │ │ - Opaque handles (MiniscriptNode*, DescriptorNode*) │ │
123- │ │ - C-compatible types and callbacks │ │
124- │ │ - Memory management (malloc/free) │ │
125- │ └───────────────────────────────────────────────────────────── ┘ │
126- ├───────────────────────────────────────────────────────────────── ┤
127- │ Bitcoin Core C++ (vendor/bitcoin) │
128- │ ┌───────────────────────────────────────────────────────────── ┐ │
129- │ │ script/miniscript.h │ script/descriptor.h │ │
130- │ │ script/script.h │ script/signingprovider.h │ │
131- │ │ key.h, pubkey.h │ key_io.h │ │
132- │ └───────────────────────────────────────────────────────────── ┘ │
133- ├───────────────────────────────────────────────────────────────── ┤
134- │ secp256k1 │
135- └───────────────────────────────────────────────────────────────── ┘
103+ ┌────────────────────────────────────────────────────────────────┐
104+ │ Rust Application │
105+ ├────────────────────────────────────────────────────────────────┤
106+ │ src/lib.rs │ src/descriptor.rs │
107+ │ ┌─────────────────┐ │ ┌────────────────────────────────────┐ │
108+ │ │ Miniscript │ │ │ Descriptor │ │
109+ │ │ - from_str() │ │ │ - parse() │ │
110+ │ │ - is_valid() │ │ │ - expand() │ │
111+ │ │ - is_sane() │ │ │ - get_address() │ │
112+ │ │ - satisfy() │ │ │ - get_pubkeys() │ │
113+ │ │ - to_script() │ │ │ - is_range() │ │
114+ │ └────────┬────────┘ │ └──────┬ ─────────────────────────────┘ │
115+ ├───────────┼──────────┴─────────┼ ───────────────────────────────┤
116+ │ │ FFI Boundary │ │
117+ │ │ (bindgen) │ │
118+ ├───────────┼────────────────────┼ ───────────────────────────────┤
119+ │ cpp/miniscript_wrapper.h/.cpp │ cpp/descriptor_wrapper.h/.cpp │
120+ │ ┌───────────────────────────────────┴─ ──────────────────────┐ │
121+ │ │ C Wrapper Layer │ │
122+ │ │ - Opaque handles (MiniscriptNode*, DescriptorNode*) │ │
123+ │ │ - C-compatible types and callbacks │ │
124+ │ │ - Memory management (malloc/free) │ │
125+ │ └───────────────────────────────────────────────────────────┘ │
126+ ├────────────────────────────────────────────────────────────────┤
127+ │ Bitcoin Core C++ (vendor/bitcoin) │
128+ │ ┌───────────────────────────────────────────────────────────┐ │
129+ │ │ script/miniscript.h │ script/descriptor.h │ │
130+ │ │ script/script.h │ script/signingprovider.h │ │
131+ │ │ key.h, pubkey.h │ key_io.h │ │
132+ │ └───────────────────────────────────────────────────────────┘ │
133+ ├────────────────────────────────────────────────────────────────┤
134+ │ secp256k1 │
135+ └────────────────────────────────────────────────────────────────┘
136136```
137137
138138## Safety
0 commit comments