Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade sigma to v5.0.10 #2027

Merged
merged 1 commit into from
Aug 21, 2023
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.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ val circeVersion = "0.13.0"
val akkaVersion = "2.6.10"
val akkaHttpVersion = "10.2.4"

val sigmaStateVersion = "5.0.8"
val sigmaStateVersion = "5.0.10"

// for testing current sigmastate build (see sigmastate-ergo-it jenkins job)
val effectiveSigmaStateVersion = Option(System.getenv().get("SIGMASTATE_VERSION")).getOrElse(sigmaStateVersion)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ import org.ergoplatform.ErgoLikeContext.Height
import org.ergoplatform.sdk.wallet.protocol.context.ErgoLikeParameters
import org.ergoplatform.wallet.protocol.Constants
import org.ergoplatform.{ErgoBox, ErgoBoxCandidate, ErgoLikeContext, ErgoLikeInterpreter}
import scorex.crypto.authds.ADDigest
import scorex.util.ScorexLogging
import sigmastate.Values.ErgoTree
import sigmastate.interpreter.Interpreter.{ScriptEnv, VerificationResult}
import sigmastate.{AvlTreeData, AvlTreeFlags}
import special.collection.Coll

import scala.util.Try

Expand Down Expand Up @@ -100,7 +100,7 @@ object ErgoInterpreter {
new ErgoInterpreter(params)

/** Create [[AvlTreeData]] with the given digest and all operations enabled. */
def avlTreeFromDigest(digest: ADDigest): AvlTreeData = {
def avlTreeFromDigest(digest: Coll[Byte]): AvlTreeData = {
val flags = AvlTreeFlags(insertAllowed = true, updateAllowed = true, removeAllowed = true)
AvlTreeData(digest, flags, Constants.HashLength)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.ergoplatform.wallet.serialization

import org.ergoplatform.JsonCodecs
import org.ergoplatform.sdk.JsonCodecs

/**
* JSON Codecs provided as singleton package, not trait.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package org.ergoplatform.wallet.interpreter

import org.ergoplatform.sdk.wallet.protocol.context.{ErgoLikeParameters, ErgoLikeStateContext}
import scorex.crypto.authds.ADDigest
import scorex.util.encode.Base16
import sigmastate.basics.CryptoConstants
import sigmastate.eval.Extensions.ArrayOps
import sigmastate.eval.{CGroupElement, CPreHeader, Colls}
import special.collection.Coll
import special.sigma.{Header, PreHeader}
Expand Down Expand Up @@ -39,9 +39,10 @@ trait InterpreterSpecCommon {

override def sigmaLastHeaders: Coll[Header] = Colls.emptyColl

override def previousStateDigest: ADDigest =
ADDigest @@ Base16.decode("a5df145d41ab15a01e0cd3ffbab046f0d029e5412293072ad0f5827428589b9302")
override def previousStateDigest: Coll[Byte] =
Base16.decode("a5df145d41ab15a01e0cd3ffbab046f0d029e5412293072ad0f5827428589b9302")
.getOrElse(throw new Error(s"Failed to parse genesisStateDigest"))
.toColl

override def sigmaPreHeader: PreHeader = CPreHeader(
version = 0,
Expand Down
2 changes: 2 additions & 0 deletions src/main/scala/org/ergoplatform/http/api/ApiCodecs.scala
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ import sigmastate.serialization.OpCodes
import special.sigma.AnyValue
import org.ergoplatform.nodeView.state.SnapshotsInfo
import org.ergoplatform.nodeView.state.UtxoState.ManifestId
import org.ergoplatform.sdk.JsonCodecs

import java.math.BigInteger
import scala.util.{Failure, Success, Try}

Expand Down
3 changes: 2 additions & 1 deletion src/main/scala/org/ergoplatform/http/api/ScanEntities.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ package org.ergoplatform.http.api

import io.circe.{Decoder, HCursor}
import org.ergoplatform.ErgoBox.BoxId
import org.ergoplatform.{ErgoBox, JsonCodecs}
import org.ergoplatform.ErgoBox
import org.ergoplatform.sdk.JsonCodecs
import org.ergoplatform.wallet.Constants.ScanId

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ object Header extends ApiCodecs {
version = header.version,
parentId = header.parentId.toBytes.toColl,
ADProofsRoot = header.ADProofsRoot.asInstanceOf[Array[Byte]].toColl,
stateRoot = CAvlTree(ErgoInterpreter.avlTreeFromDigest(header.stateRoot)),
stateRoot = CAvlTree(ErgoInterpreter.avlTreeFromDigest(header.stateRoot.toColl)),
transactionsRoot = header.transactionsRoot.asInstanceOf[Array[Byte]].toColl,
timestamp = header.timestamp,
nBits = header.nBits,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.ergoplatform.nodeView.mempool

import io.circe.{Encoder, Json}
import org.ergoplatform.JsonCodecs
import org.ergoplatform.sdk.JsonCodecs
import org.ergoplatform.settings.Algos
import scorex.crypto.authds.merkle.MerkleProof
import scorex.crypto.hash.Digest32
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import scorex.crypto.authds.ADDigest
import scorex.util.ScorexLogging
import scorex.util.serialization.{Reader, Writer}
import sigmastate.basics.CryptoConstants.EcPointType
import sigmastate.eval.Extensions.ArrayOps
import sigmastate.eval.SigmaDsl
import special.collection.Coll

Expand Down Expand Up @@ -83,10 +84,10 @@ class ErgoStateContext(val lastHeaders: Seq[Header],

// todo remove from ErgoLikeContext and from ErgoStateContext
// State root hash before the last block
override def previousStateDigest: ADDigest = if (sigmaLastHeaders.toArray.nonEmpty) {
ADDigest @@ sigmaLastHeaders.toArray.head.stateRoot.digest.toArray
override def previousStateDigest: Coll[Byte] = if (sigmaLastHeaders.toArray.nonEmpty) {
sigmaLastHeaders.toArray.head.stateRoot.digest
} else {
genesisStateDigest
genesisStateDigest.toColl
}

/* NOHF PROOF:
Expand Down Expand Up @@ -274,7 +275,7 @@ class ErgoStateContext(val lastHeaders: Seq[Header],
}.flatten

override def toString: String =
s"ErgoStateContext($currentHeight, ${encoder.encode(previousStateDigest)}, $lastHeaders, $currentParameters)"
s"ErgoStateContext($currentHeight, ${encoder.encode(previousStateDigest.toArray)}, $lastHeaders, $currentParameters)"


/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ package org.ergoplatform.nodeView.wallet.models
import io.circe.generic.encoding.DerivedObjectEncoder.deriveEncoder
import io.circe.syntax._
import io.circe.{Encoder, Json}
import org.ergoplatform.{ErgoBox, JsonCodecs}
import org.ergoplatform.ErgoBox
import org.ergoplatform.sdk.JsonCodecs

/**
* Response for requested boxes that contains ErgoBoxes and ChangeBoxes
Expand Down