Skip to content

Commit 21b77b3

Browse files
test: add new streamlined constants
1 parent 8c6ac77 commit 21b77b3

File tree

5 files changed

+64
-63
lines changed

5 files changed

+64
-63
lines changed
Lines changed: 33 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,39 @@
11
package org.bitcoindevkit
22

3-
// Test networks
4-
const val TEST_EXTENDED_PRIVKEY = "tprv8ZgxMBicQKsPf2qfrEygW6fdYseJDDrVnDv26PH5BHdvSuG6ecCbHqLVof9yZcMoM31z9ur3tTYbSnr1WBqbGX97CbXcmp5H6qeMpyvx35B"
3+
// 1. Extended Keys
4+
// These are generated from the MNEMONIC_AWESOME mnemonic. The keys with the TEST prefix are valid for Regtest, Signet,
5+
// Testnet3, and Testnet4. The keys with the MAIN prefix are valid for Mainnet.
6+
const val TEST_EXTENDED_PRIVKEY = "tprv8ZgxMBicQKsPdWAHbugK2tjtVtRjKGixYVZUdL7xLHMgXZS6BFbFi1UDb1CHT25Z5PU1F9j7wGxwUiRhqz9E3nZRztikGUV6HoRDYcqPhM4"
7+
const val TEST_EXTENDED_PUBKEY = "tpubD6NzVbkrYhZ4WyC5VZLuSJQ14uwfUbus7oAFurAFkZA5N3groeQqtW65m8pG1TT1arPpfWu9RbBsc5rSBncrX2d84BAwJJHQfaRjnMCQwuT"
8+
const val MAIN_EXTENDED_PRIVKEY = "xprv9s21ZrQH143K2gvkwLposF7uBm1X5kgxCweMkuhVrJsCjxh1BtFWCG6mfq2dSehEhwwEF47MmvP91rsximoHEjHqUFWSc7m3Nhfo6yAmTtq"
9+
const val MAIN_EXTENDED_PUBKEY = "xpub661MyMwAqRbcFB1E3NMpEP4djnr1VDQoaAZxZJ77QeQBcm29jRZkk4RFX6jUUxVmnwrv3wPGtVMpuuMpnvmcdbApzaRdcmdB5cqL2Q1yjam"
10+
11+
// 2. Mnemonics
12+
const val MNEMONIC_AWESOME = "awesome awesome awesome awesome awesome awesome awesome awesome awesome awesome awesome awesome"
13+
const val MNEMONIC_ALL = "all all all all all all all all all all all all"
14+
15+
// 3. Derivation Paths
516
const val BIP84_TEST_RECEIVE_PATH = "84h/1h/0h/0"
6-
const val BIP84_TEST_CHANGE_PATH = "84h/1h/0h/1"
17+
const val BIP84_TEST_CHANGE_PATH = "84h/1h/0h/1"
718
const val BIP86_TEST_RECEIVE_PATH = "86h/1h/0h/0"
8-
const val BIP86_TEST_CHANGE_PATH = "86h/1h/0h/1"
19+
const val BIP86_TEST_CHANGE_PATH = "86h/1h/0h/1"
20+
const val BIP86_TEST_MULTIPATH = "86h/1h/0h/<0;1>"
21+
22+
const val BIP84_MAIN_RECEIVE_PATH = "84h/0h/0h/0"
23+
const val BIP84_MAIN_CHANGE_PATH = "84h/0h/0h/1"
24+
const val BIP86_MAIN_RECEIVE_PATH = "86h/0h/0h/0"
25+
const val BIP86_MAIN_CHANGE_PATH = "86h/0h/0h/1"
26+
const val BIP86_MAIN_MULTIPATH = "86h/0h/0h/<0;1>"
927

