From 03b70d34ef08529943e1d2c2a80468fb2a891e3d Mon Sep 17 00:00:00 2001 From: Anton Kurako Date: Mon, 8 Sep 2025 13:56:50 +0300 Subject: [PATCH] [3.0.0-SNAPSHOT] Updated CI with key Added more toString/equalsHashcode contracts --- .github/workflows/master.yml | 2 + .github/workflows/publish-release.yml | 2 + .github/workflows/publish-snapshot.yml | 2 + .github/workflows/pull-request.yml | 2 + .../api/etherscan/model/proxy/BlockProxy.java | 101 ++++++++++-------- .../etherscan/model/proxy/ReceiptProxy.java | 81 ++++++++------ .../api/etherscan/model/proxy/TxProxy.java | 86 ++++++++------- .../model/proxy/utility/BaseProxyTO.java | 26 +++++ .../model/proxy/utility/BlockProxyTO.java | 25 +++++ .../model/proxy/utility/ErrorProxyTO.java | 25 +++++ .../model/proxy/utility/StringProxyTO.java | 26 +++++ .../model/proxy/utility/TxInfoProxyTO.java | 25 +++++ .../model/proxy/utility/TxProxyTO.java | 25 +++++ .../etherscan/model/query/LogQueryImpl.java | 23 ++++ .../etherscan/model/query/LogTopicQuadro.java | 40 +++++++ .../etherscan/model/query/LogTopicSingle.java | 27 +++++ .../etherscan/model/query/LogTopicTriple.java | 34 ++++++ .../etherscan/model/query/LogTopicTuple.java | 30 ++++++ 18 files changed, 468 insertions(+), 114 deletions(-) diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index 9892f9c..a25717d 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -28,6 +28,8 @@ jobs: - name: Test run: './gradlew test jacocoTestReport' + env: + ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY }} - name: SonarQube if: matrix.java == '17' diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 6555593..ed10cc4 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -22,6 +22,8 @@ jobs: - name: Test run: './gradlew test jacocoTestReport' + env: + ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY_PUBLISH }} - name: SonarQube run: './gradlew sonar --info' diff --git a/.github/workflows/publish-snapshot.yml b/.github/workflows/publish-snapshot.yml index cc95412..4a4d958 100644 --- a/.github/workflows/publish-snapshot.yml +++ b/.github/workflows/publish-snapshot.yml @@ -32,6 +32,8 @@ jobs: - name: Test run: './gradlew test jacocoTestReport' + env: + ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY_PUBLISH }} - name: Publish Snapshot run: './gradlew publish' diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 99940ee..666019d 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -30,6 +30,8 @@ jobs: - name: Test run: './gradlew test jacocoTestReport' + env: + ETHERSCAN_API_KEY: ${{ secrets.ETHERSCAN_API_KEY }} - name: SonarQube if: matrix.java == '17' diff --git a/src/main/java/io/goodforgod/api/etherscan/model/proxy/BlockProxy.java b/src/main/java/io/goodforgod/api/etherscan/model/proxy/BlockProxy.java index a16fb21..b138c14 100644 --- a/src/main/java/io/goodforgod/api/etherscan/model/proxy/BlockProxy.java +++ b/src/main/java/io/goodforgod/api/etherscan/model/proxy/BlockProxy.java @@ -143,48 +143,6 @@ public List getTransactions() { } // - @Override - public boolean equals(Object o) { - if (this == o) - return true; - if (!(o instanceof BlockProxy)) - return false; - BlockProxy that = (BlockProxy) o; - return Objects.equals(number, that.number) && Objects.equals(hash, that.hash) - && Objects.equals(parentHash, that.parentHash) && Objects.equals(nonce, that.nonce); - } - - @Override - public int hashCode() { - return Objects.hash(number, hash, parentHash, nonce); - } - - @Override - public String toString() { - return "BlockProxy{" + - "number=" + number + - ", hash=" + hash + - ", parentHash=" + parentHash + - ", stateRoot=" + stateRoot + - ", size=" + size + - ", difficulty=" + difficulty + - ", totalDifficulty=" + totalDifficulty + - ", timestamp=" + timestamp + - ", miner=" + miner + - ", nonce=" + nonce + - ", extraData=" + extraData + - ", logsBloom=" + logsBloom + - ", mixHash=" + mixHash + - ", gasUsed=" + gasUsed + - ", gasLimit=" + gasLimit + - ", sha3Uncles=" + sha3Uncles + - ", uncles=" + uncles + - ", receiptsRoot=" + receiptsRoot + - ", transactionsRoot=" + transactionsRoot + - ", transactions=" + transactions + - '}'; - } - @Override public int compareTo(@NotNull BlockProxy o) { return Long.compare(getNumber(), o.getNumber()); @@ -353,4 +311,63 @@ public BlockProxy build() { return blockProxy; } } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + BlockProxy that = (BlockProxy) o; + return Objects.equals(number, that.number) && Objects.equals(_number, that._number) && Objects.equals(hash, that.hash) + && Objects.equals(parentHash, that.parentHash) && Objects.equals(stateRoot, that.stateRoot) + && Objects.equals(size, that.size) && Objects.equals(_size, that._size) + && Objects.equals(difficulty, that.difficulty) && Objects.equals(totalDifficulty, that.totalDifficulty) + && Objects.equals(timestamp, that.timestamp) && Objects.equals(_timestamp, that._timestamp) + && Objects.equals(miner, that.miner) && Objects.equals(nonce, that.nonce) + && Objects.equals(extraData, that.extraData) && Objects.equals(logsBloom, that.logsBloom) + && Objects.equals(mixHash, that.mixHash) && Objects.equals(gasUsed, that.gasUsed) + && Objects.equals(_gasUsed, that._gasUsed) && Objects.equals(gasLimit, that.gasLimit) + && Objects.equals(_gasLimit, that._gasLimit) && Objects.equals(sha3Uncles, that.sha3Uncles) + && Objects.equals(uncles, that.uncles) && Objects.equals(receiptsRoot, that.receiptsRoot) + && Objects.equals(transactionsRoot, that.transactionsRoot) && Objects.equals(transactions, that.transactions); + } + + @Override + public int hashCode() { + return Objects.hash(number, number, hash, parentHash, stateRoot, size, size, difficulty, totalDifficulty, timestamp, + timestamp, miner, nonce, extraData, logsBloom, mixHash, gasUsed, gasUsed, gasLimit, gasLimit, sha3Uncles, uncles, + receiptsRoot, transactionsRoot, transactions); + } + + @Override + public String toString() { + return "BlockProxy{" + + "number=" + number + + ", number=" + _number + + ", hash=" + hash + + ", parentHash=" + parentHash + + ", stateRoot=" + stateRoot + + ", size=" + size + + ", size=" + _size + + ", difficulty=" + difficulty + + ", totalDifficulty=" + totalDifficulty + + ", timestamp=" + timestamp + + ", timestamp=" + _timestamp + + ", miner=" + miner + + ", nonce=" + nonce + + ", extraData=" + extraData + + ", logsBloom=" + logsBloom + + ", mixHash=" + mixHash + + ", gasUsed=" + gasUsed + + ", gasUsed=" + _gasUsed + + ", gasLimit=" + gasLimit + + ", gasLimit=" + _gasLimit + + ", sha3Uncles=" + sha3Uncles + + ", uncles=" + uncles + + ", receiptsRoot=" + receiptsRoot + + ", transactionsRoot=" + transactionsRoot + + ", transactions=" + transactions + + '}'; + } } diff --git a/src/main/java/io/goodforgod/api/etherscan/model/proxy/ReceiptProxy.java b/src/main/java/io/goodforgod/api/etherscan/model/proxy/ReceiptProxy.java index 717b2e1..6c933c5 100644 --- a/src/main/java/io/goodforgod/api/etherscan/model/proxy/ReceiptProxy.java +++ b/src/main/java/io/goodforgod/api/etherscan/model/proxy/ReceiptProxy.java @@ -95,41 +95,6 @@ public String getLogsBloom() { } // - @Override - public boolean equals(Object o) { - if (this == o) - return true; - if (!(o instanceof ReceiptProxy)) - return false; - ReceiptProxy that = (ReceiptProxy) o; - return Objects.equals(blockNumber, that.blockNumber) && Objects.equals(blockHash, that.blockHash) - && Objects.equals(transactionHash, that.transactionHash) - && Objects.equals(transactionIndex, that.transactionIndex); - } - - @Override - public int hashCode() { - return Objects.hash(blockNumber, blockHash, transactionHash, transactionIndex); - } - - @Override - public String toString() { - return "ReceiptProxy{" + - "root=" + root + - ", from=" + from + - ", to=" + to + - ", blockNumber=" + blockNumber + - ", blockHash=" + blockHash + - ", transactionHash=" + transactionHash + - ", transactionIndex=" + transactionIndex + - ", gasUsed=" + gasUsed + - ", cumulativeGasUsed=" + cumulativeGasUsed + - ", contractAddress=" + contractAddress + - ", logs=" + logs + - ", logsBloom=" + logsBloom + - '}'; - } - public static ReceiptProxyBuilder builder() { return new ReceiptProxyBuilder(); } @@ -234,4 +199,50 @@ public ReceiptProxy build() { return receiptProxy; } } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + ReceiptProxy that = (ReceiptProxy) o; + return Objects.equals(root, that.root) && Objects.equals(from, that.from) && Objects.equals(to, that.to) + && Objects.equals(blockNumber, that.blockNumber) && Objects.equals(_blockNumber, that._blockNumber) + && Objects.equals(blockHash, that.blockHash) && Objects.equals(transactionHash, that.transactionHash) + && Objects.equals(transactionIndex, that.transactionIndex) + && Objects.equals(_transactionIndex, that._transactionIndex) && Objects.equals(gasUsed, that.gasUsed) + && Objects.equals(_gasUsed, that._gasUsed) && Objects.equals(cumulativeGasUsed, that.cumulativeGasUsed) + && Objects.equals(_cumulativeGasUsed, that._cumulativeGasUsed) + && Objects.equals(contractAddress, that.contractAddress) && Objects.equals(logs, that.logs) + && Objects.equals(logsBloom, that.logsBloom); + } + + @Override + public int hashCode() { + return Objects.hash(root, from, to, blockNumber, blockNumber, blockHash, transactionHash, transactionIndex, + transactionIndex, gasUsed, gasUsed, cumulativeGasUsed, cumulativeGasUsed, contractAddress, logs, logsBloom); + } + + @Override + public String toString() { + return "ReceiptProxy{" + + "root=" + root + '\'' + + ", from=" + from + '\'' + + ", to=" + to + '\'' + + ", blockNumber=" + blockNumber + '\'' + + ", blockNumber=" + _blockNumber + + ", blockHash=" + blockHash + '\'' + + ", transactionHash=" + transactionHash + '\'' + + ", transactionIndex=" + transactionIndex + '\'' + + ", transactionIndex=" + _transactionIndex + + ", gasUsed=" + gasUsed + '\'' + + ", gasUsed=" + _gasUsed + + ", cumulativeGasUsed=" + cumulativeGasUsed + '\'' + + ", cumulativeGasUsed=" + _cumulativeGasUsed + + ", contractAddress=" + contractAddress + '\'' + + ", logs=" + logs + + ", logsBloom=" + logsBloom + '\'' + + '}'; + } } diff --git a/src/main/java/io/goodforgod/api/etherscan/model/proxy/TxProxy.java b/src/main/java/io/goodforgod/api/etherscan/model/proxy/TxProxy.java index 1325cc4..4372dde 100644 --- a/src/main/java/io/goodforgod/api/etherscan/model/proxy/TxProxy.java +++ b/src/main/java/io/goodforgod/api/etherscan/model/proxy/TxProxy.java @@ -107,43 +107,6 @@ public Long getBlockNumber() { } // - @Override - public boolean equals(Object o) { - if (this == o) - return true; - if (!(o instanceof TxProxy)) - return false; - TxProxy txProxy = (TxProxy) o; - return Objects.equals(hash, txProxy.hash) && Objects.equals(transactionIndex, txProxy.transactionIndex) - && Objects.equals(nonce, txProxy.nonce) && Objects.equals(blockHash, txProxy.blockHash) - && Objects.equals(blockNumber, txProxy.blockNumber); - } - - @Override - public int hashCode() { - return Objects.hash(hash, transactionIndex, nonce, blockHash, blockNumber); - } - - @Override - public String toString() { - return "TxProxy{" + - "to=" + to + - ", hash=" + hash + - ", transactionIndex=" + transactionIndex + - ", from=" + from + - ", v=" + v + - ", input=" + input + - ", s=" + s + - ", r=" + r + - ", nonce=" + nonce + - ", value=" + value + - ", gas=" + gas + - ", gasPrice=" + gasPrice + - ", blockHash=" + blockHash + - ", blockNumber=" + blockNumber + - '}'; - } - @Override public int compareTo(@NotNull TxProxy o) { final int firstCompare = Long.compare(getBlockNumber(), o.getBlockNumber()); @@ -271,4 +234,53 @@ public TxProxy build() { return txProxy; } } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + TxProxy txProxy = (TxProxy) o; + return Objects.equals(to, txProxy.to) && Objects.equals(hash, txProxy.hash) + && Objects.equals(transactionIndex, txProxy.transactionIndex) + && Objects.equals(_transactionIndex, txProxy._transactionIndex) && Objects.equals(from, txProxy.from) + && Objects.equals(v, txProxy.v) && Objects.equals(input, txProxy.input) && Objects.equals(s, txProxy.s) + && Objects.equals(r, txProxy.r) && Objects.equals(nonce, txProxy.nonce) && Objects.equals(_nonce, txProxy._nonce) + && Objects.equals(value, txProxy.value) && Objects.equals(gas, txProxy.gas) && Objects.equals(_gas, txProxy._gas) + && Objects.equals(gasPrice, txProxy.gasPrice) && Objects.equals(_gasPrice, txProxy._gasPrice) + && Objects.equals(blockHash, txProxy.blockHash) && Objects.equals(blockNumber, txProxy.blockNumber) + && Objects.equals(_blockNumber, txProxy._blockNumber); + } + + @Override + public int hashCode() { + return Objects.hash(to, hash, transactionIndex, transactionIndex, from, v, input, s, r, nonce, nonce, value, gas, gas, + gasPrice, gasPrice, blockHash, blockNumber, blockNumber); + } + + @Override + public String toString() { + return "TxProxy{" + + "to=" + to + '\'' + + ", hash=" + hash + '\'' + + ", transactionIndex=" + transactionIndex + '\'' + + ", transactionIndex=" + _transactionIndex + + ", from=" + from + '\'' + + ", v=" + v + '\'' + + ", input=" + input + '\'' + + ", s=" + s + '\'' + + ", r=" + r + '\'' + + ", nonce=" + nonce + '\'' + + ", nonce=" + _nonce + + ", value=" + value + '\'' + + ", gas=" + gas + '\'' + + ", gas=" + _gas + + ", gasPrice=" + gasPrice + '\'' + + ", gasPrice=" + _gasPrice + + ", blockHash=" + blockHash + '\'' + + ", blockNumber=" + blockNumber + '\'' + + ", blockNumber=" + _blockNumber + + '}'; + } } diff --git a/src/main/java/io/goodforgod/api/etherscan/model/proxy/utility/BaseProxyTO.java b/src/main/java/io/goodforgod/api/etherscan/model/proxy/utility/BaseProxyTO.java index 2960bfc..24588c7 100644 --- a/src/main/java/io/goodforgod/api/etherscan/model/proxy/utility/BaseProxyTO.java +++ b/src/main/java/io/goodforgod/api/etherscan/model/proxy/utility/BaseProxyTO.java @@ -1,5 +1,7 @@ package io.goodforgod.api.etherscan.model.proxy.utility; +import java.util.Objects; + /** * @author GoodforGod * @since 31.10.2018 @@ -21,4 +23,28 @@ public String getJsonrpc() { public ErrorProxyTO getError() { return error; } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + BaseProxyTO that = (BaseProxyTO) o; + return Objects.equals(id, that.id) && Objects.equals(jsonrpc, that.jsonrpc) && Objects.equals(error, that.error); + } + + @Override + public int hashCode() { + return Objects.hash(id, jsonrpc, error); + } + + @Override + public String toString() { + return "BaseProxyTO{" + + "id=" + id + + ", jsonrpc=" + jsonrpc + + ", error=" + error + + '}'; + } } diff --git a/src/main/java/io/goodforgod/api/etherscan/model/proxy/utility/BlockProxyTO.java b/src/main/java/io/goodforgod/api/etherscan/model/proxy/utility/BlockProxyTO.java index cf6c16b..b6bf1c1 100644 --- a/src/main/java/io/goodforgod/api/etherscan/model/proxy/utility/BlockProxyTO.java +++ b/src/main/java/io/goodforgod/api/etherscan/model/proxy/utility/BlockProxyTO.java @@ -1,6 +1,7 @@ package io.goodforgod.api.etherscan.model.proxy.utility; import io.goodforgod.api.etherscan.model.proxy.BlockProxy; +import java.util.Objects; /** * @author GoodforGod @@ -13,4 +14,28 @@ public class BlockProxyTO extends BaseProxyTO { public BlockProxy getResult() { return result; } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + if (!super.equals(o)) + return false; + BlockProxyTO that = (BlockProxyTO) o; + return Objects.equals(result, that.result); + } + + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), result); + } + + @Override + public String toString() { + return "BlockProxyTO{" + + "result=" + result + + '}'; + } } diff --git a/src/main/java/io/goodforgod/api/etherscan/model/proxy/utility/ErrorProxyTO.java b/src/main/java/io/goodforgod/api/etherscan/model/proxy/utility/ErrorProxyTO.java index 9b14cec..5aa1f0a 100644 --- a/src/main/java/io/goodforgod/api/etherscan/model/proxy/utility/ErrorProxyTO.java +++ b/src/main/java/io/goodforgod/api/etherscan/model/proxy/utility/ErrorProxyTO.java @@ -1,5 +1,7 @@ package io.goodforgod.api.etherscan.model.proxy.utility; +import java.util.Objects; + /** * @author GoodforGod * @since 03.11.2018 @@ -16,4 +18,27 @@ public String getMessage() { public String getCode() { return code; } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + ErrorProxyTO that = (ErrorProxyTO) o; + return Objects.equals(message, that.message) && Objects.equals(code, that.code); + } + + @Override + public int hashCode() { + return Objects.hash(message, code); + } + + @Override + public String toString() { + return "ErrorProxyTO{" + + "message=" + message + + ", code=" + code + + '}'; + } } diff --git a/src/main/java/io/goodforgod/api/etherscan/model/proxy/utility/StringProxyTO.java b/src/main/java/io/goodforgod/api/etherscan/model/proxy/utility/StringProxyTO.java index 489d87b..7afbf9c 100644 --- a/src/main/java/io/goodforgod/api/etherscan/model/proxy/utility/StringProxyTO.java +++ b/src/main/java/io/goodforgod/api/etherscan/model/proxy/utility/StringProxyTO.java @@ -1,5 +1,7 @@ package io.goodforgod.api.etherscan.model.proxy.utility; +import java.util.Objects; + /** * @author GoodforGod * @since 31.10.2018 @@ -11,4 +13,28 @@ public class StringProxyTO extends BaseProxyTO { public String getResult() { return result; } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + if (!super.equals(o)) + return false; + StringProxyTO that = (StringProxyTO) o; + return Objects.equals(result, that.result); + } + + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), result); + } + + @Override + public String toString() { + return "StringProxyTO{" + + "result=" + result + + '}'; + } } diff --git a/src/main/java/io/goodforgod/api/etherscan/model/proxy/utility/TxInfoProxyTO.java b/src/main/java/io/goodforgod/api/etherscan/model/proxy/utility/TxInfoProxyTO.java index 208cdbe..672585b 100644 --- a/src/main/java/io/goodforgod/api/etherscan/model/proxy/utility/TxInfoProxyTO.java +++ b/src/main/java/io/goodforgod/api/etherscan/model/proxy/utility/TxInfoProxyTO.java @@ -1,6 +1,7 @@ package io.goodforgod.api.etherscan.model.proxy.utility; import io.goodforgod.api.etherscan.model.proxy.ReceiptProxy; +import java.util.Objects; /** * @author GoodforGod @@ -13,4 +14,28 @@ public class TxInfoProxyTO extends BaseProxyTO { public ReceiptProxy getResult() { return result; } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + if (!super.equals(o)) + return false; + TxInfoProxyTO that = (TxInfoProxyTO) o; + return Objects.equals(result, that.result); + } + + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), result); + } + + @Override + public String toString() { + return "TxInfoProxyTO{" + + "result=" + result + + '}'; + } } diff --git a/src/main/java/io/goodforgod/api/etherscan/model/proxy/utility/TxProxyTO.java b/src/main/java/io/goodforgod/api/etherscan/model/proxy/utility/TxProxyTO.java index 0c084e7..45b885f 100644 --- a/src/main/java/io/goodforgod/api/etherscan/model/proxy/utility/TxProxyTO.java +++ b/src/main/java/io/goodforgod/api/etherscan/model/proxy/utility/TxProxyTO.java @@ -1,6 +1,7 @@ package io.goodforgod.api.etherscan.model.proxy.utility; import io.goodforgod.api.etherscan.model.proxy.TxProxy; +import java.util.Objects; /** * @author GoodforGod @@ -13,4 +14,28 @@ public class TxProxyTO extends BaseProxyTO { public TxProxy getResult() { return result; } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + if (!super.equals(o)) + return false; + TxProxyTO txProxyTO = (TxProxyTO) o; + return Objects.equals(result, txProxyTO.result); + } + + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), result); + } + + @Override + public String toString() { + return "TxProxyTO{" + + "result=" + result + + '}'; + } } diff --git a/src/main/java/io/goodforgod/api/etherscan/model/query/LogQueryImpl.java b/src/main/java/io/goodforgod/api/etherscan/model/query/LogQueryImpl.java index 6de9631..6229c76 100644 --- a/src/main/java/io/goodforgod/api/etherscan/model/query/LogQueryImpl.java +++ b/src/main/java/io/goodforgod/api/etherscan/model/query/LogQueryImpl.java @@ -1,6 +1,7 @@ package io.goodforgod.api.etherscan.model.query; import io.goodforgod.api.etherscan.LogsAPI; +import java.util.Objects; import org.jetbrains.annotations.NotNull; /** @@ -27,4 +28,26 @@ public class LogQueryImpl implements LogQuery { public @NotNull String params() { return params; } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + LogQueryImpl logQuery = (LogQueryImpl) o; + return Objects.equals(params, logQuery.params); + } + + @Override + public int hashCode() { + return Objects.hash(params); + } + + @Override + public String toString() { + return "LogQueryImpl{" + + "params=" + params + '\'' + + '}'; + } } diff --git a/src/main/java/io/goodforgod/api/etherscan/model/query/LogTopicQuadro.java b/src/main/java/io/goodforgod/api/etherscan/model/query/LogTopicQuadro.java index f113a4f..ff7bc8a 100644 --- a/src/main/java/io/goodforgod/api/etherscan/model/query/LogTopicQuadro.java +++ b/src/main/java/io/goodforgod/api/etherscan/model/query/LogTopicQuadro.java @@ -4,6 +4,7 @@ import io.goodforgod.api.etherscan.LogsAPI; import io.goodforgod.api.etherscan.error.EtherScanLogQueryException; +import java.util.Objects; import org.jetbrains.annotations.NotNull; /** @@ -96,4 +97,43 @@ public LogTopicQuadro setOpTopic1_3(LogOp topic1_3_opr) { + TOPIC_1_3_OPR_PARAM + topic1_2_opr.getOperation() + TOPIC_2_3_OPR_PARAM + topic0_2_opr.getOperation()); } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + LogTopicQuadro that = (LogTopicQuadro) o; + return startBlock == that.startBlock && endBlock == that.endBlock && Objects.equals(address, that.address) + && Objects.equals(topic0, that.topic0) && Objects.equals(topic1, that.topic1) + && Objects.equals(topic2, that.topic2) && Objects.equals(topic3, that.topic3) && topic0_1_opr == that.topic0_1_opr + && topic1_2_opr == that.topic1_2_opr && topic2_3_opr == that.topic2_3_opr && topic0_2_opr == that.topic0_2_opr + && topic0_3_opr == that.topic0_3_opr && topic1_3_opr == that.topic1_3_opr; + } + + @Override + public int hashCode() { + return Objects.hash(address, startBlock, endBlock, topic0, topic1, topic2, topic3, topic0_1_opr, topic1_2_opr, + topic2_3_opr, topic0_2_opr, topic0_3_opr, topic1_3_opr); + } + + @Override + public String toString() { + return "LogTopicQuadro{" + + "address=" + address + '\'' + + ", startBlock=" + startBlock + + ", endBlock=" + endBlock + + ", topic0=" + topic0 + '\'' + + ", topic1=" + topic1 + '\'' + + ", topic2=" + topic2 + '\'' + + ", topic3=" + topic3 + '\'' + + ", topic0_1_opr=" + topic0_1_opr + + ", topic1_2_opr=" + topic1_2_opr + + ", topic2_3_opr=" + topic2_3_opr + + ", topic0_2_opr=" + topic0_2_opr + + ", topic0_3_opr=" + topic0_3_opr + + ", topic1_3_opr=" + topic1_3_opr + + '}'; + } } diff --git a/src/main/java/io/goodforgod/api/etherscan/model/query/LogTopicSingle.java b/src/main/java/io/goodforgod/api/etherscan/model/query/LogTopicSingle.java index b35c836..58d7bda 100644 --- a/src/main/java/io/goodforgod/api/etherscan/model/query/LogTopicSingle.java +++ b/src/main/java/io/goodforgod/api/etherscan/model/query/LogTopicSingle.java @@ -4,6 +4,7 @@ import io.goodforgod.api.etherscan.LogsAPI; import io.goodforgod.api.etherscan.error.EtherScanLogQueryException; +import java.util.Objects; import org.jetbrains.annotations.NotNull; /** @@ -34,4 +35,30 @@ public class LogTopicSingle implements LogTopicBuilder { + FROM_BLOCK_PARAM + startBlock + TO_BLOCK_PARAM + endBlock + TOPIC_0_PARAM + topic0); } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + LogTopicSingle that = (LogTopicSingle) o; + return startBlock == that.startBlock && endBlock == that.endBlock && Objects.equals(address, that.address) + && Objects.equals(topic0, that.topic0); + } + + @Override + public int hashCode() { + return Objects.hash(address, startBlock, endBlock, topic0); + } + + @Override + public String toString() { + return "LogTopicSingle{" + + "address=" + address + '\'' + + ", startBlock=" + startBlock + + ", endBlock=" + endBlock + + ", topic0=" + topic0 + '\'' + + '}'; + } } diff --git a/src/main/java/io/goodforgod/api/etherscan/model/query/LogTopicTriple.java b/src/main/java/io/goodforgod/api/etherscan/model/query/LogTopicTriple.java index d888a49..b5a25fe 100644 --- a/src/main/java/io/goodforgod/api/etherscan/model/query/LogTopicTriple.java +++ b/src/main/java/io/goodforgod/api/etherscan/model/query/LogTopicTriple.java @@ -4,6 +4,7 @@ import io.goodforgod.api.etherscan.LogsAPI; import io.goodforgod.api.etherscan.error.EtherScanLogQueryException; +import java.util.Objects; import org.jetbrains.annotations.NotNull; /** @@ -69,4 +70,37 @@ public LogTopicTriple setOpTopic1_2(LogOp topic1_2_opr) { + TOPIC_1_2_OPR_PARAM + topic1_2_opr.getOperation() + TOPIC_0_2_OPR_PARAM + topic0_2_opr.getOperation()); } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + LogTopicTriple that = (LogTopicTriple) o; + return startBlock == that.startBlock && endBlock == that.endBlock && Objects.equals(address, that.address) + && Objects.equals(topic0, that.topic0) && Objects.equals(topic1, that.topic1) + && Objects.equals(topic2, that.topic2) && topic0_1_opr == that.topic0_1_opr && topic1_2_opr == that.topic1_2_opr + && topic0_2_opr == that.topic0_2_opr; + } + + @Override + public int hashCode() { + return Objects.hash(address, startBlock, endBlock, topic0, topic1, topic2, topic0_1_opr, topic1_2_opr, topic0_2_opr); + } + + @Override + public String toString() { + return "LogTopicTriple{" + + "address=" + address + '\'' + + ", startBlock=" + startBlock + + ", endBlock=" + endBlock + + ", topic0=" + topic0 + '\'' + + ", topic1=" + topic1 + '\'' + + ", topic2=" + topic2 + '\'' + + ", topic0_1_opr=" + topic0_1_opr + + ", topic1_2_opr=" + topic1_2_opr + + ", topic0_2_opr=" + topic0_2_opr + + '}'; + } } diff --git a/src/main/java/io/goodforgod/api/etherscan/model/query/LogTopicTuple.java b/src/main/java/io/goodforgod/api/etherscan/model/query/LogTopicTuple.java index 4a0218e..e396ace 100644 --- a/src/main/java/io/goodforgod/api/etherscan/model/query/LogTopicTuple.java +++ b/src/main/java/io/goodforgod/api/etherscan/model/query/LogTopicTuple.java @@ -4,6 +4,7 @@ import io.goodforgod.api.etherscan.LogsAPI; import io.goodforgod.api.etherscan.error.EtherScanLogQueryException; +import java.util.Objects; import org.jetbrains.annotations.NotNull; /** @@ -50,4 +51,33 @@ public LogTopicTuple setOpTopic0_1(LogOp topic0_1_opr) { + TOPIC_1_PARAM + topic1 + TOPIC_0_1_OPR_PARAM + topic0_1_opr.getOperation()); } + + @Override + public boolean equals(Object o) { + if (this == o) + return true; + if (o == null || getClass() != o.getClass()) + return false; + LogTopicTuple that = (LogTopicTuple) o; + return startBlock == that.startBlock && endBlock == that.endBlock && Objects.equals(address, that.address) + && Objects.equals(topic0, that.topic0) && Objects.equals(topic1, that.topic1) + && topic0_1_opr == that.topic0_1_opr; + } + + @Override + public int hashCode() { + return Objects.hash(address, startBlock, endBlock, topic0, topic1, topic0_1_opr); + } + + @Override + public String toString() { + return "LogTopicTuple{" + + "address=" + address + '\'' + + ", startBlock=" + startBlock + + ", endBlock=" + endBlock + + ", topic0=" + topic0 + '\'' + + ", topic1=" + topic1 + '\'' + + ", topic0_1_opr=" + topic0_1_opr + + '}'; + } }

AltStyle によって変換されたページ (->オリジナル) /