optimise default getBlockByNumber - skip processing requests of tx bodies
This commit is contained in:
@@ -136,6 +136,11 @@ class LocalCallRouter(
|
||||
throw RpcException(RpcResponseError.CODE_INVALID_METHOD_PARAMS, "Must provide 2 parameters")
|
||||
}
|
||||
val number: Long
|
||||
val withTx = params[1].toString().toBoolean()
|
||||
if (withTx) {
|
||||
// with Tx request much more efficient in remote call
|
||||
return null
|
||||
}
|
||||
try {
|
||||
val blockRef = params[0].toString()
|
||||
when {
|
||||
@@ -165,16 +170,8 @@ class LocalCallRouter(
|
||||
} catch (e: IllegalArgumentException) {
|
||||
throw RpcException(RpcResponseError.CODE_INVALID_METHOD_PARAMS, "[0] must be a block number")
|
||||
}
|
||||
val withTx = params[1].toString().toBoolean()
|
||||
var block = reader.blocksByHeightAsCont()
|
||||
.read(number)
|
||||
block = if (withTx) {
|
||||
block.flatMap {
|
||||
fullBlocksReader.read(it.hash)
|
||||
}
|
||||
} else {
|
||||
block
|
||||
}
|
||||
return block.map { it.json!! }
|
||||
|
||||
return reader.blocksByHeightAsCont()
|
||||
.read(number).map { it.json!! }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user