Skip to content

Commit 21cb0f0

Browse files
committed
solution: upgrade EtherJar to the latest (v0.12.1)
1 parent c4098f8 commit 21cb0f0

File tree

10 files changed

+26
-21
lines changed

10 files changed

+26
-21
lines changed

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ grpcVersion=1.54.1
55
nettyVersion=4.1.92.Final
66
nettyTcnativeVersion=2.0.61.Final
77
detektVersion=1.22.0
8-
etherjarVersion=0.11.1
8+
etherjarVersion=0.12.1
99
groovyVersion=3.0.17
1010
protocVersion=3.18.0
1111
slf4jVersion=2.0.7

src/main/kotlin/io/emeraldpay/dshackle/Global.kt

+2-3
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,9 @@ import io.emeraldpay.dshackle.upstream.bitcoin.data.EsploraUnspent
2828
import io.emeraldpay.dshackle.upstream.bitcoin.data.EsploraUnspentDeserializer
2929
import io.emeraldpay.dshackle.upstream.bitcoin.data.RpcUnspent
3030
import io.emeraldpay.dshackle.upstream.bitcoin.data.RpcUnspentDeserializer
31-
import io.emeraldpay.dshackle.upstream.ethereum.subscribe.json.TransactionIdSerializer
3231
import io.emeraldpay.dshackle.upstream.rpcclient.JsonRpcRequest
3332
import io.emeraldpay.dshackle.upstream.rpcclient.JsonRpcResponse
34-
import io.emeraldpay.etherjar.domain.TransactionId
33+
import io.emeraldpay.etherjar.rpc.EtherjarModule
3534
import java.text.SimpleDateFormat
3635
import java.util.Locale
3736
import java.util.TimeZone
@@ -89,14 +88,14 @@ class Global {
8988
private fun createObjectMapper(): ObjectMapper {
9089
val module = SimpleModule("EmeraldDshackle", Version(1, 0, 0, null, null, null))
9190
module.addSerializer(JsonRpcResponse::class.java, JsonRpcResponse.ResponseJsonSerializer())
92-
module.addSerializer(TransactionId::class.java, TransactionIdSerializer())
9391

9492
module.addDeserializer(EsploraUnspent::class.java, EsploraUnspentDeserializer())
9593
module.addDeserializer(RpcUnspent::class.java, RpcUnspentDeserializer())
9694
module.addDeserializer(JsonRpcRequest::class.java, JsonRpcRequest.Deserializer())
9795

9896
val objectMapper = ObjectMapper()
9997
objectMapper.registerModule(module)
98+
objectMapper.registerModule(EtherjarModule())
10099
objectMapper.registerModule(Jdk8Module())
101100
objectMapper.registerModule(JavaTimeModule())
102101
objectMapper.registerModule(KotlinModule.Builder().build())

src/main/kotlin/io/emeraldpay/dshackle/proxy/ReadRpcJson.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ import com.google.protobuf.ByteString
2121
import io.emeraldpay.api.proto.BlockchainOuterClass
2222
import io.emeraldpay.dshackle.Global
2323
import io.emeraldpay.dshackle.upstream.rpcclient.JsonRpcResponse
24+
import io.emeraldpay.etherjar.rpc.RequestJson
2425
import io.emeraldpay.etherjar.rpc.RpcException
2526
import io.emeraldpay.etherjar.rpc.RpcResponseError
26-
import io.emeraldpay.etherjar.rpc.json.RequestJson
2727
import org.slf4j.LoggerFactory
2828
import org.springframework.stereotype.Service
2929
import java.io.IOException

src/main/kotlin/io/emeraldpay/dshackle/proxy/WebsocketHandler.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ import io.emeraldpay.dshackle.config.ProxyConfig
2323
import io.emeraldpay.dshackle.monitoring.accesslog.AccessLogHandlerHttp
2424
import io.emeraldpay.dshackle.rpc.NativeCall
2525
import io.emeraldpay.dshackle.rpc.NativeSubscribe
26-
import io.emeraldpay.etherjar.rpc.json.RequestJson
27-
import io.emeraldpay.etherjar.rpc.json.ResponseJson
26+
import io.emeraldpay.etherjar.rpc.RequestJson
27+
import io.emeraldpay.etherjar.rpc.ResponseJson
2828
import io.netty.buffer.ByteBufInputStream
2929
import org.reactivestreams.Publisher
3030
import org.slf4j.LoggerFactory

src/main/kotlin/io/emeraldpay/dshackle/upstream/ethereum/subscribe/AggregatedPendingTxes.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class AggregatedPendingTxes(
3232

3333
private val track = ExpiringSet<TransactionId>(
3434
Duration.ofSeconds(30),
35-
HexDataComparator() as Comparator<TransactionId>,
35+
HexDataComparator<TransactionId>() as Comparator<TransactionId>,
3636
10_000
3737
)
3838

src/main/kotlin/io/emeraldpay/dshackle/upstream/ethereum/subscribe/ConnectLogs.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ open class ConnectLogs(
3333
companion object {
3434
private val log = LoggerFactory.getLogger(ConnectLogs::class.java)
3535

36-
private val ADDR_COMPARATOR = HexDataComparator()
37-
private val TOPIC_COMPARATOR = HexDataComparator()
36+
private val ADDR_COMPARATOR = HexDataComparator<Address>()
37+
private val TOPIC_COMPARATOR = HexDataComparator<Hex32>()
3838
}
3939

4040
constructor(upstream: EthereumMultistream) : this(upstream, ConnectBlockUpdates(upstream))

src/test/groovy/io/emeraldpay/dshackle/proxy/WebsocketHandlerSpec.groovy

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ package io.emeraldpay.dshackle.proxy
1818
import io.emeraldpay.dshackle.monitoring.accesslog.AccessLogHandlerHttp
1919
import io.emeraldpay.dshackle.rpc.NativeCall
2020
import io.emeraldpay.dshackle.rpc.NativeSubscribe
21-
import io.emeraldpay.etherjar.rpc.json.RequestJson
21+
import io.emeraldpay.etherjar.rpc.RequestJson
2222
import io.emeraldpay.api.Chain
2323
import io.micrometer.core.instrument.Counter
2424
import reactor.core.publisher.Flux

src/test/groovy/io/emeraldpay/dshackle/rpc/TrackERC20AddressSpec.groovy

+10-6
Original file line numberDiff line numberDiff line change
@@ -167,9 +167,10 @@ class TrackERC20AddressSpec extends Specification {
167167

168168
def "Check balance when event happens"() {
169169
setup:
170+
def tokenAddress = Address.from("0x54EEdeAC495271D0F6B175474e89094C44Da98B9")
170171
def events = [
171172
new LogMessage(
172-
Address.from("0x54EedeAC495271d0F6B175474E89094C44Da98b9"),
173+
tokenAddress,
173174
BlockHash.from("0x0c0d2969c843d0b61fbab1b2302cf24d6681b2ae0a140a3c2908990d048f7631"),
174175
13668750,
175176
HexData.from("0x0000000000000000000000000000000000000000000000000000000048f2fc7b"),
@@ -188,11 +189,14 @@ class TrackERC20AddressSpec extends Specification {
188189
1 * connect() >> Flux.fromIterable(events)
189190
}
190191
def logs = Mock(ConnectLogs) {
191-
1 * create(
192-
[Address.from("0x54EedeAC495271d0F6B175474E89094C44Da98b9")],
193-
[Hex32.from("0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef")]
194-
) >> { args ->
192+
1 * create(_, _) >> { args ->
195193
println("ConnectLogs.create $args")
194+
if (args[0].size() != 1 || args[0][0] != tokenAddress) {
195+
throw new IllegalArgumentException("Invalid address: ${args[0][0]}")
196+
}
197+
if (args[1].size() != 1 || !Hex32.from("0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef").equals(args[1][0])) {
198+
throw new IllegalArgumentException("Invalid topic: ${args[1].size()} ${args[1][0]}")
199+
}
196200
logsConnect
197201
}
198202
}
@@ -214,7 +218,7 @@ class TrackERC20AddressSpec extends Specification {
214218
blockchain = Chain.ETHEREUM
215219
name = "TEST"
216220
type = TokensConfig.Type.ERC20
217-
address = Address.from("0x54EedeAC495271d0F6B175474E89094C44Da98b9")
221+
address = tokenAddress
218222
}
219223
])
220224
TrackERC20Address track = new TrackERC20Address(mup, tokens)

src/test/groovy/io/emeraldpay/dshackle/upstream/ethereum/DataReadersSpec.groovy

+3-1
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,9 @@ class DataReadersSpec extends Specification {
146146
.block(Duration.ofSeconds(1))
147147
.with { new String(it) }
148148
then:
149-
act == '{"blockHash":"0x40d15edaff9acdabd2a1c96fd5f683b3300aad34e7015f34def3c56ba8a7ffb5","blockNumber":"0x64","transactionHash":"0x40d15edaff9acdabd2a1c96fd5f683b3300aad34e7015f34def3c56ba8a7ffb5","logs":[]}'
149+
act.contains('"blockHash":"0x40d15edaff9acdabd2a1c96fd5f683b3300aad34e7015f34def3c56ba8a7ffb5"')
150+
act.contains('"transactionHash":"0x40d15edaff9acdabd2a1c96fd5f683b3300aad34e7015f34def3c56ba8a7ffb5"')
151+
act.contains('"blockNumber":"0x64"')
150152
}
151153

152154
def "Produce empty on non-existing tx"() {

src/test/kotlin/io/emeraldpay/dshackle/upstream/ethereum/ERC20BalanceTest.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class ERC20BalanceTest : ShouldSpec({
2525
listOf(
2626
TransactionCallJson().also { json ->
2727
json.to = Address.from("0x54EedeAC495271d0F6B175474E89094C44Da98b9")
28-
json.data = HexData.from("0x70a0823100000000000000000000000016c15c65ad00b6dfbcc2cb8a7b6c2d0103a3883b")
28+
json.input = HexData.from("0x70a0823100000000000000000000000016c15c65ad00b6dfbcc2cb8a7b6c2d0103a3883b")
2929
},
3030
"latest"
3131
)
@@ -51,7 +51,7 @@ class ERC20BalanceTest : ShouldSpec({
5151
listOf(
5252
TransactionCallJson().also { json ->
5353
json.to = Address.from("0x54EedeAC495271d0F6B175474E89094C44Da98b9")
54-
json.data = HexData.from("0x70a0823100000000000000000000000016c15c65ad00b6dfbcc2cb8a7b6c2d0103a3883b")
54+
json.input = HexData.from("0x70a0823100000000000000000000000016c15c65ad00b6dfbcc2cb8a7b6c2d0103a3883b")
5555
},
5656
"latest"
5757
)
@@ -79,7 +79,7 @@ class ERC20BalanceTest : ShouldSpec({
7979
listOf(
8080
TransactionCallJson().also { json ->
8181
json.to = Address.from("0x54eedeac495271d0f6b175474e89094c44da0000")
82-
json.data = HexData.from("0x70a0823100000000000000000000000016c15c65ad00b6dfbcc2cb8a7b6c2d0103a3883b")
82+
json.input = HexData.from("0x70a0823100000000000000000000000016c15c65ad00b6dfbcc2cb8a7b6c2d0103a3883b")
8383
},
8484
"latest"
8585
)

0 commit comments

Comments
 (0)