rust-bitcoin-unsafe-fast/bitcoin/embedded
Martin Habovstiak a92d49fe33 Implement `CompressedPublicKey`
P2WPKH requires keys to be compressed which introduces error handling
even in cases when it's statically known that a key is compressed. To
avoid it, this change introduces `CompressedPublicKey` which is similar
to `PublicKey` except it's statically known to be compressed.

This also changes relevant code to use `CompressedPublicKey` instead of
`PublicKey`.
2023-12-12 15:16:16 +01:00
..
scripts Import bitcoin_hashes crate into hashes 2022-11-08 08:58:09 +11:00
src Implement `CompressedPublicKey` 2023-12-12 15:16:16 +01:00
Cargo.toml Add bitcoin-units crate 2023-12-11 08:52:31 +11:00
README.md embedded: Document how to clean up linker flags 2023-05-26 14:39:14 +10:00
memory.x Import bitcoin_hashes crate into hashes 2022-11-08 08:58:09 +11:00

README.md

Running

To run the embedded test, first prepare your environment:

sudo ./scripts/install-deps
rustup +nightly target add thumbv7m-none-eabi

Then:

source ./scripts/env.sh && cargo +nightly run --target thumbv7m-none-eabi

Output should be something like:

heap size 524288
secp buf size 66240
Seed WIF: L1HKVVLHXiUhecWnwFYF6L3shkf1E12HUmuZTESvBXUdx3yqVP1D
Address: bc1qpx9t9pzzl4qsydmhyt6ctrxxjd4ep549np9993

Note that this heap size is required because of the amount of stack used by libsecp256k1 when initializing a context.

Cleanup

After sourcing scripts/env.sh and before building again using another target you'll want to unset RUSTFLAGS otherwise you'll get linker errors.

unset RUSTFLAGS