diff --git a/hydra-cardano-api/src/Hydra/Cardano/Api/AddressInEra.hs b/hydra-cardano-api/src/Hydra/Cardano/Api/AddressInEra.hs index 4c9571c505b..4a736527ddc 100644 --- a/hydra-cardano-api/src/Hydra/Cardano/Api/AddressInEra.hs +++ b/hydra-cardano-api/src/Hydra/Cardano/Api/AddressInEra.hs @@ -58,6 +58,18 @@ mkScriptAddress networkId script = where version = plutusScriptVersion @lang +-- | Construct a stake address from a Plutus script. +mkStakeScriptAddress :: + forall lang. + IsPlutusScriptLanguage lang => + NetworkId -> + PlutusScript lang -> + StakeAddress +mkStakeScriptAddress networkId script = + makeStakeAddress networkId $ StakeCredentialByScript $ hashScript $ PlutusScript version script + where + version = plutusScriptVersion @lang + -- * Type Conversions -- | From a ledger 'Addr' to an api 'AddressInEra' diff --git a/hydra-node/test/Hydra/Chain/Direct/TxSpec.hs b/hydra-node/test/Hydra/Chain/Direct/TxSpec.hs index 1b9e1b98a5d..8fe20863d52 100644 --- a/hydra-node/test/Hydra/Chain/Direct/TxSpec.hs +++ b/hydra-node/test/Hydra/Chain/Direct/TxSpec.hs @@ -31,7 +31,6 @@ import Control.Lens ((^.)) import Data.Map qualified as Map import Data.Maybe.Strict (StrictMaybe (..)) import Data.Set qualified as Set -import Hydra.Cardano.Api.Prelude (StakeCredential (StakeCredentialByScript)) import Hydra.Cardano.Api.Pretty (renderTxWithUTxO) import Hydra.Chain.Direct.State (ChainContext (..), HasKnownUTxO (getKnownUTxO), genChainStateWithTx) import Hydra.Chain.Direct.State qualified as Transition @@ -301,9 +300,7 @@ genBlueprintTxWithUTxO = let scriptWitness = mkScriptWitness alwaysSucceedingScript NoScriptDatumForStake redeemer alwaysSucceedingScript = PlutusScriptSerialised $ Plutus.alwaysSucceedingNAryFunction 2 redeemer = toScriptData (123 :: Integer) - -- XXX: Depends on hydra-cardano-api prelude (maybe extract a helper to hydra-cardano-api?) - stakeCredential = StakeCredentialByScript $ hashScript $ PlutusScript alwaysSucceedingScript - stakeAddress = makeStakeAddress testNetworkId stakeCredential + stakeAddress = mkStakeScriptAddress testNetworkId alwaysSucceedingScript pure ( utxo , txbody