mirror of
https://github.com/sparrowwallet/hummingbird.git
synced 2024-12-26 10:06:45 +00:00
add readme
This commit is contained in:
parent
61ca488a6a
commit
7dc6404d62
1 changed files with 61 additions and 0 deletions
61
README.md
Normal file
61
README.md
Normal file
|
@ -0,0 +1,61 @@
|
|||
# Hummingbird
|
||||
|
||||
### Java implementation of Uniform Resources (UR)
|
||||
|
||||
Hummingbird is a Java implementation of the [Uniform Resources (UR)](https://github.com/BlockchainCommons/Research/blob/master/papers/bcr-2020-005-ur.md) specification.
|
||||
It is a direct port of the [URKit](https://github.com/BlockchainCommons/URKit) implementation by Wolf McNally.
|
||||
It contains both the classes to represent a UR, and a UR encoder and decoder to encode and decode to/from the QR representations.
|
||||
|
||||
## Configuration
|
||||
|
||||
Hummingbird is hosted in Maven Central and can be added as a dependency with the following:
|
||||
|
||||
```
|
||||
implementation('com.sparrowwallet:hummingbird:1.1')
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
Decoding a UR can be done as follows (here decoding a ``crypto-psbt`` UR type):
|
||||
|
||||
```java
|
||||
URDecoder decoder = new URDecoder();
|
||||
while(decoder.getResult() == null) {
|
||||
//Loop adding QR fragments to the decoder until it has a result
|
||||
String qrText = getFromNextQR();
|
||||
decoder.receivePart(qrText);
|
||||
}
|
||||
|
||||
URDecoder.Result urResult = decoder.getResult();
|
||||
if(urResult.type == ResultType.SUCCESS) {
|
||||
if(urResult.ur.getType().equals(UR.CRYPTO_PSBT_TYPE)) {
|
||||
byte[] psbt = urResult.ur.toBytes();
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Encoding a UR:
|
||||
|
||||
```java
|
||||
final int MIN_FRAGMENT_LENGTH = 10;
|
||||
final int MAX_FRAGMENT_LENGTH = 100;
|
||||
|
||||
UR ur = UR.fromBytes(data);
|
||||
UREncoder encoder = new UREncoder(ur, MAX_FRAGMENT_LENGTH, MIN_FRAGMENT_LENGTH, 0);
|
||||
while(true) {
|
||||
String fragment = encoder.nextPart();
|
||||
//Show UR fragment as QR code...
|
||||
}
|
||||
```
|
||||
|
||||
## Testing
|
||||
|
||||
Hummingbird has a thorough testsuite ported from URKit. The tests can be run with:
|
||||
|
||||
```
|
||||
./gradlew test
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
Hummingbird is licensed under the Apache 2 software license.
|
Loading…
Reference in a new issue