Skip to content

Commit 1abafe9

Browse files
authored
Merge pull request #884 from ScorexFoundation/v5.0.9-RC
Release Candidate v5.0.9
2 parents 50ce9da + c728da6 commit 1abafe9

File tree

29 files changed

+981
-28
lines changed

29 files changed

+981
-28
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,5 @@ spam-tests/
4949
.metals/
5050
.vscode/
5151
project/metals.sbt
52-
/project/project/
52+
/project/project/
53+
.bsp/

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ be verified before the spending transaction is added to the blockchain.
6161
To allow valid coin spending a
6262
[verifier](sigmastate/src/main/scala/sigmastate/interpreter/Interpreter.scala)
6363
is running the ErgoTree interpreter with the following three inputs:
64-
- a quarding proposition given by an ErgoTree
64+
- a guarding proposition given by an ErgoTree
6565
- a blockchain _context_ of the transaction being verified
6666
- a _proof_ (aka transaction signature) generated by a _prover_
6767

build.sbt

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ organization := "org.scorexfoundation"
55

66
name := "sigma-state"
77

8-
lazy val scala213 = "2.13.8"
8+
lazy val scala213 = "2.13.9"
99
lazy val scala212 = "2.12.15"
1010
lazy val scala211 = "2.11.12"
1111

@@ -257,9 +257,28 @@ lazy val interpreterJS = interpreter.js
257257
)
258258
)
259259

260+
lazy val parsers = crossProject(JVMPlatform, JSPlatform)
261+
.in(file("parsers"))
262+
.dependsOn(interpreter % allConfigDependency)
263+
.settings(libraryDefSettings)
264+
.settings(libraryDependencies ++=
265+
Seq(scorexUtil, fastparse) ++ circeDeps(scalaVersion.value)
266+
)
267+
.jvmSettings(
268+
crossScalaSettings
269+
)
270+
.jsSettings(
271+
crossScalaSettingsJS,
272+
libraryDependencies ++= Seq(
273+
"org.scala-js" %%% "scala-js-macrotask-executor" % "1.0.0"
274+
),
275+
useYarn := true
276+
)
277+
lazy val parsersJS = parsers.js
278+
.enablePlugins(ScalaJSBundlerPlugin)
260279

261280
lazy val sc = (project in file("sc"))
262-
.dependsOn(graphir % allConfigDependency, interpreter.jvm % allConfigDependency)
281+
.dependsOn(graphir % allConfigDependency, interpreter.jvm % allConfigDependency, parsers.jvm % allConfigDependency)
263282
.settings(libraryDefSettings)
264283
.settings(libraryDependencies ++=
265284
Seq(scorexUtil, fastparse) ++ circeDeps(scalaVersion.value)
@@ -268,7 +287,7 @@ lazy val sc = (project in file("sc"))
268287

269288
lazy val sdk = crossProject(JVMPlatform, JSPlatform)
270289
.in(file("sdk"))
271-
.dependsOn(corelib % allConfigDependency, interpreter % allConfigDependency)
290+
.dependsOn(corelib % allConfigDependency, interpreter % allConfigDependency, parsers % allConfigDependency)
272291
.settings(commonSettings ++ testSettings2,
273292
commonDependenies2,
274293
testingDependencies2,
@@ -298,13 +317,13 @@ lazy val sdkJS = sdk.js
298317
)
299318

300319
lazy val sigma = (project in file("."))
301-
.aggregate(common.jvm, corelib.jvm, graphir, interpreter.jvm, sc, sdk.jvm)
320+
.aggregate(common.jvm, corelib.jvm, graphir, interpreter.jvm, parsers.jvm, sc, sdk.jvm)
302321
.settings(libraryDefSettings, rootSettings)
303322
.settings(publish / aggregate := false)
304323
.settings(publishLocal / aggregate := false)
305324

306325
lazy val aggregateCompile = ScopeFilter(
307-
inProjects(common.jvm, corelib.jvm, graphir, interpreter.jvm, sc, sdk.jvm),
326+
inProjects(common.jvm, corelib.jvm, graphir, interpreter.jvm, parsers.jvm, sc, sdk.jvm),
308327
inConfigurations(Compile))
309328

310329
lazy val rootSettings = Seq(

docs/LangSpec.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -643,6 +643,10 @@ class Option[A] {
643643
/** Returns true if the option is an instance of Some(value), false otherwise.
644644
*/
645645
def isDefined: Boolean;
646+
647+
/** Returns true if the option is None, false otherwise.
648+
*/
649+
def isEmpty: Boolean;
646650

647651
/** Returns the option's value if the option is nonempty, otherwise
648652
* return the result of evaluating `default`.

interpreter/shared/src/test/scala/sigmastate/serialization/generators/ObjectGenerators.scala

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -680,6 +680,12 @@ trait ObjectGenerators extends TypeGenerators
680680
ErgoTree.withoutSegregation))
681681
} yield treeBuilder(prop)
682682

683+
lazy val ergoTreeWithSegregationGen: Gen[ErgoTree] = for {
684+
sigmaBoolean <- Gen.delay(sigmaBooleanGen)
685+
propWithConstants <- Gen.delay(logicalExprTreeNodeGen(Seq(AND.apply, OR.apply, XorOf.apply)).map(_.toSigmaProp))
686+
prop <- Gen.oneOf(propWithConstants, sigmaBoolean.toSigmaProp)
687+
} yield ErgoTree.withSegregation(prop)
688+
683689
def headerGen(stateRoot: AvlTree, parentId: Coll[Byte]): Gen[Header] = for {
684690
id <- modifierIdBytesGen
685691
version <- arbByte.arbitrary

sc/src/main/scala/sigmastate/lang/SigmaParser.scala renamed to parsers/shared/src/main/scala/sigmastate/lang/SigmaParser.scala

File renamed without changes.
File renamed without changes.

sc/src/main/scala/sigmastate/lang/syntax/Basic.scala renamed to parsers/shared/src/main/scala/sigmastate/lang/syntax/Basic.scala

File renamed without changes.

sc/src/main/scala/sigmastate/lang/syntax/Core.scala renamed to parsers/shared/src/main/scala/sigmastate/lang/syntax/Core.scala

File renamed without changes.

sc/src/main/scala/sigmastate/lang/syntax/Exprs.scala renamed to parsers/shared/src/main/scala/sigmastate/lang/syntax/Exprs.scala

File renamed without changes.

0 commit comments

Comments
 (0)