Commit graph

3717 commits

Author SHA1 Message Date
Sean Gilligan
3f25626837 ECKey: Remove deprecated methods/constructors 2021-12-31 10:01:15 +01:00
Sean Gilligan
3545e3ed02 ECKey: Remove unused FAKE_SIGNATURES static boolean 2021-12-30 18:28:38 -08:00
Andreas Schildbach
d3d5edbcbd NetworkEnum: delete unused class from examples 2021-12-25 11:26:47 +01:00
Andreas Schildbach
49a9cddb18 README.md: update Android runtime requirement to Android 7.0
The Java runtime requirement is left unchanged at Java 8.
2021-12-24 11:43:58 +01:00
Sean Gilligan
a2cf303655 build.gradle: require JDK 11 for the build
Uses javac -release option to validate API for older JDK.
2021-12-24 11:35:37 +01:00
Sean Gilligan
74c1c2228e Github Actions: update Gradle to 7.3.2
Notable changes:

* Gradle 7.3 is the first Gradle release to officially
  support JDK 17
* Gradle 7.3.2 includes log4j mitigations to protect against
  build dependencies pulling in the bad log4j.
2021-12-23 09:53:38 +01:00
Andreas Schildbach
fe749281c6 build.gradle: update Hamcrest to 2.2 2021-12-14 15:57:01 +01:00
Andreas Schildbach
acecf4fc25 build.gradle: update EqualsVerifier to 3.7.2 2021-12-14 15:53:39 +01:00
Andreas Schildbach
88d05aca61 build.gradle: update H2 database to 1.3.176 2021-12-14 15:49:41 +01:00
Andreas Schildbach
c271a145aa build.gradle: update Jackson to 2.13.0 2021-12-14 15:37:14 +01:00
Andreas Schildbach
450052a50d build.gradle: update EasyMock to 4.3 2021-12-14 15:29:07 +01:00
Andreas Schildbach
c6157a7573 build.gradle: update BouncyCastle to 1.70 2021-12-14 11:50:49 +01:00
Andreas Schildbach
d036581344 build.gradle: update JUnit to 4.13.2 2021-12-14 11:45:39 +01:00
Andreas Schildbach
04378aa638 TransactionOutput: fix not resolving P2TR addresses in toString() 2021-11-22 12:16:15 +01:00
Andreas Schildbach
3caad70759 BIP32Test: new test vectors for hardened derivation with leading zeros 2021-11-18 09:35:59 +01:00
Andreas Schildbach
4ea8546cd3 Script: take into account the various witness length fields in getNumberOfBytesRequiredToSpend()
This (hopefully entirely) fixes the slight fee underspending for spends from P2WPKH.
2021-11-17 09:01:03 +01:00
Andreas Schildbach
26cc0db3e2 Wallet, Transaction: use Guava IntMath.divide() for the round-up divisions
The previous trick was confusing.
2021-11-17 08:51:21 +01:00
Marko Lazaric
964adb1e63 Script: add opcode name to disabled opcode exception message 2021-11-17 01:28:57 +01:00
Andreas Schildbach
cc64779e28 AUTHORS: update from git 2021-11-03 09:20:32 +01:00
Andreas Schildbach
3d5e9d6b70 org.bitcoin.production.checkpoints.txt: Refresh bundled checkpoints. 2021-10-24 21:02:09 +02:00
Andreas Schildbach
624284ea21 README.md: visually separate two command lines 2021-10-22 14:54:43 +02:00
Andreas Schildbach
0b5d40e49f Remove references to a specific testnet faucet. 2021-10-22 09:08:21 +02:00
Andreas Schildbach
fd70fe2a0e 0.17-SNAPSHOT 2021-10-10 12:09:32 +02:00
Andreas Schildbach
4b243a615a Script, SegwitAddress: detect taproot scripts and decode them into addresses 2021-10-09 16:57:09 +02:00
Andreas Schildbach
559f6a2711 ScriptTest: add P2WPKH and P2WSH testcases to getToAddress() 2021-10-06 20:27:49 +02:00
Andreas Schildbach
05dfddc98c make sure to use position(int), flip() and rewind() only from Buffer rather than MappedByteBuffer
Without these casts, on some JDKs it links against overloaded methods in MappedByteBuffer and Andoid doesn't have them.
2021-10-06 18:49:36 +02:00
Andreas Schildbach
e1aca6db53 build.gradle: add publishing section so that the publishToMavenLocal task can be used 2021-10-06 00:20:33 +02:00
Andreas Schildbach
78f44e68c4 build.gradle: update OkHttp to 3.14.9 2021-10-05 17:22:47 +02:00
Andreas Schildbach
89f851cf75 build.gradle: update protobuf-javalite to 3.18.0 2021-10-05 17:20:29 +02:00
Andreas Schildbach
183986c980 Bech32, SegwitAddress: Implement Bech32m format for v1+ witness addresses. 2021-09-29 23:40:57 +02:00
Andreas Schildbach
4dc4cf743d ECKey: Move compressPoint()/decompressPoint() helpers to LazyECPoint.compress()/decompress().
Deprecate the old methods.
2021-09-29 22:58:05 +02:00
Andreas Schildbach
98bc701c2b ECKey: Inline getPointWithCompression() helper. 2021-09-29 22:58:05 +02:00
Andreas Schildbach
484275678d WalletTool: Implement two coin selection options for sending, --select-addr and --select-output. 2021-09-29 22:46:59 +02:00
Andreas Schildbach
d3505b8949 WalletTool: When specifying ALL as a value of an output, use the correct BalanceType suitable for the value of --allow-unconfirmed. 2021-09-29 22:46:59 +02:00
Andreas Schildbach
5b785f8c9c README.md: update API requirement to Java 8 or Android 6 2021-09-29 21:38:48 +02:00
Andreas Schildbach
d0f6e0afca build.gradle: Update Guava to 31.0.1-android. 2021-09-29 19:13:39 +02:00
Andreas Schildbach
e9b42eae6d build.gradle: produce Java 8 bytecode for the core module
It will still only use the Java 7 API.
2021-09-28 16:38:31 +02:00
Andreas Schildbach
d6851edb2f build.gradle: Update OkHttp to 3.12.13. 2021-09-25 23:36:34 +02:00
Andreas Schildbach
2882d63616 build.gradle: Update BouncyCastle to 1.69. 2021-09-25 23:23:12 +02:00
Andreas Schildbach
47660f6418 build.gradle: migrate from protobuf-java to protobuf-javalite
This commit contains rather hard to review diffs to the protobuf test datasets in .txt format.
To aid the review, this Python script can be used to convert the data from the old to the new
format:

