Skip to content

Commit 7843aa5

Browse files
authored
feat(multisig): PSGS-721 added PolicyWithId case class and possibility to generate txId from usigned transaction (#58)
1 parent af0ccc4 commit 7843aa5

File tree

3 files changed

+9
-6
lines changed

3 files changed

+9
-6
lines changed

src/main/scala/iog/psg/cardano/experimental/cli/api/CardanoCliApi.scala

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
package iog.psg.cardano.experimental.cli.api
22

33
import cats.data.NonEmptyList
4-
import iog.psg.cardano.experimental.cli.command.CardanoCli
4+
import iog.psg.cardano.experimental.cli.command.{CardanoCli, CardanoCliCmdTransactionId}
55
import iog.psg.cardano.experimental.cli.model._
66
import iog.psg.cardano.experimental.cli.processrunner.BlockingProcessRunner
77
import iog.psg.cardano.experimental.cli.processrunner.Ops._
88
import iog.psg.cardano.experimental.cli.util.{RandomTempFolder, Regexes}
99

1010
import scala.concurrent.{ExecutionContext, Future}
1111
import scala.sys.process.ProcessBuilder
12-
import scala.util.chaining.scalaUtilChainingOps
1312

1413

1514
case class CardanoCliApi(cardanoCli: CardanoCli)(implicit networkChooser: NetworkChooser,
@@ -232,14 +231,15 @@ case class CardanoCliApi(cardanoCli: CardanoCli)(implicit networkChooser: Networ
232231
}
233232
}
234233

235-
def txId(signedTx: SignedTx): CliApiRequest[String] = new CliApiRequest[String] {
234+
def txId(signedTx: SignedTx): CliApiRequest[String] = txId(_.txFile(signedTx.file))
235+
def txId(tx: Tx): CliApiRequest[String] = txId(_.txBodyFile(tx.file))
236236

237+
private def txId(fileCmd: CardanoCliCmdTransactionId => CardanoCliCmdTransactionId) = new CliApiRequest[String] {
237238
override def execute: Future[String] = Future {
238239
runner(
239-
cardanoCli
240+
fileCmd(cardanoCli
240241
.transaction
241-
.txId
242-
.txFile(signedTx.file)
242+
.txId)
243243
.processBuilder
244244
).asUnsafe[String]
245245
}

src/main/scala/iog/psg/cardano/experimental/cli/model/Policy.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import iog.psg.cardano.experimental.cli.util.RandomTempFolder
99

1010
case class PolicyId(value: String) extends AnyVal
1111

12+
case class PolicyWithId(policy: Policy, policyId: PolicyId)
1213

1314
case class Policy(
1415
scripts: NonEmptyList[Policy.Script],

src/main/scala/iog/psg/cardano/experimental/cli/model/PolicyBuilder.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ case class PolicyBuilder(
1919
def withSignatureOf(keyHash: KeyHash[_ <: KeyType]): PolicyBuilder =
2020
this.copy(scripts = scripts :+ Policy.Script.Signature(keyHash))
2121

22+
def withSignaturesOf[T <: KeyType](keyHashes: Set[KeyHash[T]]): PolicyBuilder =
23+
this.copy(scripts = scripts ++ keyHashes.map(Policy.Script.Signature))
2224

2325
def withBeforeConstraint(slot: Long): PolicyBuilder =
2426
this.copy(scripts = scripts.filter {

0 commit comments

Comments
 (0)