diff --git a/ckb/src/main/java/org/nervos/ckb/CkbRpcApi.java b/ckb/src/main/java/org/nervos/ckb/CkbRpcApi.java index 8d761e6d..11965349 100644 --- a/ckb/src/main/java/org/nervos/ckb/CkbRpcApi.java +++ b/ckb/src/main/java/org/nervos/ckb/CkbRpcApi.java @@ -106,6 +106,16 @@ default PackedTransactionWithStatus getPackedTransaction(@Nonnull byte[] transac byte[] sendTransaction(Transaction transaction, OutputsValidator outputsValidator) throws IOException; + byte[] sendTestTransaction(Transaction transaction) throws IOException; + + byte[] sendTestTransaction(Transaction transaction, OutputsValidator outputsValidator) + throws IOException; + + byte[] testTxPoolAccept(Transaction transaction) throws IOException; + + byte[] testTxPoolAccept(Transaction transaction, OutputsValidator outputsValidator) + throws IOException; + NodeInfo localNodeInfo() throws IOException; List getPeers() throws IOException; diff --git a/ckb/src/main/java/org/nervos/ckb/service/Api.java b/ckb/src/main/java/org/nervos/ckb/service/Api.java index 29615aab..9cbeeae7 100644 --- a/ckb/src/main/java/org/nervos/ckb/service/Api.java +++ b/ckb/src/main/java/org/nervos/ckb/service/Api.java @@ -297,6 +297,40 @@ public RawTxPoolVerbose getRawTxPoolVerbose() throws IOException { "get_raw_tx_pool", Collections.singletonList(true), RawTxPoolVerbose.class); } + @Override + public byte[] sendTestTransaction(Transaction transaction) throws IOException { + return rpcService.post( + "send_test_transaction", + Arrays.asList(Convert.parseTransaction(transaction), OutputsValidator.PASSTHROUGH), + byte[].class); + } + + @Override + public byte[] sendTestTransaction(Transaction transaction, OutputsValidator outputsValidator) + throws IOException { + return rpcService.post( + "send_test_transaction", + Arrays.asList(Convert.parseTransaction(transaction), outputsValidator), + byte[].class); + } + + @Override + public byte[] testTxPoolAccept(Transaction transaction) throws IOException { + return rpcService.post( + "test_tx_pool_accept", + Arrays.asList(Convert.parseTransaction(transaction), OutputsValidator.PASSTHROUGH), + byte[].class); + } + + @Override + public byte[] testTxPoolAccept(Transaction transaction, OutputsValidator outputsValidator) + throws IOException { + return rpcService.post( + "test_tx_pool_accept", + Arrays.asList(Convert.parseTransaction(transaction), outputsValidator), + byte[].class); + } + @Override public byte[] sendTransaction(Transaction transaction) throws IOException { return rpcService.post( diff --git a/core/src/main/java/org/nervos/ckb/type/SyncState.java b/core/src/main/java/org/nervos/ckb/type/SyncState.java index 488f1802..5b307a6f 100644 --- a/core/src/main/java/org/nervos/ckb/type/SyncState.java +++ b/core/src/main/java/org/nervos/ckb/type/SyncState.java @@ -1,12 +1,20 @@ package org.nervos.ckb.type; public class SyncState { - public boolean ibd; + public byte[] assumeValidTarget; + public boolean assumeValidTargetReached; public long bestKnownBlockNumber; public long bestKnownBlockTimestamp; - public long orphanBlocksCount; - public long inflightBlocksCount; public long fastTime; - public long normalTime; + public boolean ibd; + public long inflightBlocksCount; public long lowTime; + public long minChainWork; + public boolean minChainWorkReached; + public long normalTime; + public long orphanBlocksCount; + public byte[] tipHash; + public long tipNumber; + public byte[] unverifiedTipHash; + public long unverifiedTipNumber; } diff --git a/core/src/main/java/org/nervos/ckb/type/TxPoolInfo.java b/core/src/main/java/org/nervos/ckb/type/TxPoolInfo.java index 853d9c4c..771b88d8 100644 --- a/core/src/main/java/org/nervos/ckb/type/TxPoolInfo.java +++ b/core/src/main/java/org/nervos/ckb/type/TxPoolInfo.java @@ -10,6 +10,8 @@ public class TxPoolInfo { public long minFeeRate; public byte[] tipHash; public long tipNumber; - public long txSizeLimit; public long maxTxPoolSize; + public long minRbfRate; + public long txSizeLimit; + public long verifyQueueSize; }