```
import sys

file = open(sys.argv[1])
outfile = open(sys.argv[1] + ".lite", "w")
line = file.readline()
lines = []

def sortAndPrint(group, removeLastLB=False, removeFirstLB=False):
    group.sort()
    if removeFirstLB and group[0] == "\n":
        group.remove("\n")
    for i in range(len(group)):
        if i == len(group) - 1 and removeLastLB:
            group[i] = group[i].rstrip()
        print(group[i], end="", file=outfile)

def sign32neg(value):
    if 0x80000000 <= value <= 0xFFFFFFFF:
        value &= 0x7FFFFFFF
        value = int(value)
        value = ~value
        value ^= 0x7FFFFFFF
    return value

def processPath(path):
    parts = path.rstrip().split(":")
    number = int(parts[1].lstrip())
    if number >= 0x80000000:
        number = sign32neg(number)
    return parts[0] + ": " + str(number) + "\n"

groupcount = 0
while len(line) > 0:
    if line.startswith("type:"):
        if len(lines):
            sortAndPrint(lines, removeFirstLB=groupcount==0)
            groupcount += 1
        lines.clear()
        lines.append(line)
    elif line.find("deterministic_key {") != -1:
        structure = line
        innerlines = []
        line = file.readline()
        while not line.startswith('}'):
            if line.find("path") != -1:  # preserve order of paths
                pathlines = processPath(line)
                line = file.readline()
                if line.startswith('}'):
                    innerlines.append(pathlines)
                    continue
                while line.find("path") != -1:
                    pathlines += processPath(line)
                    line = file.readline()
                innerlines.append(pathlines)
                if line.startswith('}'):
                    continue
            if line.startswith("  sigsRequiredToSpend"):
                line = line.replace("sigsRequiredToSpend", "sigs_required_to_spend")
            innerlines.append(line)
            line = file.readline()
        innerlines.sort()
        for l in innerlines:
            structure += l
        structure += line.rstrip() + "\n"
        lines.append(structure)
    elif line.find("path") != -1:  # preserve order of paths
        accountpathlines = processPath(line)
        line = file.readline()
        while line.find("path") != -1:
            accountpathlines += processPath(line)
            line = file.readline()
        lines.append(accountpathlines)
        lines.append(line)
    else:
        lines.append(line)
    line = file.readline()
print(file=outfile)
sortAndPrint(lines, removeLastLB=True)
file.close()
outfile.close()
```
2021-09-25 11:00:42 +02:00
Andreas Schildbach
f859f571ca BasicKeyChain, DeterministicKeyChain, WalletTool: use only protobuf API that is available also on protobuf-lite
This is meant to aid migration to protobuf-lite.
2021-09-24 11:33:06 +02:00
Sean Gilligan
da5202c3b7 GitHub Actions: add special case for Gradle 4.10/JDK11/Ubuntu
This is the “closest” Github Actions config we can get to our
target Debian build (Debian Bullseye/JDK11/Debian Gradle 4.4).
2021-09-23 21:37:30 +02:00
Sean Gilligan
744480be89 GitHub Actions: in the build matrix, update JDK 16 to JDK 17 LTS 2021-09-23 21:29:56 +02:00
Sean Gilligan
839139f8fb walletfx: Initialize scene earlier in MainController 2021-09-23 09:25:36 -07:00
Sean Gilligan
0f8cc09073 walletfx: Improve calculation of estimatedKeyDerivationTime
* Make the static field `estimatedKeyDerivationTime` private
* Refactor the calculation to a private, side-effect free function
* Replace `estimatedKeyDerivationTimeMsec()` with `initEstimatedKeyDerivationTime()`
** Don’t return a value that wasn’t unused anyway
** Make better use of CompletableFuture API
* Platform.runLater wasn’t needed because no JavaFX functions are called
2021-09-23 17:55:19 +02:00
Sean Gilligan
36243ca24e walletfx: factor out WalletApplication::startWalletAppKit 2021-09-23 07:30:15 -07:00
Sean Gilligan
188a0a7e45 walletfx: replace MainController.instance with app.mainWindowController() 2021-09-23 01:04:05 -07:00
Sean Gilligan
85725a18a6 walletfx: WalletApplication to improve encapsulation
* Make all public fields private and wrap with accessors
* Make `WalletAppKit` (was confusingly named `bitcoin`) field a member not a static
* Rename `bitcoin` to `walletAppKit`
2021-09-23 09:57:18 +02:00
Sean Gilligan
515a558ec2 walletfx: Extract MainWindowController abstract base class
* Extract `MainWindowController` from `wallettemplate.MainController`
* WalletApplication: `wallettemplate.MainController` with `MainWindowController`
2021-09-22 12:16:45 -07:00
Sean Gilligan
d1aa5e3d36 walletfx: Extract WalletApplication from WalletTemplate
* Extract abstract class `WalletApplication` from `WalletTemplate`
* `WalletTemplate` implements `loadController()` with resource names
* `MainController`: Add `scene` member and `scene()` method
2021-09-22 11:36:04 -07:00