Skip to content

Commit

Permalink
fromPlutusAddress now takes in NetworkId instead of Network
Browse files Browse the repository at this point in the history
  • Loading branch information
v0d1ch committed Feb 10, 2023
1 parent 694df12 commit 8dbab10
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 14 deletions.
13 changes: 9 additions & 4 deletions hydra-cardano-api/src/Hydra/Cardano/Api/AddressInEra.hs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

module Hydra.Cardano.Api.AddressInEra where

import qualified Hydra.Cardano.Api.Network as Network
import Hydra.Cardano.Api.PlutusScriptVersion (HasPlutusScriptVersion (..))
import Hydra.Cardano.Api.Prelude

Expand All @@ -11,7 +12,6 @@ import qualified Cardano.Ledger.BaseTypes as Ledger
import qualified Cardano.Ledger.Credential as Ledger
import qualified Cardano.Ledger.Hashes as Ledger
import qualified Cardano.Ledger.Keys as Ledger
import Hydra.Cardano.Api.Network (Network)
import qualified Plutus.V1.Ledger.Address as Plutus
import Plutus.V2.Ledger.Api (
Address (..),
Expand Down Expand Up @@ -76,10 +76,10 @@ toLedgerAddr = \case
Ledger.Addr ntwrk creds stake

-- | Convert a plutus 'Address' to an api 'AddressInEra'.
-- NOTE: Requires the 'Network' discriminator (Testnet or Mainnet) because
-- NOTE: Requires the 'NetworkId' discriminator (Testnet or Mainnet) because
-- Plutus addresses are stripped off it.
fromPlutusAddress :: IsShelleyBasedEra era => Network -> Plutus.Address -> AddressInEra era
fromPlutusAddress network plutusAddress =
fromPlutusAddress :: IsShelleyBasedEra era => NetworkId -> Plutus.Address -> AddressInEra era
fromPlutusAddress networkId plutusAddress =
fromLedgerAddr $
case (addressCredential, addressStakingCredential) of
(cred, Just (StakingHash stakeCred)) ->
Expand All @@ -99,4 +99,9 @@ fromPlutusAddress network plutusAddress =
ScriptCredential (ValidatorHash h) ->
Ledger.ScriptHashObj . Ledger.ScriptHash . unsafeHashFromBytes $ fromBuiltin h

network = networkIdToNetwork networkId

networkIdToNetwork Mainnet = Network.Mainnet
networkIdToNetwork (Testnet _) = Network.Testnet

Plutus.Address{addressCredential, addressStakingCredential} = plutusAddress
5 changes: 2 additions & 3 deletions hydra-cardano-api/src/Hydra/Cardano/Api/TxOut.hs
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,15 @@ import qualified Cardano.Api.UTxO as UTxO
import qualified Cardano.Ledger.Babbage.TxInfo as Ledger
import qualified Cardano.Ledger.Core as Ledger
import qualified Cardano.Ledger.Credential as Ledger
import qualified Data.List as List
import Hydra.Cardano.Api.AddressInEra (fromPlutusAddress)
import Hydra.Cardano.Api.Hash (unsafeScriptDataHashFromBytes)
import Hydra.Cardano.Api.Network (Network)
import Hydra.Cardano.Api.ReferenceTxInsScriptsInlineDatumsSupportedInEra (HasInlineDatums, inlineDatumsSupportedInEra)
import Hydra.Cardano.Api.ScriptData (toScriptData)
import Hydra.Cardano.Api.ScriptDataSupportedInEra (HasScriptData, scriptDataSupportedInEra)
import Hydra.Cardano.Api.Value (fromPlutusValue, minUTxOValue)
import Plutus.V2.Ledger.Api (OutputDatum (..), fromBuiltin)
import qualified Plutus.V2.Ledger.Api as Plutus
import qualified Data.List as List

-- * Extras

Expand Down Expand Up @@ -115,7 +114,7 @@ toLedgerTxOut =
-- Plutus addresses are stripped off it.
fromPlutusTxOut ::
(HasMultiAsset era, HasScriptData era, HasInlineDatums era, IsShelleyBasedEra era) =>
Network ->
NetworkId ->
Plutus.TxOut ->
TxOut CtxUTxO era
fromPlutusTxOut network out =
Expand Down
9 changes: 2 additions & 7 deletions hydra-plutus/src/Hydra/Contract/Commit.hs
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,8 @@ import PlutusTx.Prelude

import Codec.Serialise (deserialiseOrFail, serialise)
import Data.ByteString.Lazy (fromStrict, toStrict)
import Hydra.Cardano.Api (CtxUTxO, NetworkId (..), fromPlutusTxOut, fromPlutusTxOutRef, toPlutusTxOut, toPlutusTxOutRef)
import Hydra.Cardano.Api (CtxUTxO, fromPlutusTxOut, fromPlutusTxOutRef, toPlutusTxOut, toPlutusTxOutRef)
import qualified Hydra.Cardano.Api as OffChain
import qualified Hydra.Cardano.Api.Network as Network
import Hydra.Contract.Util (hasST, mustBurnST)
import Hydra.Data.Party (Party)
import Plutus.Extras (ValidatorType, scriptValidatorHash, wrapValidator)
Expand Down Expand Up @@ -71,13 +70,9 @@ deserializeCommit networkId Commit{input, preSerializedOutput} =
case deserialiseOrFail . fromStrict $ fromBuiltin preSerializedOutput of
Left{} -> Nothing
Right dat -> do
txOut <- fromPlutusTxOut network <$> fromData dat
txOut <- fromPlutusTxOut networkId <$> fromData dat
pure (fromPlutusTxOutRef input, txOut)
where
network = networkIdToNetwork networkId

networkIdToNetwork Mainnet = Network.Mainnet
networkIdToNetwork (Testnet _) = Network.Testnet

-- TODO: Party is not used on-chain but is needed off-chain while it's still
-- based on mock crypto. When we move to real crypto we could simply use
Expand Down

0 comments on commit 8dbab10

Please sign in to comment.