340b569c73
Now unspendable outs are determined by attempting to create a minimal satisfying input script. If this can't be done, the output is unspendable. (Unfortunately this "minimal satisfying script" is not (yet) something that can be shown to the user, since it is more a bundle of constraints than actual data pushes.) Current limitations: - OP_ADD and friends mean the checker gives the script a free pass. There is no fundamental reason for this, I just didn't get to it yet. - Pubkeys are checked for DER encoding but signatures aren't. This is because secp256k1 exposes a method for pubkeys, but not one for sigs :). Signatures are loosely length checked. |
||
---|---|---|
src | ||
.gitignore | ||
.travis.yml | ||
Cargo.toml | ||
LICENSE | ||
README.md |
README.md
Rust Bitcoin Library
This library is badly incomplete --- though at this point it is perhaps stable enough that pull requests could be accepted.
Currently development is following the needs of the Wizard's Wallet, which is a "lite" wallet which does SPV validation but maintains a full UTXO index. Its purpose is to be a usable-though-risky wallet which supports experimental user-facing features.
Pull requests to generalize the library or introduce new use cases would be great.
Building
To build, start by obtaining cargo. Then just run cargo build
.
To run the test cases, do cargo test
. Note that the tests must pass (and reasonably
complete unit tests provided for new features) before any submissions can be accepted.