Skip to content

Commit c416dd8

Browse files
committed
solution: Kotlin Coroutines transport on top of Emerald Dshackle protocol
1 parent 941b2db commit c416dd8

File tree

17 files changed

+700
-4
lines changed

17 files changed

+700
-4
lines changed

README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,10 @@ Structure of dependencies between modules:
2828
* `etherjar-hex`
2929
* `etherjar-rpc-emerald`
3030
* `etherjar-rpc-api`
31-
* `etherjar-rpc-ktor`
31+
* `etherjar-rpc-emerald-kotlin`
32+
* `etherjar-rpc-api`
33+
* `etherjar-rpc-http-ktor`
34+
* `etherjar-rpc-http-ktor`
3235
* `etherjar-rpc-api`
3336
* `etherjar-rpc-json`
3437
* `etherjar-rpc-http`
@@ -65,9 +68,10 @@ where
6568
* `etherjar-rpc-json` - JSON mapping to/from Java objects
6669
* `etherjar-rpc-api` - [JSON-RPC API](https://github.com/ethereum/wiki/wiki/JSON-RPC) generic
6770
implementation
68-
* `etherjar-rpc-ktor` - Kotlin with coroutines transport implementation for JSON-RPC API data-layer
71+
* `etherjar-rpc-http-ktor` - Kotlin with coroutines transport implementation for JSON-RPC API data-layer
6972
* `etherjar-rpc-emerald` - gRPC transport,
7073
see [Emerald Dshackle](https://github.com/emeraldpay/dshackle)
74+
* `etherjar-rpc-emerald-kotlin` - Kotlin coroutines gRPC transport for Emerald API
7175
* `etherjar-rpc-http` - HTTP transport implementation for JSON-RPC API data-layer
7276
* `etherjar-rpc-ws` - WebSocket transport to subscribe to new blocks
7377
* `etherjar-solidity` - Thin wrapper
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
plugins {
2+
id 'org.jetbrains.kotlin.jvm' version '2.1.0'
3+
}
4+
5+
compileKotlin {
6+
kotlinOptions {
7+
jvmTarget = '17'
8+
}
9+
}
10+
11+
compileTestKotlin {
12+
kotlinOptions {
13+
jvmTarget = '17'
14+
}
15+
}
16+
17+
repositories {
18+
maven {
19+
url "https://maven.emrld.io"
20+
}
21+
}
22+
23+
dependencies {
24+
api project(':etherjar-rpc-api')
25+
api project(':etherjar-rpc-http-ktor')
26+
api ("io.emeraldpay:emerald-api:0.13.0") {
27+
exclude group: "io.grpc"
28+
}
29+
api ("io.emeraldpay:emerald-api-kotlin:0.13.0") {
30+
exclude group: "io.grpc"
31+
}
32+
implementation 'org.jetbrains.kotlin:kotlin-stdlib:2.1.0'
33+
implementation 'io.grpc:grpc-netty:1.53.0'
34+
implementation 'io.grpc:grpc-stub:1.53.0'
35+
implementation 'io.grpc:grpc-protobuf:1.53.0'
36+
implementation 'io.grpc:grpc-kotlin-stub:1.3.0'
37+
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1'
38+
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.10.1'
39+
40+
testImplementation "io.grpc:grpc-testing:1.53.0"
41+
testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.10.1"
42+
testImplementation "io.netty:netty-tcnative:2.0.50.Final"
43+
testImplementation "io.netty:netty-tcnative-boringssl-static:2.0.50.Final"
44+
testImplementation "io.kotest:kotest-runner-junit5:5.9.1"
45+
testImplementation "io.kotest:kotest-assertions-core:5.9.1"
46+
testImplementation "io.mockk:mockk:1.13.12"
47+
}

0 commit comments

Comments
 (0)