Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade 6.1.5 #4

Merged
merged 167 commits into from
Jan 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
167 commits
Select commit Hold shift + click to select a range
e79060d
docs(browser): using a different build tool
OliverOffing Oct 7, 2022
5cf1e43
chore: add bn.js to dependencies (previously it was present in devDep…
motorina0 Oct 28, 2021
083c8c1
feat: add liftX() function (first version)
motorina0 Oct 28, 2021
ef8a4c8
feat: update the Payment interface with taproot specific fields
motorina0 Oct 28, 2021
93185d4
feat: add first version of p2tr; basic logic for key path construct/s…
motorina0 Oct 28, 2021
d1e35e4
test: add first tests for p2tr
motorina0 Oct 28, 2021
f39812c
feat: add generated files
motorina0 Oct 28, 2021
2a2b403
feat: compute "taproot output key" when "taoroot internal key" is kno…
motorina0 Oct 29, 2021
e12f187
tests: improve test coverage
motorina0 Oct 29, 2021
7760b9f
feat: add function `computeMastRoot()`
motorina0 Nov 1, 2021
d142e02
feat: compute p2tr hash based on the script tree
motorina0 Nov 1, 2021
d1c7b05
feat: add scriptsTree field to Payment interface; export p2tr
motorina0 Nov 1, 2021
46e3ce7
feat: convert `scriptsTree` output to Buffer
motorina0 Nov 1, 2021
3f1be32
tests: add tests for script tree
motorina0 Nov 1, 2021
b6a0048
feat: add simple type for TaprootLeaf and TaprootNode
motorina0 Nov 1, 2021
7bc0c8e
feat: check for hash mismatch between the input hash and the computed…
motorina0 Nov 1, 2021
61511d4
feat: validate witness data (partial)
motorina0 Nov 2, 2021
725d96a
refactor: split `computeTweakFromScriptPath()` into `rootHash()` and …
motorina0 Nov 2, 2021
c309ff8
feat: compute hash from witness control-block
motorina0 Nov 2, 2021
d0ae719
refactor: extract taproot related logic to taproot.ts file
motorina0 Nov 2, 2021
a8c3f1d
chore: code format and lint
motorina0 Nov 2, 2021
6fa79d6
refactor: compare GROUP_ORDER as buffer (instead of using BN.js)
motorina0 Nov 2, 2021
cafcde0
refactor: rename `rootHash` to `rootHashFromPath` and `computeMastRoo…
motorina0 Nov 3, 2021
5068223
tests: add bib341 tests by @sipa; plus refactoring
motorina0 Nov 3, 2021
04a50c0
refactor: extract `tapBranchHash()` rename `leafHash()` to `tapBranch…
motorina0 Nov 3, 2021
a98e76b
feat: build control-block as part of witness; update tests
motorina0 Nov 3, 2021
bf41ac7
chore: lint & format; fix: discovered bug in findScriptPath() after lint
motorina0 Nov 3, 2021
b307379
chore: code clean-up; fix o.scriptLeaf (needs tests)
motorina0 Nov 3, 2021
a3bfa84
chore: update taggedHash() prefix after rebase
motorina0 Nov 12, 2021
0519d2b
fix: rebase issues
motorina0 Jan 12, 2022
2efc51e
chore: remove the bn.js dependency
motorina0 Jan 13, 2022
4fd8a34
refactor: use injectable ecc lib
motorina0 Jan 13, 2022
a8644a8
chore: code format
motorina0 Jan 13, 2022
b866a80
refactor: move taproot utils file
motorina0 Jan 13, 2022
fac6c90
refactor: move non-exported function to the bottom
motorina0 Jan 13, 2022
6578097
fix: lint & gitdiff issues
motorina0 Jan 13, 2022
1577f66
chore: removed un-used exports
motorina0 Jan 13, 2022
af72a78
chore: add docs, simplify code
motorina0 Jan 13, 2022
f2a0c1d
feat: pass the ECC library as an optional parameter to p2tr
motorina0 Jan 14, 2022
2e5965d
refactor: move eccLib to PaymentOptions
motorina0 Jan 18, 2022
e292387
fix: remove `TinySecp256k1Interface` from `PaymentCreator`
motorina0 Jan 20, 2022
06fc272
chore: keep ecc test vectors to a minimum
motorina0 Jan 20, 2022
2526642
fix: taproot signature is 64 bytes
motorina0 Jan 27, 2022
fa1e1c3
feat: add Key Spend support for taproot to PSBT (more in commit descr…
motorina0 Jan 27, 2022
04d0be9
feat: extract `tiny-secp256k1` out of the Psbt module
motorina0 Jan 28, 2022
222022a
chore: take the garbage out. Remove `tweakSigner()` and ecpair dep fr…
motorina0 Feb 10, 2022
4eee26b
feat: add taproot check for signInputAsync()
motorina0 Feb 18, 2022
e91c77d
feat: add stricter validation for taproot addresses
motorina0 Feb 18, 2022
6816f51
fix: fix integration test
motorina0 Feb 18, 2022
7da1dd5
feat: correctly identify P2TR (pass `eccLib` to `toOutputScript` and …
motorina0 Feb 22, 2022
e033a6f
add integration tests for taproot (#3)
motorina0 Mar 9, 2022
1e6aec5
refactor: move tapscript finalizer check; add unit test
motorina0 Mar 9, 2022
08cf664
fix: fix integration test
motorina0 Mar 9, 2022
3e02a63
fix: revert package lock version upgrade
motorina0 Mar 9, 2022
fde11c9
refactor: change code to original version
motorina0 Mar 9, 2022
060630b
fix: make `FinalScriptsFunc` backwards compatible by moving `isTaps…
motorina0 Mar 9, 2022
b17dc51
fix: tap tree branch sorting; improve unit test
motorina0 Mar 10, 2022
032201a
refactor: add Taptree interface
motorina0 Mar 18, 2022
fee9fa1
refactor: rename `testecc` to `verifyecc` (avoid confusing it with un…
motorina0 Mar 18, 2022
67028cf
Declare tapscript version mask like the BIP
reardencode Mar 18, 2022
da61c66
Correct Taptree type
reardencode Mar 18, 2022
d29ada6
Consistent capitalization of tapleaf
reardencode Mar 18, 2022
cf18dfd
Don't use constants for tag prefixes
reardencode Mar 18, 2022
f76b954
Simplify HashTree processing, remove footgun
reardencode Mar 18, 2022
18bcadd
Support p2tr with 1 script and no tree
reardencode Mar 18, 2022
c02ed1b
Remove unnecessary arrays of values
reardencode Mar 18, 2022
6b9f776
Improve tapleah hash parameter name
reardencode Mar 18, 2022
95d0f51
Fix indentation
reardencode Mar 18, 2022
e557a99
Add validation for redeem in scriptTree
reardencode Mar 21, 2022
c3053e7
Improve comments and code clarity
reardencode Mar 21, 2022
6f70c88
refactor: add explicit initialisation of the ecc library (#5)
motorina0 Mar 28, 2022
4fd164e
refactor: move tweakKey() to taproot utils
motorina0 Apr 1, 2022
9d4fdcd
fix: use witness without annex for o.signature
motorina0 Apr 1, 2022
3af7c11
feat: use BIP371 fields for taproot inputs
motorina0 May 20, 2022
6cbac53
feat: add to/from Psbt TapTree conversion
motorina0 May 24, 2022
9eb0790
test: add tests for taptree conversion to tapleaf
motorina0 May 24, 2022
bc3dc46
chore: code lint
motorina0 May 24, 2022
d7e24cb
test: use `tapInternalKey` to generate the address
motorina0 May 25, 2022
58258a7
feat: do taproot checks for `addOutput()`
motorina0 May 25, 2022
8ca34c0
refactor: simplify `addOutput()` checks
motorina0 May 25, 2022
e17e2bd
feat: do taproot checks for `updateOutput()`
motorina0 May 25, 2022
057cdc5
feat: check if taproot signature are present before allowing psbt cha…
motorina0 May 26, 2022
f32d706
refactor: move out some utils
motorina0 May 26, 2022
c9b334b
test: add custom taproot finalizer (partial)
motorina0 May 26, 2022
8b4cee9
chore: code clean-up
motorina0 May 26, 2022
94f5291
Fix integration test
junderw May 26, 2022
724be84
Fix test lints
junderw May 26, 2022
4db8455
Fix audit
junderw May 26, 2022
7839476
refactor: rename `taprootutils` to `bip341`
motorina0 Jun 1, 2022
6f40ec8
chore: fix typo
motorina0 Nov 29, 2022
80a31db
fix: add check for `controlBlock` length
motorina0 Nov 29, 2022
d5181df
chore: typo in comment
motorina0 Nov 29, 2022
9960306
chore: remove `any` type
motorina0 Nov 29, 2022
57f915e
chore: add explicit type for returned signatures
motorina0 Nov 29, 2022
c3b5173
chore: sync `package-lock.json`
motorina0 Nov 29, 2022
a72be91
fix: audit issue for `minimatch`
motorina0 Nov 29, 2022
b994d46
6.1.0-rc.0
motorina0 Nov 29, 2022
e6c8a99
Merge pull request #1742 from bitcoincoretech/p2tr-v1
junderw Nov 29, 2022
550ac73
Merge pull request #1836 from OliverOffing/OliverOffing-patch-1
junderw Nov 29, 2022
1724115
- upgraded prettier
Dec 5, 2022
9ae2089
Merge pull request #1831 from fzuleta/feature/es-lint
junderw Dec 6, 2022
f9e970a
Update CHANGELOG and remove old taproot example
junderw Dec 7, 2022
f221e1f
6.1.0
junderw Dec 7, 2022
a05587f
Merge pull request #1849 from bitcoinjs/bump/6.1.0
junderw Dec 7, 2022
db98a14
Removal of the example [Taproot Key Spend]
GregTonoski Dec 29, 2022
d495765
chore: initialise TAGGED_HASH_PREFIXES on-demand
headfire94 Dec 29, 2022
3e9827c
Merge pull request #1858 from GregTonoski/patch-1
junderw Jan 4, 2023
6c886dd
refactor: store pre-computed prefixes
headfire94 Jan 5, 2023
c462e1d
refactor: hardcoded prefixes
headfire94 Jan 9, 2023
5707a04
chore: upgrade json5
headfire94 Jan 19, 2023
cc1b23e
fix: commit crypto.d.ts
headfire94 Jan 19, 2023
ed73aa8
Merge pull request #1859 from headfire94/egor/perf/prefix-ondemand
junderw Jan 20, 2023
e3c16e6
This commit aims to prevent the creation of unspendable scripts in bi…
Jan 23, 2023
8bb53b4
Add new Taproot example
ChrisCho-H Feb 3, 2023
69b0f7c
Merge pull request #1866 from Hyunhum/taproot-example
junderw Feb 3, 2023
35634ce
"feat: remove privateAdd & privateNegate for tinysecp256k1"
ChrisCho-H Feb 9, 2023
ac3f01b
"feat: remove privateAdd & privateNegate in tinysecp256k1 declaration"
ChrisCho-H Feb 9, 2023
02b112e
Merge pull request #1869 from Hyunhum/tiny-secp256k1-interface
junderw Feb 9, 2023
f1a4b9d
Add example using BIP86 vector to verify the sending to and from a BI…
junderw Feb 15, 2023
cdb95a9
Merge pull request #1874 from bitcoinjs/add/examplebip86
junderw Feb 15, 2023
a59eecd
Merge pull request #1863 from bitcoinerlab/master
junderw Feb 17, 2023
8c504c4
Switch from create-hash, ripemd160 to noble-hashes
paulmillr Feb 17, 2023
adc8a33
Handle custom signature hash type - sig length
jafri Feb 21, 2023
599f16b
Fix format
jafri Feb 21, 2023
d28e9dd
add .ts
jafri Feb 21, 2023
9bf1219
fix tests
jafri Feb 21, 2023
7be0c0b
Bump bip32, bip39
paulmillr Feb 25, 2023
4bf8a84
Remove wif. Use new bs58check
paulmillr Feb 25, 2023
1c18fe6
fix: android `TypedArray.of requires its this argument to subclass a …
fboucquez Feb 26, 2023
3541220
using Buffer.from([0x00]
fboucquez Feb 27, 2023
708fe38
Merge pull request #1891 from fboucquez/fboucquez/fix/android-buffer.…
junderw Feb 27, 2023
52559f8
Merge pull request #1879 from paulmillr/master
junderw Mar 5, 2023
640a2a7
Include test for taproot custom signature types
habibitcoin Apr 14, 2023
73a310e
Merge pull request #1 from habibitcoin/master
jafri Apr 15, 2023
3c5faec
Update test to specify sighashTypes
habibitcoin Apr 28, 2023
a6e870d
Merge pull request #2 from habibitcoin/master
jafri Apr 28, 2023
5ffda41
Update test to specify isTaproot
habibitcoin May 24, 2023
37e3478
Merge pull request #3 from habibitcoin/master
jafri May 24, 2023
a51d7d6
Merge pull request #1884 from jafri/master
junderw May 24, 2023
f230cc9
chore: version bump to `6.1.1` and changelog
motorina0 May 25, 2023
5d2ff1c
Merge pull request #1923 from bitcoincoretech/version_6.1.1
junderw May 26, 2023
85c5c6a
Fix: Find hashes WITHOUT leafHash instead
junderw Jun 3, 2023
f8cfd7f
6.1.2
junderw Jun 5, 2023
da0b34d
Merge pull request #1932 from bitcoinjs/fix/validate-sigs
junderw Jun 5, 2023
b5fd4d6
Fix: Taproot signature validation was incorrect again.
junderw Jun 7, 2023
8d2d7db
6.1.3
junderw Jun 7, 2023
1a9119b
Merge pull request #1935 from bitcoinjs/fix/p2tr-sigs-pt2
junderw Jun 9, 2023
e80d22b
Update README.md
junderw Jul 19, 2023
bcf1bf8
Bump package-lock.json version
junderw Aug 28, 2023
d60ba49
Fixes issue#1974
wakqasahmed Sep 14, 2023
1cd80e5
Fix TS as well
junderw Sep 14, 2023
d69d03b
Merge pull request #1975 from wakqasahmed/fix-issue-1974
junderw Sep 14, 2023
105625f
6.1.4
junderw Sep 14, 2023
99c8735
Merge pull request #1976 from bitcoinjs/bump/6.1.4
junderw Sep 14, 2023
26ada31
Upgrade bip174 to 2.1.1.
arik-so Sep 18, 2023
8f5f244
Update lockfile.
arik-so Sep 18, 2023
a3481d1
Merge pull request #1979 from arik-so/main
junderw Sep 18, 2023
4af9317
6.1.5
junderw Sep 18, 2023
9915cda
Merge tag 'v6.1.5' of https://github.com/bitcoinjs/bitcoinjs-lib into…
HashEngineering Jan 26, 2024
4dd1331
chore: use hashes-grs 1.2.0
HashEngineering Jan 26, 2024
dfda118
fix: use bs58grscheck and other issues
HashEngineering Jan 26, 2024
299c6b0
Minor fixes
gruve-p Jan 26, 2024
75672ed
tests: fix test vectors for address.json
HashEngineering Jan 26, 2024
5a33bc6
tests: fix test vectors for p2tr.json and psbt.json
HashEngineering Jan 26, 2024
61aa9e1
Bump version
gruve-p Jan 27, 2024
0f152e6
tests: fix test vectors in psbt.json
HashEngineering Jan 27, 2024
ed7da76
tests: skip tests that require regtest for taproot.spec.ts
HashEngineering Jan 27, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
{
"root": true,
"parser": "@typescript-eslint/parser",
"plugins": [
"@typescript-eslint"
],
"extends": [
"eslint:recommended",
"prettier",
"plugin:@typescript-eslint/recommended",
"plugin:prettier/recommended"
],
"rules": {
"prettier/prettier": ["error", {
"singleQuote": true,
"trailingComma": "all",

"endOfLine": "auto",
"arrowParens": "avoid",
"tabWidth": 2
}],

"arrow-body-style": "off",
"prefer-arrow-callback": "off",

"@typescript-eslint/array-type": 0,
"@typescript-eslint/no-inferrable-types": "off",
"@typescript-eslint/ban-types": "off",
"@typescript-eslint/no-unused-vars": "off",

"arrow-parens": "off",
"curly": "off",
"no-case-declarations": "off",

"quotes": "off",
"@typescript-eslint/quotes": ["error", "single", { "avoidEscape": true, "allowTemplateLiterals": true }],
"prefer-rest-params": "off",
"no-bitwise": "off",
"no-console": "off",
"no-empty": ["error", { "allowEmptyCatch": true }],

"@typescript-eslint/no-var-requires": "off",
"@typescript-eslint/no-non-null-assertion": "off",
"@typescript-eslint/no-explicit-any": "off",

"no-unused-expressions": "off",
"@typescript-eslint/no-unused-expressions": "off",

"space-before-function-paren": "off"
},
"env": {
"browser": true,
"amd": true,
"node": true
}
}

2 changes: 1 addition & 1 deletion .prettierignore
Original file line number Diff line number Diff line change
@@ -1 +1 @@
test/crypto.spec.ts
*.d.ts
5 changes: 4 additions & 1 deletion .prettierrc.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
{
"singleQuote": true,
"trailingComma": "all"
"trailingComma": "all",
"endOfLine": "auto",
"arrowParens": "avoid",
"tabWidth": 2
}
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# 6.1.5
Updated to 6.1.5 upstream

# 6.0.1
Updated to 6.0.1 upstream

Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ Refer to the [Git manual](https://git-scm.com/doc) for any information about `gi


## Regarding TypeScript
This library is written in TypeScript with tslint, prettier, and the tsc transpiler. These tools will help during testing to notice improper logic before committing and sending a pull request.
This library is written in TypeScript with eslint, prettier, and the tsc transpiler. These tools will help during testing to notice improper logic before committing and sending a pull request.

Some rules regarding TypeScript:

Expand Down
35 changes: 30 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ Released under the terms of the [MIT LICENSE](LICENSE).
If you are thinking of using the *master* branch of this library in production, **stop**.
Master is not stable; it is our development branch, and [only tagged releases may be classified as stable](https://github.com/groestlcoin/groestlcoinjs-lib/tags).


## Can I trust this code?
> Don't trust. Verify.

Expand All @@ -21,7 +20,6 @@ Mistakes and bugs happen, but with your help in resolving and reporting [issues]
- Standardized, using [prettier](https://github.com/prettier/prettier) and Node `Buffer`'s throughout, and
- Friendly, with a strong and helpful community, ready to answer questions.


## Documentation
Presently, we do not have any formal documentation other than our [examples](#examples), please [ask for help](https://github.com/groestlcoin/groestlcoinjs-lib/issues/new) if our examples aren't enough to guide you.

Expand Down Expand Up @@ -72,7 +70,19 @@ We are not an authoritative source of best practice, but, at the very least:

### Browser
The recommended method of using `groestlcoinjs-lib` in your browser is through [Browserify](https://github.com/substack/node-browserify).
If you're familiar with how to use browserify, ignore this and carry on, otherwise, it is recommended to read the tutorial at https://browserify.org/.

If you'd like to use a different (more modern) build tool than `browserify`, you can compile just this library and its dependencies into a single JavaScript file:

```sh
$ npm install groestlcoinjs-lib browserify
$ npx browserify --standalone groestlcoin - -o groestlcoinjs-lib.js <<<"module.exports = require('groestlcoinjs-lib');"
```

Which you can then import as an ESM module:

```javascript
<script type="module">import "/scripts/groestlcoinjs-lib.js"</script>
````

**NOTE**: We use Node Maintenance LTS features, if you need strict ES5, use [`--transform babelify`](https://github.com/babel/babelify) in conjunction with your `browserify` step (using an [`es2015`](https://babeljs.io/docs/plugins/preset-es2015/) preset).

Expand All @@ -86,7 +96,6 @@ The below examples are implemented as integration tests, they should be very eas
Otherwise, pull requests are appreciated.

- [Taproot Key Spend](https://github.com/Groestlcoin/groestlcoinjs-lib/blob/master/test/integration/taproot.md)

- [Generate a random address](https://github.com/Groestlcoin/groestlcoinjs-lib/blob/master/test/integration/addresses.spec.ts)
- [Import an address via WIF](https://github.com/Groestlcoin/groestlcoinjs-lib/blob/master/test/integration/addresses.spec.ts)
- [Generate a 2-of-3 P2SH multisig address](https://github.com/Groestlcoin/groestlcoinjs-lib/blob/master/test/integration/addresses.spec.ts)
Expand All @@ -96,14 +105,30 @@ Otherwise, pull requests are appreciated.
- [Generate a SegWit 2-of-2 P2SH multisig address](https://github.com/Groestlcoin/groestlcoinjs-lib/blob/master/test/integration/addresses.spec.ts)
- [Support the retrieval of transactions for an address (3rd party blockchain)](https://github.com/Groestlcoin/groestlcoinjs-lib/blob/master/test/integration/addresses.spec.ts)
- [Generate a Testnet address](https://github.com/Groestlcoin/groestlcoinjs-lib/blob/master/test/integration/addresses.spec.ts)
- [Create a 1-to-1 Transaction](https://github.com/Groestlcoin/groestlcoinjs-lib/blob/master/test/integration/transactions.spec.ts)
- [Create a 1-to-1 Transaction](https://github.com/Groestlcoin/groestlcoinjs-lib/blob/master/test/integration/transactions.spec.ts)- [Create (and broadcast via 3PBP) a typical Transaction](https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/test/integration/transactions.spec.ts)
- [Create (and broadcast via 3PBP) a Transaction with an OP\_RETURN output](https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/test/integration/transactions.spec.ts)
- [Create (and broadcast via 3PBP) a Transaction with a 2-of-4 P2SH(multisig) input](https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/test/integration/transactions.spec.ts)
- [Create (and broadcast via 3PBP) a Transaction with a SegWit P2SH(P2WPKH) input](https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/test/integration/transactions.spec.ts)
- [Create (and broadcast via 3PBP) a Transaction with a SegWit P2WPKH input](https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/test/integration/transactions.spec.ts)
- [Create (and broadcast via 3PBP) a Transaction with a SegWit P2PK input](https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/test/integration/transactions.spec.ts)
- [Create (and broadcast via 3PBP) a Transaction with a SegWit 3-of-4 P2SH(P2WSH(multisig)) input](https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/test/integration/transactions.spec.ts)
- [Create (and broadcast via 3PBP) a Transaction and sign with an HDSigner interface (bip32)](https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/test/integration/transactions.spec.ts)
- [Import a BIP32 testnet xpriv and export to WIF](https://github.com/Groestlcoin/groestlcoinjs-lib/blob/master/test/integration/bip32.spec.ts)
- [Export a BIP32 xpriv, then import it](https://github.com/Groestlcoin/groestlcoinjs-lib/blob/master/test/integration/bip32.spec.ts)
- [Export a BIP32 xpub](https://github.com/Groestlcoin/groestlcoinjs-lib/blob/master/test/integration/bip32.spec.ts)
- [Create a BIP32, groestlcoin, account 0, external address](https://github.com/Groestlcoin/groestlcoinjs-lib/blob/master/test/integration/bip32.spec.ts)
- [Create a BIP44, groestlcoin, account 0, external address](https://github.com/Groestlcoin/groestlcoinjs-lib/blob/master/test/integration/bip32.spec.ts)
- [Create a BIP49, groestlcoin testnet, account 0, external address](https://github.com/Groestlcoin/groestlcoinjs-lib/blob/master/test/integration/bip32.spec.ts)
- [Use BIP39 to generate BIP32 addresses](https://github.com/Groestlcoin/groestlcoinjs-lib/blob/master/test/integration/bip32.spec.ts)
- [Create (and broadcast via 3PBP) a Transaction where Alice can redeem the output after the expiry (in the past)](https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/test/integration/cltv.spec.ts)
- [Create (and broadcast via 3PBP) a Transaction where Alice can redeem the output after the expiry (in the future)](https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/test/integration/cltv.spec.ts)
- [Create (and broadcast via 3PBP) a Transaction where Alice and Bob can redeem the output at any time](https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/test/integration/cltv.spec.ts)
- [Create (but fail to broadcast via 3PBP) a Transaction where Alice attempts to redeem before the expiry](https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/test/integration/cltv.spec.ts)
- [Create (and broadcast via 3PBP) a Transaction where Alice can redeem the output after the expiry (in the future) (simple CHECKSEQUENCEVERIFY)](https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/test/integration/csv.spec.ts)
- [Create (but fail to broadcast via 3PBP) a Transaction where Alice attempts to redeem before the expiry (simple CHECKSEQUENCEVERIFY)](https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/test/integration/csv.spec.ts)
- [Create (and broadcast via 3PBP) a Transaction where Bob and Charles can send (complex CHECKSEQUENCEVERIFY)](https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/test/integration/csv.spec.ts)
- [Create (and broadcast via 3PBP) a Transaction where Alice (mediator) and Bob can send after 2 blocks (complex CHECKSEQUENCEVERIFY)](https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/test/integration/csv.spec.ts)
- [Create (and broadcast via 3PBP) a Transaction where Alice (mediator) can send after 5 blocks (complex CHECKSEQUENCEVERIFY)](https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/test/integration/csv.spec.ts)

If you have a use case that you feel could be listed here, please [ask for it](https://github.com/Groestlcoin/groestlcoinjs-lib/issues/new)!

Expand Down
Loading
Loading