10-
// Mainnet
11-
const val MAINNET_EXTENDED_PRIVKEY = "xprv9s21ZrQH143K3LRcTnWpaCSYb75ic2rGuSgicmJhSVQSbfaKgPXfa8PhnYszgdcyWLoc8n1E2iHUnskjgGTAyCEpJYv7fqKxUcRNaVngA1V"
12-
const val BIP84_MAINNET_RECEIVE_PATH = "84h/0h/0h/1"
13-
const val BIP86_MAINNET_RECEIVE_PATH = "86h/0h/0h/1"
28+
// 4. Descriptors
29+
// These are also generated from the MNEMONIC_AWESOME mnemonic. The descriptors with the TEST prefix are valid for
30+
// Regtest, Signet, Testnet3, and Testnet4. The descriptors with the MAIN prefix are valid for Mainnet.
31+
val TEST_BIP84_DESCRIPTOR = Descriptor("wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_RECEIVE_PATH/*)", Network.TESTNET4)
32+
val TEST_BIP84_CHANGE_DESCRIPTOR = Descriptor("wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_CHANGE_PATH/*)", Network.TESTNET4)
33+
val TEST_BIP86_DESCRIPTOR = Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/*)", Network.TESTNET4)
34+
val TEST_BIP86_CHANGE_DESCRIPTOR = Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_CHANGE_PATH/*)", Network.TESTNET4)
35+
val TEST_DEFINITE_DESCRIPTOR_0 = Descriptor("wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_RECEIVE_PATH/0)", Network.TESTNET4)
36+
val TEST_DEFINITE_DESCRIPTOR_1 = Descriptor("wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_RECEIVE_PATH/1)", Network.TESTNET4)
1437

15-
val BIP84_DESCRIPTOR: Descriptor = Descriptor(
16-
"wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_RECEIVE_PATH/*)",
17-
Network.TESTNET
18-
)
19-
val BIP84_CHANGE_DESCRIPTOR: Descriptor = Descriptor(
20-
"wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_CHANGE_PATH/*)",
21-
Network.TESTNET
22-
)
23-
val BIP86_DESCRIPTOR: Descriptor = Descriptor(
24-
"tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/*)",
25-
Network.TESTNET
26-
)
27-
val BIP86_CHANGE_DESCRIPTOR: Descriptor = Descriptor(
28-
"tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_CHANGE_PATH/*)",
29-
Network.TESTNET
30-
)
31-
val NON_EXTENDED_DESCRIPTOR_0: Descriptor = Descriptor(
32-
descriptor = "wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_RECEIVE_PATH/0)",
33-
network = Network.TESTNET
34-
)
35-
val NON_EXTENDED_DESCRIPTOR_1: Descriptor = Descriptor(
36-
descriptor = "wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_RECEIVE_PATH/1)",
37-
network = Network.TESTNET
38-
)
38+
val MAIN_BIP86_DESCRIPTOR = Descriptor("tr($MAIN_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/*)", Network.BITCOIN)
39+
val MAIN_BIP86_CHANGE_DESCRIPTOR = Descriptor("tr($MAIN_EXTENDED_PRIVKEY/$BIP86_TEST_CHANGE_PATH/*)", Network.BITCOIN)

lib/src/test/kotlin/org/bitcoindevkit/CreatingWalletTest.kt

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,30 +11,30 @@ class CreatingWalletTest {
1111
inner class Success {
1212
@Test
1313
fun `Create WPKH wallet`() {
14-
val wallet: Wallet = Wallet(
15-
descriptor = BIP84_DESCRIPTOR,
16-
changeDescriptor = BIP84_CHANGE_DESCRIPTOR,
17-
network = Network.TESTNET,
14+
Wallet(
15+
descriptor = TEST_BIP84_DESCRIPTOR,
16+
changeDescriptor = TEST_BIP84_CHANGE_DESCRIPTOR,
17+
network = Network.TESTNET4,
1818
persister = conn
1919
)
2020
}
2121

2222
@Test
2323
fun `Create TR wallet`() {
24-
val wallet: Wallet = Wallet(
25-
descriptor = BIP86_DESCRIPTOR,
26-
changeDescriptor = BIP86_CHANGE_DESCRIPTOR,
27-
network = Network.TESTNET,
24+
Wallet(
25+
descriptor = TEST_BIP86_DESCRIPTOR,
26+
changeDescriptor = TEST_BIP86_CHANGE_DESCRIPTOR,
27+
network = Network.TESTNET4,
2828
persister = conn
2929
)
3030
}
3131

3232
@Test
3333
fun `Create a wallet with a non-extended descriptor`() {
34-
val wallet: Wallet = Wallet(
35-
descriptor = NON_EXTENDED_DESCRIPTOR_0,
36-
changeDescriptor = NON_EXTENDED_DESCRIPTOR_1,
37-
network = Network.TESTNET,
34+
Wallet(
35+
descriptor = TEST_DEFINITE_DESCRIPTOR_0,
36+
changeDescriptor = TEST_DEFINITE_DESCRIPTOR_1,
37+
network = Network.TESTNET4,
3838
persister = conn
3939
)
4040
}
@@ -44,11 +44,11 @@ class CreatingWalletTest {
4444
inner class Failure {
4545
@Test
4646
fun `Descriptors do not match provided network`() {
47-
// The descriptors provided are for Testnet 3, but the wallet attempts to build for mainnet
47+
// The descriptors provided are for Testnet4, but the wallet attempts to build for mainnet
4848
assertFails {
49-
val wallet: Wallet = Wallet(
50-
descriptor = NON_EXTENDED_DESCRIPTOR_0,
51-
changeDescriptor = NON_EXTENDED_DESCRIPTOR_1,
49+
Wallet(
50+
descriptor = TEST_DEFINITE_DESCRIPTOR_0,
51+
changeDescriptor = TEST_DEFINITE_DESCRIPTOR_1,
5252
network = Network.BITCOIN,
5353
persister = conn
5454
)

lib/src/test/kotlin/org/bitcoindevkit/DescriptorTest.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class DescriptorTest {
1313
Descriptor("wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_RECEIVE_PATH/*)", Network.TESTNET)
1414
Descriptor("wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_RECEIVE_PATH/*)", Network.TESTNET4)
1515
Descriptor("wpkh($TEST_EXTENDED_PRIVKEY/$BIP84_TEST_RECEIVE_PATH/*)", Network.SIGNET)
16-
Descriptor("wpkh($MAINNET_EXTENDED_PRIVKEY/$BIP84_MAINNET_RECEIVE_PATH/*)", Network.BITCOIN)
16+
Descriptor("wpkh($MAIN_EXTENDED_PRIVKEY/$BIP84_MAIN_RECEIVE_PATH/*)", Network.BITCOIN)
1717
}
1818

1919
@Test
@@ -22,7 +22,7 @@ class DescriptorTest {
2222
Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/*)", Network.TESTNET)
2323
Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/*)", Network.TESTNET4)
2424
Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/*)", Network.SIGNET)
25-
Descriptor("tr($MAINNET_EXTENDED_PRIVKEY/$BIP86_MAINNET_RECEIVE_PATH/*)", Network.BITCOIN)
25+
Descriptor("tr($MAIN_EXTENDED_PRIVKEY/$BIP86_MAIN_RECEIVE_PATH/*)", Network.BITCOIN)
2626
}
2727

2828
@Test
@@ -31,7 +31,7 @@ class DescriptorTest {
3131
Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/0)", Network.TESTNET)
3232
Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/0)", Network.TESTNET4)
3333
Descriptor("tr($TEST_EXTENDED_PRIVKEY/$BIP86_TEST_RECEIVE_PATH/0)", Network.SIGNET)
34-
Descriptor("tr($MAINNET_EXTENDED_PRIVKEY/$BIP86_MAINNET_RECEIVE_PATH/0)", Network.BITCOIN)
34+
Descriptor("tr($MAIN_EXTENDED_PRIVKEY/$BIP86_MAIN_RECEIVE_PATH/0)", Network.BITCOIN)
3535
}
3636
}
3737

@@ -40,9 +40,9 @@ class DescriptorTest {
4040
@Test
4141
fun `Cannot create addr() descriptor`() {
4242
assertFails {
43-
val descriptor: Descriptor = Descriptor(
43+
Descriptor(
4444
"addr(tb1qhjys9wxlfykmte7ftryptx975uqgd6kcm6a7z4)",
45-
Network.TESTNET
45+
Network.TESTNET4
4646
)
4747
}
4848
}

lib/src/test/kotlin/org/bitcoindevkit/MnemonicTest.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ import kotlin.test.assertEquals
66
class MnemonicTest {
77
@Test
88
fun `Mnemonics create valid descriptors`() {
9-
val mnemonic: Mnemonic = Mnemonic.fromString("space echo position wrist orient erupt relief museum myself grain wisdom tumble")
10-
val descriptorSecretKey: DescriptorSecretKey = DescriptorSecretKey(Network.TESTNET, mnemonic, null)
11-
val descriptor: Descriptor = Descriptor.newBip86(descriptorSecretKey, KeychainKind.EXTERNAL, Network.TESTNET)
9+
val mnemonic: Mnemonic = Mnemonic.fromString(MNEMONIC_AWESOME)
10+
val descriptorSecretKey: DescriptorSecretKey = DescriptorSecretKey(Network.TESTNET4, mnemonic, null)
11+
val descriptor: Descriptor = Descriptor.newBip86(descriptorSecretKey, KeychainKind.EXTERNAL, Network.TESTNET4)
1212

1313
assertEquals(
14-
expected = "tr([be1eec8f/86'/1'/0']tpubDCTtszwSxPx3tATqDrsSyqScPNnUChwQAVAkanuDUCJQESGBbkt68nXXKRDifYSDbeMa2Xg2euKbXaU3YphvGWftDE7ozRKPriT6vAo3xsc/0/*)#m7puekcx",
14+
expected = "tr([5bc5d243/86'/1'/0']tpubDC72NVP1RK5qwy2QdEfWphDsUBAfBu7oiV6jEFooHP8tGQGFVUeFxhgZxuk1j6EQRJ1YsS3th2RyDgReRqCL4zqp4jtuV2z7gbiqDH2iyUS/0/*)#xh44xwsp",
1515
actual = descriptor.toString()
1616
)
1717
}

lib/src/test/kotlin/org/bitcoindevkit/WalletTest.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ class WalletTest {
1111
@Test
1212
fun `Wallet produces valid addresses for its network`() {
1313
val wallet: Wallet = Wallet(
14-
descriptor = BIP84_DESCRIPTOR,
15-
changeDescriptor = BIP84_CHANGE_DESCRIPTOR,
16-
network = Network.TESTNET,
14+
descriptor = TEST_BIP84_DESCRIPTOR,
15+
changeDescriptor = TEST_BIP84_CHANGE_DESCRIPTOR,
16+
network = Network.TESTNET4,
1717
persister = conn
1818
)
1919
val addressInfo: AddressInfo = wallet.revealNextAddress(KeychainKind.EXTERNAL)
@@ -29,9 +29,9 @@ class WalletTest {
2929
@Test
3030
fun `Wallet has 0 balance prior to sync`() {
3131
val wallet: Wallet = Wallet(
32-
descriptor = BIP84_DESCRIPTOR,
33-
changeDescriptor = BIP84_CHANGE_DESCRIPTOR,
34-
network = Network.TESTNET,
32+
descriptor = TEST_BIP84_DESCRIPTOR,
33+
changeDescriptor = TEST_BIP84_CHANGE_DESCRIPTOR,
34+
network = Network.TESTNET4,
3535
persister = conn
3636
)
3737

0 commit comments

Comments
 (0)