Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import io.horizontalsystems.ethereumkit.api.core.IRpcSyncer
import io.horizontalsystems.ethereumkit.api.jsonrpc.GetTransactionByHashJsonRpc
import io.horizontalsystems.ethereumkit.api.jsonrpc.GetTransactionCountJsonRpc
import io.horizontalsystems.ethereumkit.api.jsonrpc.JsonRpc
import io.horizontalsystems.ethereumkit.api.jsonrpc.SendRawTransactionJsonRpc
import io.horizontalsystems.ethereumkit.api.jsonrpc.models.RpcTransaction
import io.horizontalsystems.ethereumkit.core.INonceProvider
import io.horizontalsystems.ethereumkit.core.TransactionBuilder
Expand Down Expand Up @@ -32,11 +31,11 @@ class MerkleRpcBlockchain(
return syncer.single(GetTransactionCountJsonRpc(address, defaultBlockParameter))
}

fun send(rawTransaction: RawTransaction, signature: Signature): Single<Transaction> {
fun send(rawTransaction: RawTransaction, signature: Signature, sourceTag: String): Single<Transaction> {
val tx = transactionBuilder.transaction(rawTransaction, signature)
val encoded = transactionBuilder.encode(rawTransaction, signature)

return syncer.single(SendRawTransactionJsonRpc(encoded))
return syncer.single(MerkleSendRawTransactionJsonRpc(encoded, sourceTag))
.doOnSuccess { txHash ->
manager.save(MerkleTransactionHash(txHash))
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package io.horizontalsystems.merkleiokit

import io.horizontalsystems.ethereumkit.api.jsonrpc.DataJsonRpc

class MerkleSendRawTransactionJsonRpc(
@Transient val signedTransaction: ByteArray,
@Transient val sourceTag: String
) : DataJsonRpc(
method = "eth_sendRawTransaction",
params = listOf(signedTransaction, sourceTag)
)
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,10 @@ class MerkleTransactionAdapter(
val blockchain: MerkleRpcBlockchain,
val syncer: MerkleTransactionSyncer,
private val transactionManager: TransactionManager,
private val sourceTag: String,
) {
fun send(rawTransaction: RawTransaction, signature: Signature): Single<FullTransaction> {
return blockchain.send(rawTransaction, signature)
return blockchain.send(rawTransaction, signature, sourceTag)
.map { transactionManager.handle(listOf(it)).first() }
}

Expand Down Expand Up @@ -51,6 +52,7 @@ class MerkleTransactionAdapter(
context: Context,
walletId: String,
transactionManager: TransactionManager,
sourceTag: String,
): MerkleTransactionAdapter? {
val baseUrl = "https://mempool.merkle.io/rpc/"
val blockchainPath = blockchainPathMap[chain] ?: return null
Expand Down Expand Up @@ -82,7 +84,7 @@ class MerkleTransactionAdapter(
transactionManager = transactionManager
)

return MerkleTransactionAdapter(blockchain, syncer, transactionManager)
return MerkleTransactionAdapter(blockchain, syncer, transactionManager, sourceTag)
}
}
}