diff --git a/pom.xml b/pom.xml
index a5fb1da8..4ca61d1e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,20 +6,23 @@
0.9
jar
- UTF-8
- 1.61
- 1.2.2
- 2.5.0
- 2.4.1
- 9.4.17.v20190418
- 2.27
- 2.11.0
- 1.7.12
- 2.0.6
- 3.19.0
- 3.5.0
- 1.1.0
+ 0.15.4
+ 1.63
${maven.build.timestamp}
+ 3.6
+ 1.8
+ 1.2.2
+ 28.1-jre
+ 2.5.0
+ 2.5.0
+ 2.29.1
+ 9.4.20.v20190813
+ 2.12.1
+ UTF-8
+ 1.7.12
+ 2.0.9
+ 3.23.8
+ 1.1.0
src/main/java
@@ -32,11 +35,18 @@
- maven-compiler-plugin
- 3.5.1
+ org.codehaus.mojo
+ versions-maven-plugin
+ 2.5
-
- 1.8
+ false
+
+
+
+ maven-compiler-plugin
+ 3.8.0
+
+ 11
@@ -309,7 +319,7 @@
org.hsqldb
sqltool
- ${sqltool.version}
+ ${hsqldb-sqltool.version}
test
@@ -322,7 +332,7 @@
org.bitcoinj
bitcoinj-core
- 0.14.7
+ ${bitcoin.version}
@@ -333,7 +343,7 @@
org.apache.commons
commons-text
- 1.4
+ ${commons-text.version}
@@ -356,12 +366,12 @@
commons-net
commons-net
- 3.3
+ ${commons-net.version}
com.google.guava
guava
- 25.0-jre
+ ${guava.version}
diff --git a/src/main/java/org/qora/crosschain/BTC.java b/src/main/java/org/qora/crosschain/BTC.java
index 6ee8905a..f1d3ecf2 100644
--- a/src/main/java/org/qora/crosschain/BTC.java
+++ b/src/main/java/org/qora/crosschain/BTC.java
@@ -226,7 +226,7 @@ public class BTC {
protected Wallet createEmptyWallet() {
ECKey dummyKey = new ECKey();
- KeyChainGroup keyChainGroup = new KeyChainGroup(params);
+ KeyChainGroup keyChainGroup = KeyChainGroup.createBasic(params);
keyChainGroup.importKeys(dummyKey);
Wallet wallet = new Wallet(params, keyChainGroup);
@@ -242,12 +242,12 @@ public class BTC {
WalletCoinsReceivedEventListener coinsReceivedListener = new WalletCoinsReceivedEventListener() {
@Override
public void onCoinsReceived(Wallet wallet, Transaction tx, Coin prevBalance, Coin newBalance) {
- System.out.println("Coins received via transaction " + tx.getHashAsString());
+ System.out.println("Coins received via transaction " + tx.getTxId().toString());
}
};
wallet.addCoinsReceivedEventListener(coinsReceivedListener);
- Address address = Address.fromBase58(params, base58Address);
+ Address address = Address.fromString(params, base58Address);
wallet.addWatchedAddress(address, startTime);
StoredBlock checkpoint = manager.getCheckpointBefore(startTime);
diff --git a/src/main/java/org/qora/repository/hsqldb/HSQLDBRepository.java b/src/main/java/org/qora/repository/hsqldb/HSQLDBRepository.java
index 5c7897ac..79e07e01 100644
--- a/src/main/java/org/qora/repository/hsqldb/HSQLDBRepository.java
+++ b/src/main/java/org/qora/repository/hsqldb/HSQLDBRepository.java
@@ -385,7 +385,6 @@ public class HSQLDBRepository implements Repository {
* @return ResultSet, or null if there are no found rows
* @throws SQLException
*/
- @SuppressWarnings("resource")
public ResultSet checkedExecute(String sql, Object... objects) throws SQLException {
PreparedStatement preparedStatement = this.prepareStatement(sql);
diff --git a/src/main/java/org/qora/transaction/Transaction.java b/src/main/java/org/qora/transaction/Transaction.java
index 2b990dfe..be713b95 100644
--- a/src/main/java/org/qora/transaction/Transaction.java
+++ b/src/main/java/org/qora/transaction/Transaction.java
@@ -3,6 +3,7 @@ package org.qora.transaction;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.math.MathContext;
+import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
@@ -347,7 +348,7 @@ public abstract class Transaction {
if (recommendedFee.compareTo(BlockChain.getInstance().getUnitFee()) <= 0) {
recommendedFee = BlockChain.getInstance().getUnitFee();
} else {
- recommendedFee = recommendedFee.setScale(0, BigDecimal.ROUND_UP);
+ recommendedFee = recommendedFee.setScale(0, RoundingMode.CEILING);
}
return recommendedFee.setScale(8);
diff --git a/src/test/java/org/qora/test/BTCACCTTests.java b/src/test/java/org/qora/test/BTCACCTTests.java
index 2afb75f2..943d6b96 100644
--- a/src/test/java/org/qora/test/BTCACCTTests.java
+++ b/src/test/java/org/qora/test/BTCACCTTests.java
@@ -13,6 +13,7 @@ import org.bitcoinj.core.Address;
import org.bitcoinj.core.Coin;
import org.bitcoinj.core.ECKey;
import org.bitcoinj.core.InsufficientMoneyException;
+import org.bitcoinj.core.LegacyAddress;
import org.bitcoinj.core.NetworkParameters;
import org.bitcoinj.core.Sha256Hash;
import org.bitcoinj.core.Transaction;
@@ -24,6 +25,7 @@ import org.bitcoinj.crypto.TransactionSignature;
import org.bitcoinj.kits.WalletAppKit;
import org.bitcoinj.params.TestNet3Params;
import org.bitcoinj.script.Script;
+import org.bitcoinj.script.Script.ScriptType;
import org.bitcoinj.script.ScriptBuilder;
import org.bitcoinj.script.ScriptChunk;
import org.bitcoinj.script.ScriptOpCodes;
@@ -120,11 +122,11 @@ public class BTCACCTTests {
kit.wallet().importKey(recipientKey);
byte[] senderPubKey = senderKey.getPubKey();
- System.out.println("Sender address: " + senderKey.toAddress(params).toBase58());
+ System.out.println("Sender address: " + Address.fromKey(params, senderKey, ScriptType.P2PKH).toString());
System.out.println("Sender pubkey: " + HashCode.fromBytes(senderPubKey).toString());
byte[] recipientPubKey = recipientKey.getPubKey();
- System.out.println("Recipient address: " + recipientKey.toAddress(params).toBase58());
+ System.out.println("Recipient address: " + Address.fromKey(params, recipientKey, ScriptType.P2PKH).toString());
System.out.println("Recipient pubkey: " + HashCode.fromBytes(recipientPubKey).toString());
byte[] redeemScriptBytes = buildRedeemScript(secret, senderPubKey, recipientPubKey, lockTime);
@@ -132,20 +134,20 @@ public class BTCACCTTests {
byte[] redeemScriptHash = hash160(redeemScriptBytes);
- Address p2shAddress = Address.fromP2SHHash(params, redeemScriptHash);
- System.out.println("P2SH address: " + p2shAddress.toBase58());
+ Address p2shAddress = LegacyAddress.fromScriptHash(params, redeemScriptHash);
+ System.out.println("P2SH address: " + p2shAddress.toString());
// Send amount to P2SH address
Transaction fundingTransaction = buildFundingTransaction(params, Sha256Hash.wrap(prevTxHash), prevTxOutputIndex, prevTxBalance, senderKey,
sendValue.add(fee), redeemScriptHash);
- System.out.println("Sending " + sendValue.add(fee).toPlainString() + " to " + p2shAddress.toBase58());
+ System.out.println("Sending " + sendValue.add(fee).toPlainString() + " to " + p2shAddress.toString());
if (!usePreviousFundingTx)
broadcastWithConfirmation(kit, fundingTransaction);
if (doRefundNotRedeem) {
// Refund
- System.out.println("Refunding " + sendValue.toPlainString() + " back to " + senderKey.toAddress(params));
+ System.out.println("Refunding " + sendValue.toPlainString() + " back to " + Address.fromKey(params, senderKey, ScriptType.P2PKH).toString());
now = System.currentTimeMillis() / 1000L;
long refundLockTime = now - 60 * 30; // 30 minutes in the past, needs to before 'now' and before "median block time" (median of previous 11 block
@@ -158,7 +160,7 @@ public class BTCACCTTests {
broadcastWithConfirmation(kit, refundTransaction);
} else {
// Redeem
- System.out.println("Redeeming " + sendValue.toPlainString() + " to " + recipientKey.toAddress(params));
+ System.out.println("Redeeming " + sendValue.toPlainString() + " to " + Address.fromKey(params, recipientKey, ScriptType.P2PKH).toString());
TransactionOutPoint fundingOutPoint = new TransactionOutPoint(params, 0, fundingTransaction);
Transaction redeemTransaction = buildRedeemTransaction(params, fundingOutPoint, recipientKey, sendValue, secret, redeemScriptBytes);
@@ -168,7 +170,7 @@ public class BTCACCTTests {
kit.wallet().cleanup();
for (Transaction transaction : kit.wallet().getTransactionPool(Pool.PENDING).values())
- System.out.println("Pending tx: " + transaction.getHashAsString());
+ System.out.println("Pending tx: " + transaction.getTxId().toString());
}
private static final byte[] redeemScript1 = HashCode.fromString("76a820").asBytes();
@@ -211,11 +213,11 @@ public class BTCACCTTests {
// Fixed amount to P2SH
fundingTransaction.addOutput(value, ScriptBuilder.createP2SHOutputScript(redeemScriptHash));
// Change to sender
- fundingTransaction.addOutput(balance.minus(value).minus(fee), ScriptBuilder.createOutputScript(sigKey.toAddress(params)));
+ fundingTransaction.addOutput(balance.minus(value).minus(fee), ScriptBuilder.createOutputScript(Address.fromKey(params, sigKey, ScriptType.P2PKH)));
// Input
// We create fake "to address" scriptPubKey for prev tx so our spending input is P2PKH type
- Script fakeScriptPubKey = ScriptBuilder.createOutputScript(sigKey.toAddress(params));
+ Script fakeScriptPubKey = ScriptBuilder.createOutputScript(Address.fromKey(params, sigKey, ScriptType.P2PKH));
TransactionOutPoint prevOut = new TransactionOutPoint(params, outputIndex, prevTxHash);
fundingTransaction.addSignedInput(prevOut, fakeScriptPubKey, sigKey);
@@ -228,7 +230,7 @@ public class BTCACCTTests {
redeemTransaction.setVersion(2);
// Outputs
- redeemTransaction.addOutput(value, ScriptBuilder.createOutputScript(recipientKey.toAddress(params)));
+ redeemTransaction.addOutput(value, ScriptBuilder.createOutputScript(Address.fromKey(params, recipientKey, ScriptType.P2PKH)));
// Input
byte[] recipientPubKey = recipientKey.getPubKey();
@@ -265,7 +267,7 @@ public class BTCACCTTests {
refundTransaction.setVersion(2);
// Outputs
- refundTransaction.addOutput(value, ScriptBuilder.createOutputScript(senderKey.toAddress(params)));
+ refundTransaction.addOutput(value, ScriptBuilder.createOutputScript(Address.fromKey(params, senderKey, ScriptType.P2PKH)));
// Input
byte[] recipientPubKey = senderKey.getPubKey();
@@ -299,7 +301,7 @@ public class BTCACCTTests {
}
private void broadcastWithConfirmation(WalletAppKit kit, Transaction transaction) {
- System.out.println("Broadcasting tx: " + transaction.getHashAsString());
+ System.out.println("Broadcasting tx: " + transaction.getTxId().toString());
System.out.println("TX hex: " + HashCode.fromBytes(transaction.bitcoinSerialize()).toString());
System.out.println("Number of connected peers: " + kit.peerGroup().numConnectedPeers());
@@ -312,7 +314,7 @@ public class BTCACCTTests {
}
// wait for confirmation
- System.out.println("Waiting for confirmation of tx: " + transaction.getHashAsString());
+ System.out.println("Waiting for confirmation of tx: " + transaction.getTxId().toString());
try {
transaction.getConfidence().getDepthFuture(1).get();
@@ -320,7 +322,7 @@ public class BTCACCTTests {
throw new RuntimeException("Transaction confirmation failed", e);
}
- System.out.println("Confirmed tx: " + transaction.getHashAsString());
+ System.out.println("Confirmed tx: " + transaction.getTxId().toString());
}
/** Convert int to little-endian byte array */
diff --git a/src/test/java/org/qora/test/ByteArrayTests.java b/src/test/java/org/qora/test/ByteArrayTests.java
index 7ae43cd9..eb40eba1 100644
--- a/src/test/java/org/qora/test/ByteArrayTests.java
+++ b/src/test/java/org/qora/test/ByteArrayTests.java
@@ -78,6 +78,7 @@ public class ByteArrayTests {
}
@Test
+ @SuppressWarnings("unlikely-arg-type")
public void testCompareBoxedWithPrimitive() {
byte[] testValue = testValues.get(0);
ByteArray ba1 = new ByteArray(testValue);
@@ -90,6 +91,7 @@ public class ByteArrayTests {
}
@Test
+ @SuppressWarnings("unlikely-arg-type")
public void testMapContainsKey() {
Map testMap = new HashMap<>();
fillMap(testMap);
diff --git a/src/test/java/org/qora/test/common/ApiCommon.java b/src/test/java/org/qora/test/common/ApiCommon.java
index 02fa3f8b..2707b2a9 100644
--- a/src/test/java/org/qora/test/common/ApiCommon.java
+++ b/src/test/java/org/qora/test/common/ApiCommon.java
@@ -34,7 +34,7 @@ public class ApiCommon extends Common {
public static Object buildResource(Class> resourceClass) {
try {
- Object resource = resourceClass.newInstance();
+ Object resource = resourceClass.getDeclaredConstructor().newInstance();
Field requestField = resourceClass.getDeclaredField("request");
requestField.setAccessible(true);