Skip to content

Commit 593b84f

Browse files
committed
GetOrders function implementation added
GetOrders and Orderbook request limit parameter added
1 parent b2c77f1 commit 593b84f

4 files changed

Lines changed: 44 additions & 13 deletions

File tree

app/src/main/java/com/fridaytech/zrxkit/sample/MainViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ class MainViewModel: ViewModel() {
8989
listOf(ZrxKit.assetItemForAddress(tokenAddress) to ZrxKit.assetItemForAddress(wethAddress)),
9090
listOf(feeRecipient),
9191
zrxKitNetworkType.exchangeAddress,
92-
RelayerConfig("http://relayer.ropsten.fridayte.ch", "", "v2")
92+
RelayerConfig("https://relayer.ropsten.fridayte.ch", "", "v2")
9393
)
9494
)
9595

zrxkit/src/main/java/com/fridaytech/zrxkit/relayer/IRelayerManager.kt

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.fridaytech.zrxkit.relayer
22

33
import com.fridaytech.zrxkit.model.SignedOrder
44
import com.fridaytech.zrxkit.relayer.model.AssetPair
5+
import com.fridaytech.zrxkit.relayer.model.OrderBook
56
import com.fridaytech.zrxkit.relayer.model.Relayer
67
import com.fridaytech.zrxkit.relayer.remote.OrderBookResponse
78
import io.reactivex.Flowable
@@ -11,9 +12,18 @@ interface IRelayerManager {
1112

1213
fun getAssetPairs(relayerId: Int): Flowable<List<AssetPair>>
1314

14-
fun getOrderbook(relayerId: Int, base: String, quote: String): Flowable<OrderBookResponse>
15+
fun getOrderbook(
16+
relayerId: Int,
17+
base: String,
18+
quote: String,
19+
limit: Int = 100
20+
): Flowable<OrderBookResponse>
1521

1622
fun postOrder(relayerId: Int, order: SignedOrder): Flowable<Unit>
1723

18-
fun getOrders(relayerId: Int, makerAddress: String, makerAsset: String, takerAsset: String): Flowable<OrderBookResponse>
24+
fun getOrders(
25+
relayerId: Int,
26+
makerAddress: String? = null,
27+
limit: Int = 100
28+
): Flowable<OrderBook>
1929
}

zrxkit/src/main/java/com/fridaytech/zrxkit/relayer/RelayerManager.kt

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@ package com.fridaytech.zrxkit.relayer
33
import com.fridaytech.zrxkit.ZrxKit
44
import com.fridaytech.zrxkit.model.SignedOrder
55
import com.fridaytech.zrxkit.relayer.model.AssetPair
6+
import com.fridaytech.zrxkit.relayer.model.OrderBook
67
import com.fridaytech.zrxkit.relayer.model.Relayer
78
import com.fridaytech.zrxkit.relayer.remote.OrderBookResponse
89
import com.fridaytech.zrxkit.relayer.remote.RelayerApiClient
910
import io.reactivex.Flowable
11+
import java.util.*
1012

1113
class RelayerManager(
1214
override val availableRelayers: List<Relayer>,
@@ -17,18 +19,19 @@ class RelayerManager(
1719
override fun getAssetPairs(relayerId: Int): Flowable<List<AssetPair>> =
1820
relayerClients[relayerId].getAssets(networkId = networkType.id)
1921

20-
override fun getOrderbook(relayerId: Int, base: String, quote: String): Flowable<OrderBookResponse> =
21-
relayerClients[relayerId].getOrderbook(base, quote, networkId = networkType.id)
22+
override fun getOrderbook(relayerId: Int, base: String, quote: String, limit: Int): Flowable<OrderBookResponse> =
23+
relayerClients[relayerId].getOrderbook(base, quote, limit, networkId = networkType.id)
2224

2325
override fun postOrder(relayerId: Int, order: SignedOrder): Flowable<Unit> =
2426
relayerClients[relayerId].postOrder(order, networkId = networkType.id)
2527

2628
override fun getOrders(
2729
relayerId: Int,
28-
makerAddress: String,
29-
makerAsset: String,
30-
takerAsset: String
31-
): Flowable<OrderBookResponse> {
32-
TODO("Get orders not implemented")
33-
}
30+
makerAddress: String?,
31+
limit: Int
32+
): Flowable<OrderBook> = relayerClients[relayerId].getOrders(
33+
makerAddress?.toLowerCase(Locale.US),
34+
limit,
35+
networkId = networkType.id
36+
)
3437
}

zrxkit/src/main/java/com/fridaytech/zrxkit/relayer/remote/RelayerApiClient.kt

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,20 @@ class RelayerApiClient(relayerConfig: RelayerConfig) {
4343
client.getFeeRecipients("$prefix/fee_recipients", networkId)
4444
.map { it.records }.toFlowable()
4545

46-
fun getOrderbook(base: String, quote: String, networkId: Int = 3): Flowable<OrderBookResponse> =
46+
fun getOrderbook(base: String, quote: String, limit: Int = 100, networkId: Int = 3): Flowable<OrderBookResponse> =
4747
client.getOrderBook(
4848
"$prefix/orderbook",
4949
base,
5050
quote,
51+
limit,
52+
networkId
53+
).toFlowable()
54+
55+
fun getOrders(makerAddress: String?, limit: Int = 100, networkId: Int = 3): Flowable<OrderBook> =
56+
client.getOrders(
57+
"$prefix/orders",
58+
makerAddress,
59+
limit,
5160
networkId
5261
).toFlowable()
5362

@@ -56,7 +65,7 @@ class RelayerApiClient(relayerConfig: RelayerConfig) {
5665
"$prefix/asset_pairs",
5766
limit,
5867
networkId
59-
).toFlowable().map { it.records }
68+
).map { it.records }.toFlowable()
6069

6170
fun postOrder(order: SignedOrder, networkId: Int = 3): Flowable<Unit> = client.postOrder(
6271
"$prefix/order",
@@ -65,11 +74,20 @@ class RelayerApiClient(relayerConfig: RelayerConfig) {
6574
).toFlowable()
6675

6776
private interface RelayerNetworkClient {
77+
@GET
78+
fun getOrders(
79+
@Url url: String,
80+
@Query("makerAddress") makerAddress: String?,
81+
@Query("perPage") limit: Int?,
82+
@Query("networkId") int: Int
83+
): Single<OrderBook>
84+
6885
@GET
6986
fun getOrderBook(
7087
@Url url: String,
7188
@Query("baseAssetData") baseAsset: String,
7289
@Query("quoteAssetData") quoteAsset: String,
90+
@Query("perPage") limit: Int,
7391
@Query("networkId") int: Int
7492
): Single<OrderBookResponse>
7593

0 commit comments

Comments
 (0)