Skip to content

Commit

Permalink
add wart remover
Browse files Browse the repository at this point in the history
  • Loading branch information
blazingsiyan committed Jan 3, 2019
1 parent 20a606e commit 14d79b9
Show file tree
Hide file tree
Showing 153 changed files with 779 additions and 866 deletions.
2 changes: 1 addition & 1 deletion app/js/src/main/scala/jbok/app/AppConfig.scala
@@ -1,7 +1,7 @@
package jbok.app
import java.net.URI

case class AppConfig(uri: URI)
final case class AppConfig(uri: URI)
object AppConfig {
val default = AppConfig(
new URI("ws://localhost:8888")
Expand Down
8 changes: 4 additions & 4 deletions app/js/src/main/scala/jbok/app/AppState.scala
Expand Up @@ -17,16 +17,16 @@ import scodec.bits.ByteVector

import scala.concurrent.duration._

case class ClientStatus(number: Var[BigInt] = Var(0),
final case class ClientStatus(number: Var[BigInt] = Var(0),
gasPrice: Var[BigInt] = Var(0),
gasLimit: Var[BigInt] = Var(0),
miningStatus: Var[String] = Var("idle"))

case class BlockHistory(bestBlockNumber: Var[BigInt] = Var(-1), history: Vars[Block] = Vars.empty)
final case class BlockHistory(bestBlockNumber: Var[BigInt] = Var(-1), history: Vars[Block] = Vars.empty)

case class Contract(address: Address, abi: List[Description])
final case class Contract(address: Address, abi: List[Description])

case class AppState(
final case class AppState(
config: Var[AppConfig],
hrefHandler: Event => Unit,
currentId: Var[Option[String]] = Var(None),
Expand Down
2 changes: 1 addition & 1 deletion app/js/src/main/scala/jbok/app/SimuClient.scala
Expand Up @@ -9,7 +9,7 @@ import jbok.network.rpc.RpcClient
import jbok.common.execution._
import jbok.codec.rlp.implicits._

case class SimuClient(uri: URI, simulation: SimulationAPI)
final case class SimuClient(uri: URI, simulation: SimulationAPI)

object SimuClient {
import jbok.network.rpc.RpcServer._
Expand Down
6 changes: 3 additions & 3 deletions app/js/src/main/scala/jbok/app/components/Form.scala
Expand Up @@ -9,11 +9,11 @@ import jbok.app.views.CustomInput
import org.scalajs.dom.raw.{HTMLInputElement, HTMLTextAreaElement}
import org.scalajs.dom.{Element, Event, KeyboardEvent}

case class FormEntry(name: String, `type`: String = "text", value: Var[String] = Var("")) {
final case class FormEntry(name: String, `type`: String = "text", value: Var[String] = Var("")) {
val initValue = value.value
}

case class Form2(entries: Constants[CustomInput], submit: Map[String, CustomInput] => Unit) {
final case class Form2(entries: Constants[CustomInput], submit: Map[String, CustomInput] => Unit) {
val entryMap = entries.value.map(x => x.name -> x).toMap

def clear() = entries.value.foreach(_.clear())
Expand All @@ -34,7 +34,7 @@ case class Form2(entries: Constants[CustomInput], submit: Map[String, CustomInpu
</div>
}

case class Form(entries: Constants[FormEntry], submit: Map[String, String] => Unit, idOpt: Option[String] = None) {
final case class Form(entries: Constants[FormEntry], submit: Map[String, String] => Unit, idOpt: Option[String] = None) {
val id = idOpt getOrElse UUID.randomUUID().toString

val entryMap = entries.value.map(x => x.name -> x).toMap
Expand Down
2 changes: 1 addition & 1 deletion app/js/src/main/scala/jbok/app/components/Modal.scala
Expand Up @@ -7,7 +7,7 @@ import com.thoughtworks.binding.Binding
import org.scalajs.dom.raw.HTMLElement
import org.scalajs.dom.{document, Element, Event}

case class Modal(title: String, body: Binding[Element], onConfirm: () => Unit = { () =>
final case class Modal(title: String, body: Binding[Element], onConfirm: () => Unit = { () =>
}, onCancel: () => Unit = { () =>
}, idOpt: Option[String] = None) {
val id = idOpt getOrElse UUID.randomUUID().toString
Expand Down
2 changes: 1 addition & 1 deletion app/js/src/main/scala/jbok/app/components/SelectMenu.scala
Expand Up @@ -5,7 +5,7 @@ import com.thoughtworks.binding.Binding
import com.thoughtworks.binding.Binding.{Var, Vars}
import org.scalajs.dom._

case class SelectItem(name: String, value: String)
final case class SelectItem(name: String, value: String)

class SelectMenu(title: String) {
val selected = Var[SelectItem](SelectItem(title, ""))
Expand Down
2 changes: 1 addition & 1 deletion app/js/src/main/scala/jbok/app/views/AccountView.scala
Expand Up @@ -8,7 +8,7 @@ import jbok.app.views.Nav.Tab
import jbok.core.models.{Account, Address, SignedTransaction}
import org.scalajs.dom._

case class AccountView(state: AppState) {
final case class AccountView(state: AppState) {
val address: Var[Address] = Var(Address(0))
val account: Var[Account] = Var(Account())

Expand Down
2 changes: 1 addition & 1 deletion app/js/src/main/scala/jbok/app/views/AccountsView.scala
Expand Up @@ -9,7 +9,7 @@ import jbok.core.models.{Account, Address}
import org.scalajs.dom.{Element, _}
import scodec.bits.ByteVector

case class AccountsView(state: AppState) {
final case class AccountsView(state: AppState) {
val newAccountForm = Form2(
Constants(CustomInput("Password", "password", None, (addr: String) => true, "password")), { data =>
if (data.values.forall(_.isValid))
Expand Down
2 changes: 1 addition & 1 deletion app/js/src/main/scala/jbok/app/views/BlockView.scala
Expand Up @@ -10,7 +10,7 @@ import org.scalajs.dom._

import scala.scalajs.js.Date

case class BlockView(state: AppState) {
final case class BlockView(state: AppState) {

@binding.dom
val overview: Binding[Element] =
Expand Down
2 changes: 1 addition & 1 deletion app/js/src/main/scala/jbok/app/views/BlocksView.scala
Expand Up @@ -8,7 +8,7 @@ import jbok.app.{AppState, BlockHistory}
import jbok.app.components.Modal
import org.scalajs.dom._

case class BlocksView(state: AppState) {
final case class BlocksView(state: AppState) {
@binding.dom
def render: Binding[Element] =
<div>
Expand Down
9 changes: 6 additions & 3 deletions app/js/src/main/scala/jbok/app/views/CallTxView.scala
Expand Up @@ -16,7 +16,8 @@ import io.circe.parser._
import jbok.evm.abi
import jbok.sdk.api.{BlockParam, CallTx, TransactionRequest}

case class CallTxView(state: AppState) {
@SuppressWarnings(Array("org.wartremover.warts.OptionPartial", "org.wartremover.warts.EitherProjectionPartial"))
final case class CallTxView(state: AppState) {
val nodeAccounts = Vars.empty[Address]
val contracts = Vars.empty[Address]

Expand Down Expand Up @@ -52,8 +53,10 @@ case class CallTxView(state: AppState) {
txStatus.value = ""

val element = dom.document.getElementById("decodeSelect")
if (element.isInstanceOf[HTMLSelectElement]) {
element.asInstanceOf[HTMLSelectElement].value = "default"
element match {
case x: HTMLSelectElement =>
x.value = "default"
case _ => ()
}
}

Expand Down
6 changes: 5 additions & 1 deletion app/js/src/main/scala/jbok/app/views/ConfigView.scala
Expand Up @@ -13,7 +13,11 @@ import jbok.common.execution._
import org.scalajs.dom.Event
import org.scalajs.dom.raw._

case class ConfigView(state: AppState) {
@SuppressWarnings(Array(
"org.wartremover.warts.OptionPartial",
"org.wartremover.warts.EitherProjectionPartial",
))
final case class ConfigView(state: AppState) {
val interfaces: Vars[String] = Vars.empty[String]
val host: Var[String] = Var("127.0.0.1")
val hostIsValid: Var[Boolean] = Var(true)
Expand Down
7 changes: 6 additions & 1 deletion app/js/src/main/scala/jbok/app/views/ContractView.scala
Expand Up @@ -10,7 +10,12 @@ import org.scalajs.dom._
import scodec.bits.ByteVector
import jbok.evm.abi.parseContract

case class ContractView(state: AppState) {
@SuppressWarnings(Array(
"org.wartremover.warts.OptionPartial",
"org.wartremover.warts.EitherProjectionPartial",
"org.wartremover.warts.TryPartial",
))
final case class ContractView(state: AppState) {
val watchForm = Form2(
Constants(
CustomInput("Address", "address", None, (addr: String) => InputValidator.isValidAddress(addr)),
Expand Down
4 changes: 2 additions & 2 deletions app/js/src/main/scala/jbok/app/views/CustomInput.scala
Expand Up @@ -9,7 +9,7 @@ import jbok.core.models.Address
import org.scalajs.dom.Event
import org.scalajs.dom.raw.{Element, HTMLInputElement, HTMLSelectElement, HTMLTextAreaElement}

case class CustomInput(name: String,
final case class CustomInput(name: String,
placeholder: String = "",
idOpt: Option[String] = None,
validator: String => Boolean = (value: String) => true,
Expand Down Expand Up @@ -55,7 +55,7 @@ case class CustomInput(name: String,
</div>
}

case class AddressOptionInput(candidates: Vars[Address],
final case class AddressOptionInput(candidates: Vars[Address],
validator: String => Boolean = (addr: String) => InputValidator.isValidAddress(addr)) {
val address: Var[String] = Var("")
val otherAddressDisable: Var[Boolean] = Var(false)
Expand Down
4 changes: 2 additions & 2 deletions app/js/src/main/scala/jbok/app/views/DeployContractView.scala
Expand Up @@ -5,14 +5,14 @@ import com.thoughtworks.binding
import com.thoughtworks.binding.Binding
import com.thoughtworks.binding.Binding.{Var, Vars}
import jbok.app.{AppState, ContractAddress}
import jbok.sdk.api.{BlockParam, CallTx}
import jbok.core.models.{Account, Address}
import jbok.sdk.api.{BlockParam, CallTx, TransactionRequest}
import org.scalajs.dom.raw.HTMLInputElement
import org.scalajs.dom.{Element, _}
import scodec.bits.ByteVector

case class DeployContractView(state: AppState) {
@SuppressWarnings(Array("org.wartremover.warts.OptionPartial", "org.wartremover.warts.EitherProjectionPartial"))
final case class DeployContractView(state: AppState) {
val nodeAccounts = Vars.empty[Address]

val currentId = state.currentId.value
Expand Down
4 changes: 2 additions & 2 deletions app/js/src/main/scala/jbok/app/views/Nav.scala
Expand Up @@ -6,8 +6,8 @@ import com.thoughtworks.binding.Binding.{Var, Vars}
import org.scalajs.dom._

object Nav {
case class Tab(name: String, content: Var[Binding[Node]], icon: String)
case class TabList(tabs: Vars[Tab], selected: Var[Tab])
final case class Tab(name: String, content: Var[Binding[Node]], icon: String)
final case class TabList(tabs: Vars[Tab], selected: Var[Tab])
@binding.dom
def renderEmpty: Binding[Node] =
<div></div>
Expand Down
3 changes: 2 additions & 1 deletion app/js/src/main/scala/jbok/app/views/NodeSelect.scala
Expand Up @@ -7,7 +7,8 @@ import com.thoughtworks.binding.Binding.Constants
import org.scalajs.dom._
import org.scalajs.dom.raw.HTMLSelectElement

case class NodeSelect(state: AppState) {
@SuppressWarnings(Array("org.wartremover.warts.OptionPartial", "org.wartremover.warts.EitherProjectionPartial"))
final case class NodeSelect(state: AppState) {
@binding.dom
def render: Binding[Element] = {
val onChangeHandler = { event: Event =>
Expand Down
2 changes: 1 addition & 1 deletion app/js/src/main/scala/jbok/app/views/SearchBar.scala
Expand Up @@ -7,7 +7,7 @@ import org.scalajs.dom._
import org.scalajs.dom.ext.KeyCode
import org.scalajs.dom.raw.HTMLInputElement

case class SearchBar(state: AppState) {
final case class SearchBar(state: AppState) {
val keyDownHandler = { event: KeyboardEvent =>
(event.currentTarget, event.keyCode) match {
case (input: HTMLInputElement, KeyCode.Enter) =>
Expand Down
9 changes: 6 additions & 3 deletions app/js/src/main/scala/jbok/app/views/SendTxView.scala
Expand Up @@ -4,15 +4,18 @@ import cats.implicits._
import com.thoughtworks.binding
import com.thoughtworks.binding.Binding
import com.thoughtworks.binding.Binding.{Var, Vars}
import jbok.sdk.api.BlockParam
import jbok.app.AppState
import jbok.core.models.{Account, Address, UInt256}
import jbok.core.models.{Account, Address}
import jbok.sdk.api.{BlockParam, TransactionRequest}
import org.scalajs.dom.raw.HTMLButtonElement
import org.scalajs.dom.{Element, _}
import scodec.bits.ByteVector

case class SendTxView(state: AppState) {
@SuppressWarnings(Array(
"org.wartremover.warts.OptionPartial",
"org.wartremover.warts.EitherProjectionPartial",
))
final case class SendTxView(state: AppState) {
val nodeAccounts = Vars.empty[Address]

val currentId = state.currentId.value
Expand Down
2 changes: 1 addition & 1 deletion app/js/src/main/scala/jbok/app/views/StatusView.scala
Expand Up @@ -6,7 +6,7 @@ import jbok.app.{AppState, ClientStatus}
import org.scalajs.dom._
import org.scalajs.dom.raw.HTMLInputElement

case class StatusView(state: AppState) {
final case class StatusView(state: AppState) {
@binding.dom
def renderItem(title: String, value: String): Binding[Element] =
<div class="status-item delimiter">
Expand Down
1 change: 1 addition & 0 deletions app/js/src/main/scala/jbok/app/views/StxsView.scala
Expand Up @@ -8,6 +8,7 @@ import jbok.app.ContractAddress
import org.scalajs.dom.Element
import org.scalajs.dom.Event

@SuppressWarnings(Array("org.wartremover.warts.OptionPartial", "org.wartremover.warts.EitherProjectionPartial"))
object StxsView {
@binding.dom
def render(stxs: List[SignedTransaction], hrefHandler: Event => Unit): Binding[Element] =
Expand Down
1 change: 1 addition & 0 deletions app/js/src/main/scala/jbok/app/views/TxView.scala
Expand Up @@ -5,6 +5,7 @@ import com.thoughtworks.binding.Binding
import jbok.core.models.SignedTransaction
import org.scalajs.dom.Element

@SuppressWarnings(Array("org.wartremover.warts.OptionPartial", "org.wartremover.warts.EitherProjectionPartial"))
object TxView {
@binding.dom
def render(tx: SignedTransaction): Binding[Element] =
Expand Down
3 changes: 2 additions & 1 deletion app/js/src/main/scala/jbok/app/views/TxsView.scala
Expand Up @@ -9,7 +9,8 @@ import jbok.core.models._
import org.scalajs.dom._
import scodec.bits.ByteVector

case class TxsView(state: AppState) {
@SuppressWarnings(Array("org.wartremover.warts.OptionPartial", "org.wartremover.warts.EitherProjectionPartial"))
final case class TxsView(state: AppState) {
val transactions = Vars[SignedTransaction]()

@binding.dom
Expand Down
9 changes: 5 additions & 4 deletions app/jvm/src/main/scala/jbok/app/FullNode.scala
Expand Up @@ -25,7 +25,7 @@ import jbok.core.sync.SyncManager
import jbok.network.rpc.RpcServer
import jbok.network.server.Server

case class FullNode[F[_]](
final case class FullNode[F[_]](
config: FullNodeConfig,
syncManager: SyncManager[F],
miner: BlockMiner[F],
Expand Down Expand Up @@ -73,11 +73,11 @@ object FullNode {
T: Timer[IO],
CS: ContextShift[IO]
): IO[FullNode[IO]] = {
implicit val chainId = config.genesis.chainId
implicit val chainId: BigInt = config.genesis.chainId
for {
_ <- ScribeLog.setHandlers[IO](
ScribeLog.consoleHandler(Some(Level.fromName(config.logLevel))),
ScribeLogPlatform.fileHandler(config.logsdir, Some(Level.fromName(config.logLevel)))
ScribeLogPlatform.fileHandler(config.logDir, Some(Level.fromName(config.logLevel)))
)
metrics <- Metrics.default[IO]
keystore <- KeyStorePlatform[IO](config.keystore.keystoreDir)
Expand All @@ -90,7 +90,8 @@ object FullNode {
case Left(_) => IO.pure(None)
case Right(kp) => IO.pure(kp.some)
}
history <- History.forPath[IO](config.history.chainDataDir)(F, chainId, T, metrics)
history <- History
.forBackendAndPath[IO](config.history.dbBackend, config.history.chainDataDir)(F, chainId, T, metrics)
blockPool <- BlockPool(history, BlockPoolConfig())
clique <- Clique(config.mining, config.genesis, history, minerKey)
consensus = new CliqueConsensus[IO](clique, blockPool)
Expand Down
11 changes: 6 additions & 5 deletions app/jvm/src/main/scala/jbok/app/MainApp.scala
Expand Up @@ -14,14 +14,15 @@ import jbok.app.simulations.SimulationImpl
import jbok.codec.rlp.implicits._
import jbok.common.metrics.Metrics
import jbok.core.config.Configs.FullNodeConfig
import jbok.core.config.{ConfigHelper, ConfigLoader, GenesisConfig}
import jbok.core.config.{TypeSafeConfigHelper, ConfigLoader, GenesisConfig}
import jbok.core.consensus.poa.clique.Clique
import jbok.core.keystore.KeyStorePlatform
import jbok.network.rpc.RpcServer
import jbok.network.server.Server

import scala.concurrent.duration._

@SuppressWarnings(Array("org.wartremover.warts.OptionPartial", "org.wartremover.warts.EitherProjectionPartial"))
object MainApp extends StreamApp {
val buildVersion = getClass.getPackage.getImplementationVersion

Expand All @@ -36,16 +37,16 @@ object MainApp extends StreamApp {

def parseConfig(args: List[String]): IO[Config] =
for {
cmdConfig <- IO(ConfigHelper.parseConfig(args).right.get)
config = ConfigHelper.overrideWith(cmdConfig)
cmdConfig <- IO(TypeSafeConfigHelper.parseCmdArgs(args).right.get)
config = TypeSafeConfigHelper.overrideBy(cmdConfig)
} yield config

def loadConfig(config: Config): IO[FullNodeConfig] =
for {
fullNodeConfig <- ConfigLoader.loadFullNodeConfig[IO](config)
_ <- IO(println(version))
_ <- IO(println(banner))
_ <- IO(println(ConfigHelper.printConfig(config).render))
_ <- IO(println(TypeSafeConfigHelper.printConfig(config).render))
} yield fullNodeConfig

override def run(args: List[String]): IO[ExitCode] =
Expand Down Expand Up @@ -112,7 +113,7 @@ object MainApp extends StreamApp {
for {
_ <- IO(println(version))
_ <- IO(println(banner))
_ <- IO(println(ConfigHelper.printConfig(ConfigHelper.reference).render))
_ <- IO(println(TypeSafeConfigHelper.printConfig(TypeSafeConfigHelper.reference).render))
} yield ExitCode.Error
}
}
1 change: 0 additions & 1 deletion app/jvm/src/main/scala/jbok/app/api/TxGraphGen.scala
Expand Up @@ -3,7 +3,6 @@ package jbok.app.simulations
import cats.effect.IO
import jbok.common.GraphUtil
import jbok.core.config.GenesisConfig
import jbok.core.config.defaults.reference
import jbok.core.models._
import jbok.crypto.signature.{ECDSA, KeyPair, Signature}
import scalax.collection.GraphEdge.DiEdge
Expand Down
Expand Up @@ -4,6 +4,7 @@ import cats.effect.IO
import jbok.core.peer.{PeerManager, PeerNode}
import jbok.sdk.api.AdminAPI

@SuppressWarnings(Array("org.wartremover.warts.OptionPartial", "org.wartremover.warts.EitherProjectionPartial"))
final class AdminApiImpl(
peerManager: PeerManager[IO]
) extends AdminAPI[IO] {
Expand Down
Expand Up @@ -16,6 +16,10 @@ import scodec.bits.ByteVector
import scala.concurrent.duration.Duration
import scala.util.Try

@SuppressWarnings(Array(
"org.wartremover.warts.OptionPartial",
"org.wartremover.warts.EitherProjectionPartial",
))
object PersonalApiImpl {
def apply(
keyStore: KeyStorePlatform[IO],
Expand Down

0 comments on commit 14d79b9

Please sign in to comment.