A CLI tool to extract the Candid interface from a Canister WASM.
cargo install candid-extractor
You can also use cargo-binstall
if it's available.
cargo binstall candid-extractor
candid-extractor path/to/canister.wasm
The Candid interface will be printed to stdout.
candid-extractor
can extract the Candid interface if the Canister meets the following requirements:
- Exports a memory named "memory".
- Exports a function named "get_candid_pointer", which returns an index within the "memory".
- If "memory" is 32-bit, the function should return an
i32
. - If "memory" is 64-bit, the function should return an
i64
.
- If "memory" is 32-bit, the function should return an
- The Candid interface should be encoded in UTF-8 and stored in "memory" starting from the returned index.
- A "NUL terminator" (byte 0x00) should be added at the end of the data if additional content exists after it in "memory".