com.wavesplatform.api.http.requests.ExchangeRequest.scala Maven / Gradle / Ivy
The newest version!
package com.wavesplatform.api.http.requests
import com.wavesplatform.account.PublicKey
import com.wavesplatform.common.state.ByteStr
import com.wavesplatform.lang.ValidationError
import com.wavesplatform.transaction.assets.exchange.{ExchangeTransaction, Order}
import com.wavesplatform.transaction.{Proofs, TxTimestamp, TxVersion}
import play.api.libs.json.{Format, Json}
case class ExchangeRequest(
order1: Order,
order2: Order,
amount: Long,
price: Long,
buyMatcherFee: Long,
sellMatcherFee: Long,
version: Option[TxVersion] = None,
sender: Option[String] = None,
senderPublicKey: Option[String] = None,
fee: Option[Long] = None,
timestamp: Option[TxTimestamp] = None,
signature: Option[ByteStr] = None,
proofs: Option[Proofs] = None
) extends TxBroadcastRequest[ExchangeTransaction] {
def toTxFrom(sender: PublicKey): Either[ValidationError, ExchangeTransaction] =
for {
validProofs <- toProofs(signature, proofs)
tx <- ExchangeTransaction.create(
version.getOrElse(1.toByte),
order1,
order2,
amount,
price,
buyMatcherFee,
sellMatcherFee,
fee.getOrElse(0L),
timestamp.getOrElse(0L),
validProofs
)
} yield tx
}
object ExchangeRequest {
implicit val jsonFormat: Format[ExchangeRequest] = Json.format
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy