Skip to content

noosphere888/ExtLibJ

Repository files navigation

ExtLibJ

BitcoinJ extensions: BIP39/44/47/49/69/84/86/125/141/340, bech32, bech32m, PSBT (BIP174).

Samourai toolkit.

See documentation

stack diagram

Build

Build with Maven:

mvn clean install -Dmaven.test.skip=true

Build & Run JUnit Tests with Maven:

mvn clean install

Run JUnit Tests

Run JUnit Tests with Maven:

mvn clean test

Run JUnit Test Class with Maven:

mvn clean test -Dtest=xxxxTest

Run JUnit Test Classes with Maven:

mvn clean test -Dtest=xxxxTest1,xxxxTest2

Run JUnit Test Method with Maven:

mvn clean test -Dtest=xxxxTest#testA

Run JUnit Test Methods with Maven:

mvn clean test -Dtest=xxxxTest#testA+testB

Features

BIP39:

Samourai implementation based on original BIP, extends bitcoinj.

BIP44:

Samourai implementation based on original BIP, extends bitcoinj.

BIP47:

Samourai implementation based on original BIP by Justus Ranvier. Extends BIP44 implementation (above). Further modifications have been made to incorporate Segwit addresses into BIP47.

BIP47 Source Code

BIP47 Tests

BIP49 (Segwit):

Samourai P2SH-P2WPKH implementation based on original BIP by Daniel Weigl and includes support for BIP49-specific XPUBs: YPUB.

BIP69:

Samourai implementation based on original BIP by Kristov Atlas.

BIP84 (Segwit):

Samourai implementation based on original BIP by Pavol Rusnak.

BIP125 (Replace-by-fee, RBF):

Samourai implementation based on original BIP by David A. Harding and Peter Todd.

BIP141 (Segwit):

Samourai spends to bech32 addresses P2WPKH based on original BIP by Eric Lombrozo, Johnson Lau and Pieter Wuille.

BIP173 (Segwit):

Samourai implementation based on original BIP by Pieter Wuille and Greg Maxwell.

BIP174 (Partially Signed Bitcoin Transaction Format, PSBT):

Samourai signing via PSBT implementation based on original BIP by Andrew Chow.


Spending:

Samourai spends include the possibility of including custom fees as well as the use of batch spending (build up a list of batched outputs for grouped spend and fee savings).

Ricochet:

Samourai implementation of multi-hop spend designed to outrun the baying pack of #KYCRunningDogs.

Ricochet using nLockTime (staggered) will spread out hops over different blocks and make sure that hops do not appear all at once in the mempool.

STONEWALL:

STONEWALL spend is designed to increase the number of combinations between inputs and outputs (transaction entropy). It replaces the previously used BIP126. The objective is to obtain a positive entropy score using Boltzmann evaluation of the transaction.

STONEWALLx2:

STONEWALL spend is a 2-person collaborative coinjoin spend carried out with another user. It is indistinguishable from a regular STONEWALL. Manually coordinate with QR codes or automatically coordinate with Soroban over Tor. See doc/cahoots.

Stowaway:

A Stowaway spend, also known as a PayJoin, is a collaborative-spend carried out with another user. UTXOs are joined and the spend amount is cloaked. Manually coordinate with QR codes or automatically coordinate with Soroban over Tor. It is based on an idea by Gregory Maxwell. See doc/cahoots.

TestNet3:

MainNet/TestNet options available.

Contributing

We're always looking to polish and make improvements. Help us make Swaps better!

  1. Fork it (git clone https://code.samourai.io/wallet/ExtLibJ.git)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Merge Request with devlop branch

How to Fork an Open Source Project

License

GNU General Public License 3

About

Samourai Artillery

Resources

License

GPL-3.0, GPL-3.0 licenses found

Licenses found

GPL-3.0
LICENSE
GPL-3.0
LICENSE-ExtLibJ

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published