--show-sk flag (#465)

This commit is contained in:
Dima 2022-03-25 10:02:07 +03:00 committed by GitHub
parent e14af21557
commit fe21fdc1d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 76 additions and 74 deletions

View File

@ -1,21 +1,21 @@
package aqua
import aqua.builder.ArgumentGetter
import aqua.raw.value.{LiteralRaw, ValueRaw, VarRaw}
import cats.data.{NonEmptyChain, NonEmptyList, Validated, ValidatedNec, ValidatedNel}
import Validated.{invalid, invalidNec, valid, validNec, validNel}
import aqua.parser.expr.func.CallArrowExpr
import aqua.parser.lexer.{LiteralToken, VarToken}
import aqua.parser.lift.Span
import aqua.types.{ArrayType, BottomType, LiteralType, ScalarType, Type}
import cats.{~>, Id}
import aqua.raw.value.{LiteralRaw, ValueRaw, VarRaw}
import aqua.types.*
import cats.data.Validated.{invalid, invalidNec, valid, validNec, validNel}
import cats.data.*
import cats.effect.Concurrent
import com.monovore.decline.Opts
import cats.syntax.applicative.*
import cats.syntax.apply.*
import cats.syntax.flatMap.*
import cats.syntax.functor.*
import cats.syntax.traverse.*
import cats.{~>, Id}
import com.monovore.decline.Opts
import fs2.io.file.Files
import scala.scalajs.js

View File

@ -3,17 +3,17 @@ package aqua
import aqua.builder.{ArgumentGetter, Service}
import aqua.raw.value.ValueRaw
import aqua.run.{GeneralRunOptions, RunCommand, RunOpts}
import com.monovore.decline.{Command, Opts}
import fs2.io.file.{Files, Path}
import cats.data.Validated.{invalid, invalidNec, valid, validNec, validNel}
import cats.data.{NonEmptyList, Validated, ValidatedNec}
import cats.effect.ExitCode
import cats.effect.kernel.Async
import cats.syntax.applicative.*
import cats.syntax.flatMap.*
import cats.syntax.monad.*
import cats.syntax.functor.*
import cats.data.{NonEmptyList, Validated, ValidatedNec}
import Validated.{invalid, invalidNec, valid, validNec, validNel}
import cats.syntax.monad.*
import cats.{Applicative, Monad}
import com.monovore.decline.{Command, Opts}
import fs2.io.file.{Files, Path}
import scribe.Logging
import scala.concurrent.ExecutionContext

View File

@ -23,7 +23,6 @@ import aqua.files.AquaFilesIO
import aqua.ipfs.js.IpfsApi
import aqua.model.LiteralModel
import aqua.raw.value.LiteralRaw
import aqua.run.RunCommand.createKeyPair
import aqua.run.{GeneralRunOptions, RunCommand, RunConfig, RunOpts}
import cats.effect.{Concurrent, ExitCode, Resource, Sync}
import cats.syntax.flatMap.*

View File

@ -3,11 +3,12 @@ package aqua.keypair
import aqua.io.OutputPrinter
import aqua.js.KeyPair
import aqua.keypair.KeyPairShow.show
import cats.Applicative.ops.toAllApplicativeOps
import cats.effect.ExitCode
import cats.effect.kernel.Async
import cats.implicits.catsSyntaxApplicativeId
import cats.syntax.show.*
import cats.syntax.applicative.*
import cats.syntax.functor.*
import cats.{Applicative, Monad}
import com.monovore.decline.{Command, Opts}
import scribe.Logging

View File

@ -135,7 +135,7 @@ object DistOpts extends Logging {
"deploy_service",
"Deploy service from WASM modules",
(
GeneralRunOptions.commonOpt,
GeneralRunOptions.commonOptWithSecretKey,
configFromFileOpt[F],
srvNameOpt
).mapN { (common, configFromFileF, srvName) =>

View File

@ -5,17 +5,18 @@ import aqua.backend.FunctionDef
import aqua.builder.{Finisher, ResultPrinter, Service}
import aqua.io.OutputPrinter
import aqua.js.{CallJsFunction, Fluence, FluenceUtils, PeerConfig}
import aqua.keypair.KeyPairShow.show
import aqua.run.RunCommand.createKeyPair
import cats.data.ValidatedNec
import cats.data.Validated.{invalidNec, validNec}
import cats.effect.{Resource, Sync}
import cats.data.ValidatedNec
import cats.effect.kernel.Async
import cats.effect.{Resource, Sync}
import cats.syntax.applicative.*
import cats.syntax.flatMap.*
import cats.syntax.show.*
import scala.concurrent.{ExecutionContext, Future, Promise, TimeoutException}
import scala.scalajs.js.JSON
import scala.scalajs.js.timers
import scala.scalajs.js.{timers, JSON}
object FuncCaller {
@ -49,11 +50,14 @@ object FuncCaller {
config.common.multiaddr,
config.common.timeout.getOrElse(scalajs.js.undefined),
LogLevelTransformer.logLevelToAvm(config.common.logLevel),
keyPair.orNull
keyPair
)
)
.toFuture
_ = OutputPrinter.print("Your peerId: " + peer.getStatus().peerId)
_ =
if (config.common.showSK) OutputPrinter.print(keyPair.show)
else OutputPrinter.print("Your peerId: " + peer.getStatus().peerId)
// register all services
_ = (services ++ config.argumentGetters.values :+ finisherService).map(_.register(peer))
callFuture = CallJsFunction.funcCallJs(

View File

@ -46,11 +46,11 @@ object RunCommand extends Logging {
def createKeyPair(
sk: Option[Array[Byte]]
): Future[Option[KeyPair]] = {
): Future[KeyPair] = {
sk.map { arr =>
val typedArr = js.typedarray.Uint8Array.from(arr.map(_.toShort).toJSArray)
KeyPair.fromEd25519SK(typedArr).`then`(sk => Some(sk)).toFuture
}.getOrElse(Future.successful(None))
KeyPair.fromEd25519SK(typedArr).toFuture
}.getOrElse(KeyPair.randomEd25519().toFuture)
}
private def findFunction(contexts: Chain[AquaContext], funcName: String): Option[FuncArrow] =

View File

@ -1,6 +1,14 @@
package aqua.run
import aqua.FluenceOpts.{logLevelOpt, multiaddrOpt, onOpt, printAir, secretKeyOpt, timeoutOpt}
import aqua.FluenceOpts.{
logLevelOpt,
multiaddrOpt,
onOpt,
printAir,
secretKeyOpt,
showSKOpt,
timeoutOpt
}
import aqua.builder.{ArgumentGetter, Service}
import aqua.AppOpts
import com.monovore.decline.Opts
@ -16,7 +24,8 @@ case class GeneralRunOptions(
multiaddr: String,
on: Option[String],
printAir: Boolean,
secretKey: Option[Array[Byte]]
secretKey: Option[Array[Byte]],
showSK: Boolean
)
object GeneralRunOptions {
@ -28,7 +37,8 @@ object GeneralRunOptions {
multiaddrOpt,
onOpt,
printAir,
AppOpts.wrapWithOption(secretKeyOpt)
AppOpts.wrapWithOption(secretKeyOpt),
showSKOpt
)
.mapN(GeneralRunOptions.apply)
@ -39,7 +49,8 @@ object GeneralRunOptions {
multiaddrOpt,
onOpt,
printAir,
secretKeyOpt.map(Some.apply)
secretKeyOpt.map(Some.apply),
showSKOpt
)
.mapN(GeneralRunOptions.apply)
}

View File

@ -1,32 +1,20 @@
package aqua.run
import aqua.ArgOpts.checkDataGetServices
import aqua.builder.{ArgumentGetter, Service}
import aqua.files.AquaFilesIO
import aqua.model.transform.TransformConfig
import aqua.model.{LiteralModel, ValueModel, VarModel}
import aqua.parser.expr.func.CallArrowExpr
import aqua.parser.lexer.{LiteralToken, VarToken}
import aqua.parser.lift.LiftParser.Implicits.idLiftParser
import aqua.parser.lift.Span
import aqua.types.BottomType
import aqua.{
AppOpts,
AquaIO,
ArgOpts,
CommandBuilder,
FileOpts,
FluenceOpts,
FuncWithData,
LogFormatter,
RelativePath,
RunInfo,
SubCommandBuilder
}
import cats.data.{NonEmptyChain, NonEmptyList, Validated, ValidatedNec, ValidatedNel}
import Validated.{invalid, invalidNec, valid, validNec, validNel}
import aqua.ArgOpts.checkDataGetServices
import aqua.builder.{ArgumentGetter, Service}
import aqua.files.AquaFilesIO
import aqua.model.transform.TransformConfig
import aqua.raw.ConstantRaw
import aqua.raw.value.{LiteralRaw, ValueRaw, VarRaw}
import aqua.types.BottomType
import aqua.*
import cats.data.Validated.{invalid, invalidNec, valid, validNec, validNel}
import cats.data.*
import cats.effect.kernel.Async
import cats.effect.{Concurrent, ExitCode, IO}
import cats.syntax.applicative.*
@ -38,9 +26,9 @@ import com.monovore.decline.{Command, Opts}
import fs2.io.file.{Files, Path}
import scribe.Logging
import scala.scalajs.js
import java.util.Base64
import scala.concurrent.ExecutionContext
import scala.scalajs.js
import scala.scalajs.js.JSON
object RunOpts extends Logging {

View File

@ -5,16 +5,16 @@ import aqua.backend.FunctionDef
import aqua.backend.air.FuncAirGen
import aqua.builder.{ArgumentGetter, Finisher, ResultPrinter}
import aqua.io.OutputPrinter
import aqua.model.{FuncArrow, ValueModel, VarModel}
import aqua.model.transform.{Transform, TransformConfig}
import aqua.model.{FuncArrow, ValueModel, VarModel}
import aqua.raw.ops.{Call, CallArrowTag, FuncOp, SeqTag}
import aqua.raw.value.{LiteralRaw, ValueRaw, VarRaw}
import aqua.types.{ArrowType, BoxType, NilType, ScalarType, Type, UnlabeledConsType}
import aqua.types.*
import cats.data.{Validated, ValidatedNec}
import cats.effect.kernel.Async
import cats.syntax.applicative.*
import cats.syntax.show.*
import cats.syntax.traverse.*
import cats.syntax.applicative.*
import scala.concurrent.ExecutionContext
import scala.scalajs.js

View File

@ -1,36 +1,35 @@
package aqua.script
import aqua.files.{AquaFileSources, AquaFilesIO, FileModuleId}
import aqua.io.{AquaFileError, OutputPrinter}
import aqua.ipfs.js.IpfsApi
import aqua.js.{Config, Fluence, PeerConfig}
import aqua.keypair.KeyPairShow.show
import aqua.model.{AquaContext, FuncArrow, LiteralModel}
import aqua.raw.value.{LiteralRaw, ValueRaw, VarRaw}
import aqua.run.RunCommand.createKeyPair
import aqua.run.{GeneralRunOptions, RunCommand, RunConfig, RunOpts}
import aqua.*
import aqua.run.RunOpts.logger
import aqua.types.{ArrowType, LiteralType, NilType, ScalarType}
import aqua.ArgOpts.{dataFileOrStringOpt, funcOpt, funcWithArgsOpt}
import aqua.backend.Generated
import aqua.backend.air.{AirBackend, AirGen, FuncAirGen}
import aqua.builder.ArgumentGetter
import aqua.compiler.AquaCompiler
import aqua.files.{AquaFileSources, AquaFilesIO, FileModuleId}
import aqua.io.{AquaFileError, OutputPrinter}
import aqua.ipfs.js.IpfsApi
import aqua.js.{Config, Fluence, PeerConfig}
import aqua.keypair.KeyPairShow.show
import aqua.model.transform.{Transform, TransformConfig}
import aqua.model.{AquaContext, FuncArrow, LiteralModel}
import aqua.parser.lift.FileSpan
import aqua.raw.ops.{Call, CallArrowTag}
import aqua.raw.value.{LiteralRaw, ValueRaw, VarRaw}
import aqua.res.{AquaRes, FuncRes}
import cats.data.Validated.{invalid, invalidNec, valid, validNec, validNel}
import aqua.run.RunOpts.logger
import aqua.run.{GeneralRunOptions, RunCommand, RunConfig, RunOpts}
import aqua.types.{ArrowType, LiteralType, NilType, ScalarType}
import cats.data.*
import cats.data.Validated.{invalid, invalidNec, valid, validNec, validNel}
import cats.effect.kernel.{Async, Clock}
import cats.effect.{Concurrent, ExitCode, Resource, Sync}
import cats.syntax.applicative.*
import cats.syntax.apply.*
import cats.syntax.traverse.*
import cats.syntax.flatMap.*
import cats.syntax.functor.*
import cats.syntax.show.*
import cats.syntax.traverse.*
import cats.{Applicative, Monad}
import com.monovore.decline.{Command, Opts}
import fs2.io.file.{Files, Path}

View File

@ -22,6 +22,12 @@ object FluenceOpts {
.option[String]("on", "Where function will be run. Default: host_peer_id", "o")
)
val showSKOpt: Opts[Boolean] =
Opts
.flag("show-sk", "Show your secret key")
.map(_ => true)
.withDefault(false)
val secretKeyOpt: Opts[Array[Byte]] =
Opts
.option[String]("sk", "Ed25519 32-byte secret key in base64", "s")

View File

@ -2,19 +2,13 @@ package aqua.model.transform
import aqua.model.inline.ArrowInliner
import aqua.model.inline.state.InliningState
import aqua.model.{AquaContext, CallModel, FuncArrow, OpModel, VarModel}
import aqua.raw.value.VarRaw
import aqua.model.transform.funcop.*
import aqua.model.transform.pre.{
ArgsFromService,
ArgsProvider,
FuncPreTransformer,
InitPeerCallable,
InitViaRelayCallable
}
import aqua.model.transform.pre.*
import aqua.model.transform.topology.Topology
import aqua.model.*
import aqua.raw.ops.RawTag
import aqua.res.{AquaRes, FuncRes, NoAir, ResolvedOp, ServiceRes}
import aqua.raw.value.VarRaw
import aqua.res.*
import aqua.types.ScalarType
import cats.Eval
import cats.data.Chain