[ecash-secp256k1] Add ecash-secp256k1-sys
Summary:
Import the secp256k1-sys crate from rust-secp256k1 repository, and apply the following modifications:
- Removed the vendored secp256k1 library imported from bitcoin-core
- Use our secp256k1 library of the monorepo
- Add ABC's secp256k1_schnorr_sign and secp256k1_schnorr_verify, which are the Schnorr signatures used by ABC. These are distinct from the x-only pubkey BIP340 signatures from BTC, but we keep them to simplify backports, and to (in the future) allow eCash apps to also talk some BTC.
- Port the GitHub CI from the repository to a test.sh. Those depend on https://github.com/rust-bitcoin/rust-bitcoin-maintainer-tools, so the relevant parts have been ported and cleaned up.
- Adapt the Rust workspace structure to our workspace.
- Reformat everything with our formatting rules.
Test Plan: ./modules/ecash-secp256k1/contrib/test.sh
Reviewers: #bitcoin_abc, Fabien
Reviewed By: #bitcoin_abc, Fabien
Differential Revision: https://reviews.bitcoinabc.org/D16953