Skip to content
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.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions .github/workflows/check-pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,19 +17,19 @@ jobs:
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'
java-version: '17'
cache: 'sbt'
gpg-private-key: ${{ secrets.OSSRH_GPG_KEY }}
gpg-passphrase: ${{ secrets.OSSRH_GPG_PASSPHRASE }}
- uses: sbt/setup-sbt@v1
- name: Check PR
run: sbt -J-Xlog:gc*=debug:file=./gc.log --batch "scalafmtCheck;checkPR"
- if: always()
name: Fix test names and durations for Qase
run: |
find node/tests/target/test-reports -name "*.xml" -exec sed -E -i \
-e 's/time="(0(\.0+)?|-0\.[0-9]+)"/time="0.001"/g' \
-e 's/name="([^"]*)(NODE-[0-9]+ )([^"]*)"/name="\2 \1\3"/g' {} +
run: sbt -J-Xlog:gc*=debug:file=./gc.log --batch checkPR
#- if: always()
# name: Fix test names and durations for Qase
# run: |
# find node/tests/target/test-reports -name "*.xml" -exec sed -E -i \
# -e 's/time="(0(\.0+)?|-0\.[0-9]+)"/time="0.001"/g' \
# -e 's/name="([^"]*)(NODE-[0-9]+ )([^"]*)"/name="\2 \1\3"/g' {} +
# Temporarily disabled because of 402 Payment Required
# - uses: qase-tms/gh-actions/run-create@v1
# if: always()
Expand Down Expand Up @@ -100,7 +100,7 @@ jobs:
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'
java-version: '17'
- uses: actions/download-artifact@v7
with:
name: waves-fat-jar
Expand All @@ -125,7 +125,7 @@ jobs:
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'
java-version: '17'
- uses: actions/download-artifact@v7
with:
name: file-compiler
Expand All @@ -140,7 +140,7 @@ jobs:
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'
java-version: '17'
cache: 'sbt'
- uses: sbt/setup-sbt@v1
- name: Run Integration Tests
Expand Down Expand Up @@ -174,7 +174,7 @@ jobs:
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'
java-version: '17'
cache: 'sbt'
gpg-private-key: ${{ secrets.OSSRH_GPG_KEY }}
gpg-passphrase: ${{ secrets.OSSRH_GPG_PASSPHRASE }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/on-push-default-branch.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'
java-version: '17'
cache: 'sbt'
- uses: sbt/setup-sbt@v1
- uses: scalacenter/sbt-dependency-submission@v3
Expand All @@ -28,7 +28,7 @@ jobs:
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'
java-version: '17'
cache: 'sbt'
gpg-private-key: ${{ secrets.OSSRH_GPG_KEY }}
gpg-passphrase: ${{ secrets.OSSRH_GPG_PASSPHRASE }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/on-release-published.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ jobs:
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'
java-version: '17'
cache: 'sbt'
- uses: sbt/setup-sbt@v1
- run: sbt --batch 'buildRIDERunnerForDocker'
Expand Down Expand Up @@ -106,7 +106,7 @@ jobs:
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'
java-version: '17'
cache: 'sbt'
gpg-private-key: ${{ secrets.OSSRH_GPG_KEY }}
gpg-passphrase: ${{ secrets.OSSRH_GPG_PASSPHRASE }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/prepare-release-draft.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'
java-version: '17'
cache: 'sbt'
- uses: sbt/setup-sbt@v1
- run: ./.github/workflows/prepare-release-draft.sh
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish-docker-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ jobs:
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'
java-version: '17'
cache: 'sbt'
- uses: sbt/setup-sbt@v1
- name: Build tarballs for docker
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish-to-npmjs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'
java-version: '17'
cache: 'sbt'
- uses: sbt/setup-sbt@v1
- run: sbt -Dproject.version=${{ steps.ghd.outputs.describe }} --batch ';lang-tests/test;lang-tests-js/test;repl/test;langJS/fullOptJS;replJS/fullOptJS'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import com.wavesplatform.lang.v1.FunctionHeader.Native
import com.wavesplatform.lang.v1.compiler.Terms.{CONST_BYTESTR, EXPR, FUNCTION_CALL}
import com.wavesplatform.lang.v1.eval
import com.wavesplatform.lang.v1.evaluator.FunctionIds
import org.openjdk.jmh.annotations.{Level as _, *}
import org.openjdk.jmh.annotations.*
import org.openjdk.jmh.infra.Blackhole

import java.util.concurrent.TimeUnit
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import com.wavesplatform.lang.v1.FunctionHeader.Native
import com.wavesplatform.lang.v1.compiler.Terms.{ARR, CONST_BYTESTR, CONST_LONG, EXPR, FUNCTION_CALL}
import com.wavesplatform.lang.v1.eval
import com.wavesplatform.lang.v1.evaluator.FunctionIds
import org.openjdk.jmh.annotations.{Level as _, *}
import org.openjdk.jmh.annotations.*
import org.openjdk.jmh.infra.Blackhole

import java.util.concurrent.TimeUnit
Expand Down
92 changes: 30 additions & 62 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,6 @@ lazy val `repl-js` = repl.js
lazy val `curve25519-test` = project.dependsOn(node)

lazy val `waves-node` = (project in file("."))
.configs(Dependencies.DebArm64, Dependencies.DebAmd64)
.aggregate(
`lang-js`,
`lang-jvm`,
Expand All @@ -171,7 +170,7 @@ lazy val `waves-node` = (project in file("."))

inScope(Global)(
Seq(
scalaVersion := "3.7.4",
scalaVersion := "3.8.1",
organization := "com.wavesplatform",
organizationName := "Waves Platform",
organizationHomepage := Some(url("https://wavesplatform.com")),
Expand Down Expand Up @@ -206,7 +205,7 @@ inScope(Global)(
*/
testOptions += Tests.Argument("-oIDOF", "-u", "target/test-reports"),
testOptions += Tests.Setup(_ => sys.props("sbt-testing") = "true"),
network := Network.default(),
network := Network.default(),
resolvers ++= Resolver.sonatypeCentralSnapshots +: Seq(Resolver.mavenLocal),
Compile / packageDoc / publishArtifact := false,
concurrentRestrictions := Seq(Tags.limit(Tags.Test, math.min(EvaluateTask.SystemProcessors, 8))),
Expand All @@ -219,12 +218,8 @@ inScope(Global)(
)
)

lazy val packageAll = taskKey[Unit]("Package all artifacts")
packageAll := {
(node / assembly).value
(`ride-runner` / assembly).value
buildDebPackages.value
buildTarballsForDocker.value
commands += Command.command("packageAll"){ state =>
"node / assembly" :: "ride-runner / assembly" :: "buildDebPackages" :: "buildTarballsForDocker" :: state
}

lazy val buildTarballsForDocker = taskKey[Unit]("Package node and grpc-server tarballs and copy them to docker/target")
Expand All @@ -250,66 +245,49 @@ buildRIDERunnerForDocker := {
lazy val compilePRRaw = taskKey[Unit]("Compile the project")
compilePRRaw := Def
.sequential(
clean,
Def.task {
(`lang-tests` / Test / compile).value
(`repl-jvm` / Test / compile).value
(`lang-tests-js` / Test / compile).value
(`grpc-server` / Test / compile).value
(`node-tests` / Test / compile).value
(`node-it` / Test / compile).value
(benchmark / Test / compile).value
(`node-generator` / Compile / compile).value
(`ride-runner` / Test / compile).value
(`lang-jvm` / Test / compile).value
}
clean.all(ScopeFilter(inAnyProject)),
scalafmtCheck.all(ScopeFilter(inAnyProject, inConfigurations(Compile))),
compile.all(ScopeFilter(inAnyProject, inConfigurations(Test)))
)
.value

lazy val checkPRRaw = taskKey[Unit]("Compile the project and run unit tests")
checkPRRaw := Def
.sequential(
compilePRRaw,
Def.task {
(`lang-tests` / Test / test).value
(`repl-jvm` / Test / test).value
(`lang-js` / Compile / fullOptJS).value
(`lang-tests-js` / Test / test).value
(`grpc-server` / Test / test).value
(`node-tests` / Test / test).value
(`repl-js` / Compile / fullOptJS).value
(`ride-runner` / Test / test).value
(node / assembly).value
buildTarballsForDocker.value
(`lang-jvm` / assembly).value
}
Def.sequential(
test.all(
ScopeFilter(inProjects(`lang-tests`, `repl-jvm`, `lang-tests-js`, `grpc-server`, `node-tests`, `ride-runner`), inConfigurations(Test))
),
fullOptJS.all(ScopeFilter(inProjects(`lang-js`, `repl-js`), inConfigurations(Compile))),
assembly.all(ScopeFilter(inProjects(node, `lang-jvm`))),
buildTarballsForDocker
)
)
.value

def commandWithFatalWarnings(commandName: String, task: TaskKey[Unit]): Command =
Command.command(commandName) { state =>
val extracted = Project.extract(state)
val newState = extracted.appendWithoutSession(
Seq(Global / scalacOptions ++= Seq("-Xfatal-warnings")),
Seq(Global / scalacOptions ++= Seq("-Werror")),
state
)

Project.extract(newState).runTask(task, newState)
state
}

def compilePR = commandWithFatalWarnings("compilePR", compilePRRaw)
def checkPR = commandWithFatalWarnings("checkPR", checkPRRaw)
def compilePR: Command = commandWithFatalWarnings("compilePR", compilePRRaw)
def checkPR: Command = commandWithFatalWarnings("checkPR", checkPRRaw)

lazy val completeQaseRun = taskKey[Unit]("Complete Qase run")
completeQaseRun := Def.task {
(`lang-testkit` / Test / runMain).toTask(" com.wavesplatform.report.QaseRunCompleter").value
}.value

lazy val buildDebPackages = taskKey[Unit]("Build DEB packages")
buildDebPackages := {
(`grpc-server` / Debian / packageBin).value
(node / Debian / packageBin).value
commands += Command.command("buildDebPackages") { state =>
"set node / Debian / packageArchitecture := \"arm64\"" ::
"node/ Debian / packageBin" ::
"set node / Debian / packageArchitecture := \"amd64\"" ::
"node / Debian / packageBin" ::
"grpc-server / Debian / packageBin" ::
state
}

lazy val buildPlatformIndependentArtifacts = taskKey[Unit]("Build fat JARs for node and ride-runner and TGZ for grpc-server")
Expand All @@ -319,20 +297,10 @@ buildPlatformIndependentArtifacts := {
(`grpc-server` / Universal / packageZipTarball).value
}

lazy val buildReleaseArtifacts: Command = Command("buildReleaseArtifacts")(_ => Network.networkParser) { (state, args) =>
args.toSet[Network].foreach { n =>
val newState = Project
.extract(state)
.appendWithoutSession(
Seq(Global / network := n),
state
)
Project.extract(newState).runTask(buildDebPackages, newState)
}

Project.extract(state).runTask(buildPlatformIndependentArtifacts, state)

state
commands += Command("buildReleaseArtifacts")(_ => Network.networkParser) { (state, args) =>
args.toSet[Network].toList.flatMap { n =>
s"set Global / network := $n" :: "buildDebPackages" :: Nil
} ::: "buildPlatformIndependentArtifacts" :: state
}

/** Command: generateGenesis <path-to-config>
Expand Down Expand Up @@ -367,4 +335,4 @@ def generateGenesisCommand: Command =
state
}

commands ++= Seq(compilePR, checkPR, buildReleaseArtifacts, generateGenesisCommand)
commands ++= Seq(compilePR, checkPR, generateGenesisCommand)
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
package com.wavesplatform.curve25519.test

import java.io.*
import java.util
import java.util.concurrent.*
import java.util.concurrent.atomic.AtomicLong

import com.google.common.io.{BaseEncoding, CountingOutputStream}
import com.google.common.primitives.{Bytes, Ints, Longs}
import com.typesafe.scalalogging.StrictLogging
import monix.execution.Scheduler
import org.whispersystems.curve25519.{Curve25519Provider, JavaCurve25519Provider, NativeCurve25519Provider}

import java.io.*
import java.util
import java.util.concurrent.*
import java.util.concurrent.atomic.AtomicLong
import scala.annotation.tailrec
import scala.concurrent.duration.*
import scala.reflect.ClassTag
Expand Down Expand Up @@ -127,8 +126,8 @@ object App extends StrictLogging {
ctor.newInstance().asInstanceOf[A]
}

private val multiplier = 0x5DEECE66DL
private val addend = 0xBL
private val multiplier = 0x5deece66dL
private val addend = 0xbL
private val mask = (1L << 48) - 1
private val MaxMessageLength = 150 * 1024

Expand All @@ -141,10 +140,10 @@ object App extends StrictLogging {
val nv = (seqNr * multiplier + addend) & mask
val value = nv << 32 | nv
Bytes.concat(
Longs.toByteArray(value ^ (randomSeed & 0xF000F000F000F000L)),
Longs.toByteArray(value ^ (randomSeed & 0x0F000F000F000F00L)),
Longs.toByteArray(value ^ (randomSeed & 0x00F000F000F000F0L)),
Longs.toByteArray(value ^ (randomSeed & 0x000F000F000F000FL))
Longs.toByteArray(value ^ (randomSeed & 0xf000f000f000f000L)),
Longs.toByteArray(value ^ (randomSeed & 0x0f000f000f000f00L)),
Longs.toByteArray(value ^ (randomSeed & 0x00f000f000f000f0L)),
Longs.toByteArray(value ^ (randomSeed & 0x000f000f000f000fL))
)
}

Expand Down Expand Up @@ -231,7 +230,7 @@ object App extends StrictLogging {
def main(args: Array[String]): Unit = {
val nativeProvider = provider[NativeCurve25519Provider]
val javaProvider = provider[JavaCurve25519Provider]
val latch = new CountDownLatch(workerCount)
val latch = new CountDownLatch(workerCount)

args(0).toLowerCase match {
case "verify" =>
Expand Down Expand Up @@ -323,11 +322,10 @@ object App extends StrictLogging {
)
latch.await()

maybeOut.foreach {
case (out, writer, _) =>
writer.join()
out.flush()
out.close()
maybeOut.foreach { case (out, writer, _) =>
writer.join()
out.flush()
out.close()
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -358,7 +358,7 @@ object Terms {
else
caseType

override def hashCode(): Int = MurmurHash3.productHash(this)
override def hashCode(): Int = MurmurHash3.caseClassHash(this)

override def equals(obj: Any): Boolean = obj match {
case CaseObj(`caseType`, `fields`) => true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import com.wavesplatform.lang.v1.evaluator.FunctionIds.*
import com.wavesplatform.lang.v1.evaluator.ctx.impl.*
import com.wavesplatform.lang.v1.evaluator.ctx.impl.EnvironmentFunctions.AddressLength
import com.wavesplatform.lang.v1.evaluator.ctx.impl.converters.*
import com.wavesplatform.lang.v1.evaluator.ctx.impl.waves.Bindings.{scriptTransfer as _, *}
import com.wavesplatform.lang.v1.evaluator.ctx.impl.waves.Bindings.{buildAssetInfo, transactionObject}
import com.wavesplatform.lang.v1.evaluator.ctx.impl.waves.Types.*
import com.wavesplatform.lang.v1.evaluator.ctx.{BaseFunction, NativeFunction, UserFunction}
import com.wavesplatform.lang.v1.evaluator.{ContextfulNativeFunction, ContextfulUserFunction, FunctionIds, Log}
Expand Down
Loading
Loading