Commit Graph

3724 Commits

Author SHA1 Message Date
Sean Gilligan
0d67977ca1 build.gradle: Update examples and tools submodules to JDK 11 2022-01-04 03:03:44 +01:00
Sean Gilligan
dda89aad57 Network: move class from tools subproject to core (o.b.utils) 2022-01-03 21:59:19 +01:00
Sean Gilligan
25454bd624 ECKey: Simplify comparators using JDK 8 methods 2022-01-03 00:33:40 +01:00
Andreas Schildbach
9641fde9e8 TransactionConfidence: make enum field final 2022-01-01 19:03:55 +01:00
Andreas Schildbach
bf76468242 RejectMessage: make enum field final 2022-01-01 19:03:55 +01:00
Sean Gilligan
3c3279fa04 tools: Add id() and networkParameters() methods to Network (was NetworkEnum)
* Rename from `NetworkEnum` to `Network`
* Use new methods to simplify BuildCheckpoints and WalletTool
* Remove unused imports
2022-01-01 14:42:04 +01:00
Sean Gilligan
bd6e1c6a09 build.gradle: Add testOnJdk8 task (if Gradle > 6.7)
* testOnJdk8 is not run by default
* If testJdk8 Gradle property is set, run testOnJdk8 as part of `check`
* Set testJdk8 in gradle.yml Github Actions workflow
2022-01-01 13:53:39 +01:00
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