Skip to content

Flutter friendly implementation of BIP173, BIP350

License

Notifications You must be signed in to change notification settings

sigrlami/bitcoin_bech32

 
 

Repository files navigation

Bech32

pub package

An implementation of the BIP173 and BIP350 specs for Segwit Bech32 address format. This is a for of original that inroduces BIP350, conversion fixes and cleaner interface.

Installing

Add it to your pubspec.yaml:

dependencies:
  bitcoin_bech32_ng: any

Examples

  Segwit address = segwit.decode("bc1pw508d6qejxtdg4y5r3zarvary0c5xw7kw508d6qejxtdg4y5r3zarvary0c5xw7k7grplx");
  print(address.scriptPubKey);
  // => 5128751e76e8199196d454941c45d1b3a323f1433bd6751e76e8199196d454941c45d1b3a323f1433bd6
  print(address.version);
  // => 1

The lightning BOLT #11 spec can have longer inputs than the BIP173 spec allows. Use the positional maxLength parameter to override the validation.

  String paymentRequest = "lnbc1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdpl2pkx2ctnv5sxxmmwwd5kgetjypeh2ursdae8g6twvus8g6rfwvs8qun0dfjkxaq8rkx3yf5tcsyz3d73gafnh3cax9rn449d9p5uxz9ezhhypd0elx87sjle52x86fux2ypatgddc6k63n7erqz25le42c4u4ecky03ylcqca784w";
  Bech32Codec codec = Bech32Codec();
  Bech32 bech32 = codec.decode(
    paymentRequest,
    paymentRequest.length,
  );
  print("hrp: ${bech32.hrp}");
  // => hrp: lnbc

Exceptions

The specification defines a myriad of cases in which decoding and encoding should fail. Please make sure your code catches all the relevant exception defined in lib/exceptions.dart.

Licence overview

All files in this repository fall under the license specified in COPYING. The project is licensed as AGPL with a lesser clause. It may be used within a proprietary project, but the core library and any changes to it must be published online. Source code for this library must always remain free for everybody to access.

Thanks

About

Flutter friendly implementation of BIP173, BIP350

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Dart 100.0%