From 58151010b89b04ba002eb6a6a590b19cee365081 Mon Sep 17 00:00:00 2001 From: Daniel Firth Date: Fri, 17 Jan 2025 10:44:18 +0000 Subject: [PATCH] cardano-api: 10.6 --- cabal.project | 8 +- flake.lock | 6 +- hydra-cardano-api/hydra-cardano-api.cabal | 2 +- .../src/Hydra/Cardano/Api/Prelude.hs | 2 +- .../src/Hydra/Cardano/Api/ScriptData.hs | 2 +- hydra-node/exe/hydra-net/Main.hs | 15 ++-- hydra-node/hydra-node.cabal | 1 + hydra-node/src/Hydra/Ledger/Cardano.hs | 1 + hydra-node/src/Hydra/Network.hs | 1 - hydra-node/src/Hydra/Network/Ouroboros.hs | 39 +++++---- .../src/Hydra/Network/Ouroboros/Client.hs | 15 ++-- .../src/Hydra/Network/Ouroboros/Codec.hs | 37 ++++++++ .../src/Hydra/Network/Ouroboros/Server.hs | 16 ++-- .../src/Hydra/Network/Ouroboros/Type.hs | 86 ++++++++----------- .../Network/Ouroboros/VersionedProtocol.hs | 3 +- hydra-node/test/Hydra/FireForgetSpec.hs | 2 +- hydra-plutus/scripts/mHead.plutus | 4 +- hydra-plutus/scripts/vHead.plutus | 4 +- hydra-plutus/src/Hydra/Contract/Head.hs | 5 +- hydra-plutus/src/Hydra/Contract/HeadTokens.hs | 5 +- hydra-plutus/src/Hydra/Contract/Util.hs | 7 +- 21 files changed, 147 insertions(+), 114 deletions(-) create mode 100644 hydra-node/src/Hydra/Network/Ouroboros/Codec.hs diff --git a/cabal.project b/cabal.project index 818f82bf657..6b7116788da 100644 --- a/cabal.project +++ b/cabal.project @@ -12,8 +12,8 @@ repository cardano-haskell-packages -- See CONTRIBUTING.md for information about when and how to update these. index-state: - , hackage.haskell.org 2024-11-22T14:59:16Z - , cardano-haskell-packages 2024-12-20T15:52:56Z + , hackage.haskell.org 2025-01-15T13:32:16Z + , cardano-haskell-packages 2025-01-15T09:59:24Z packages: hydra-prelude @@ -41,7 +41,3 @@ test-show-details: direct program-options ghc-options: -fwrite-ide-info - -constraints: - quickcheck-instances==0.3.31, - data-default==0.7.1.3 diff --git a/flake.lock b/flake.lock index f72483a22d6..7558745e0d3 100644 --- a/flake.lock +++ b/flake.lock @@ -3,11 +3,11 @@ "CHaP": { "flake": false, "locked": { - "lastModified": 1734943824, - "narHash": "sha256-kcyysnPJbjdJOmtTldC08xj2Ttp2XcY6ecbYOYdwkmY=", + "lastModified": 1736937016, + "narHash": "sha256-dmLSu2SvSaTDjSE03cU6DwY62J3nWJbVhIn/kKtMwJg=", "owner": "IntersectMBO", "repo": "cardano-haskell-packages", - "rev": "6ec767f1afd771816c5f3b383d0e1d3b577d72fe", + "rev": "045875beec586ff57a7333c0563fd5c2b1a308fa", "type": "github" }, "original": { diff --git a/hydra-cardano-api/hydra-cardano-api.cabal b/hydra-cardano-api/hydra-cardano-api.cabal index f4130ffcc78..2130f6798eb 100644 --- a/hydra-cardano-api/hydra-cardano-api.cabal +++ b/hydra-cardano-api/hydra-cardano-api.cabal @@ -77,7 +77,7 @@ library , aeson >=2 , base >=4.16 , bytestring - , cardano-api ^>=10.5 + , cardano-api ^>=10.6 , cardano-api:gen , cardano-binary , cardano-crypto-class diff --git a/hydra-cardano-api/src/Hydra/Cardano/Api/Prelude.hs b/hydra-cardano-api/src/Hydra/Cardano/Api/Prelude.hs index e3f3c028f68..a2052eed88b 100644 --- a/hydra-cardano-api/src/Hydra/Cardano/Api/Prelude.hs +++ b/hydra-cardano-api/src/Hydra/Cardano/Api/Prelude.hs @@ -38,9 +38,9 @@ import Cardano.Api.Shelley hiding ( import Cardano.Api.UTxO (UTxO, UTxO' (..)) import Cardano.Crypto.Hash.Class qualified as CC import Cardano.Ledger.Binary qualified as Ledger +import Cardano.Ledger.Core (EraCrypto) import Cardano.Ledger.Core qualified as Ledger import Cardano.Ledger.Crypto (StandardCrypto) -import Cardano.Ledger.Era (EraCrypto) import Data.Aeson (FromJSON (..), ToJSON (..)) import Data.ByteString (ByteString) import Data.ByteString.Lazy (fromStrict, toStrict) diff --git a/hydra-cardano-api/src/Hydra/Cardano/Api/ScriptData.hs b/hydra-cardano-api/src/Hydra/Cardano/Api/ScriptData.hs index 2efc3ab5e46..6ebce1c9b2b 100644 --- a/hydra-cardano-api/src/Hydra/Cardano/Api/ScriptData.hs +++ b/hydra-cardano-api/src/Hydra/Cardano/Api/ScriptData.hs @@ -4,7 +4,7 @@ module Hydra.Cardano.Api.ScriptData where import Hydra.Cardano.Api.Prelude hiding (left) -import Cardano.Ledger.Era qualified as Ledger +import Cardano.Ledger.Core qualified as Ledger import Cardano.Ledger.Plutus.Data qualified as Ledger import PlutusLedgerApi.V3 qualified as Plutus diff --git a/hydra-node/exe/hydra-net/Main.hs b/hydra-node/exe/hydra-net/Main.hs index b920cd5b202..b935c57c1cb 100644 --- a/hydra-node/exe/hydra-net/Main.hs +++ b/hydra-node/exe/hydra-net/Main.hs @@ -64,6 +64,7 @@ import Ouroboros.Network.Protocol.Handshake.Unversioned ( ) import Ouroboros.Network.Protocol.Handshake.Version (acceptableVersion, queryVersion) import Ouroboros.Network.Socket ( + ConnectToArgs (..), HandshakeCallbacks (..), NetworkConnectTracers (..), connectToNodeSocket, @@ -181,16 +182,18 @@ injectReqSn peer snapshotNumber hydraKeyFile fakeHydraKeyFile = do traceWith tracer $ ConnectingTo sockAddr connect sock (addrAddress sockAddr) traceWith tracer $ ConnectedTo sockAddr - runClient iomgr (mkApplication sk party tracer) sock + void $ runClient iomgr (mkApplication sk party tracer) sock where runClient iomgr app = connectToNodeSocket iomgr - unversionedHandshakeCodec - noTimeLimitsHandshake - unversionedProtocolDataCodec - networkConnectTracers - (HandshakeCallbacks acceptableVersion queryVersion) + ConnectToArgs + { ctaHandshakeCodec = unversionedHandshakeCodec + , ctaHandshakeTimeLimits = noTimeLimitsHandshake + , ctaVersionDataCodec = unversionedProtocolDataCodec + , ctaConnectTracers = networkConnectTracers + , ctaHandshakeCallbacks = HandshakeCallbacks acceptableVersion queryVersion + } (unversionedProtocol app) networkConnectTracers = diff --git a/hydra-node/hydra-node.cabal b/hydra-node/hydra-node.cabal index 30e014f13b7..34efa5ccd56 100644 --- a/hydra-node/hydra-node.cabal +++ b/hydra-node/hydra-node.cabal @@ -84,6 +84,7 @@ library Hydra.Network.Message Hydra.Network.Ouroboros Hydra.Network.Ouroboros.Client + Hydra.Network.Ouroboros.Codec Hydra.Network.Ouroboros.Server Hydra.Network.Ouroboros.Type Hydra.Network.Ouroboros.VersionedProtocol diff --git a/hydra-node/src/Hydra/Ledger/Cardano.hs b/hydra-node/src/Hydra/Ledger/Cardano.hs index 5b03ee33921..9dcf0aa6835 100644 --- a/hydra-node/src/Hydra/Ledger/Cardano.hs +++ b/hydra-node/src/Hydra/Ledger/Cardano.hs @@ -96,6 +96,7 @@ newLedgerEnv protocolParams = Ledger.ledgerAccount = Ledger.AccountState mempty mempty , Ledger.ledgerPp = protocolParams , Ledger.ledgerMempool = False + , Ledger.ledgerEpochNo = Nothing } -- * Conversions and utilities diff --git a/hydra-node/src/Hydra/Network.hs b/hydra-node/src/Hydra/Network.hs index a1edb7f49aa..f0ee1596ba6 100644 --- a/hydra-node/src/Hydra/Network.hs +++ b/hydra-node/src/Hydra/Network.hs @@ -31,7 +31,6 @@ import Cardano.Ledger.Orphans () import Data.IP (IP, toIPv4w) import Data.Text (pack, unpack) import Network.Socket (PortNumber, close) -import Network.TypedProtocol.Pipelined () import Test.QuickCheck (elements, listOf, suchThat) import Text.Read (Read (readsPrec)) import Text.Show (Show (show)) diff --git a/hydra-node/src/Hydra/Network/Ouroboros.hs b/hydra-node/src/Hydra/Network/Ouroboros.hs index 1a517c6faa6..82d58fe3f22 100644 --- a/hydra-node/src/Hydra/Network/Ouroboros.hs +++ b/hydra-node/src/Hydra/Network/Ouroboros.hs @@ -58,9 +58,6 @@ import Hydra.Network.Ouroboros.Type ( Message (..), codecFireForget, ) -import Network.Mux.Compat ( - WithMuxBearer (..), - ) import Network.Socket ( AddrInfo (addrAddress), NameInfoFlag (..), @@ -72,9 +69,10 @@ import Network.Socket ( getPeerName, ) import Network.TypedProtocol.Codec ( - AnyMessageAndAgency (..), + AnyMessage (..), ) -import Network.TypedProtocol.Pipelined () + +import Network.Mux (Mode (..), WithBearer (..)) import Ouroboros.Network.Driver.Simple ( TraceSendRecv (..), ) @@ -94,7 +92,6 @@ import Ouroboros.Network.Mux ( MiniProtocolCb, MiniProtocolLimits (..), MiniProtocolNum (MiniProtocolNum), - MuxMode (..), OuroborosApplication (..), OuroborosApplicationWithMinimalCtx, RunMiniProtocol (..), @@ -107,6 +104,7 @@ import Ouroboros.Network.Server.Socket (AcceptedConnectionsLimit (AcceptedConnec import Ouroboros.Network.Snocket (makeSocketBearer, socketSnocket) import Ouroboros.Network.Socket ( AcceptConnectionsPolicyTrace, + ConnectToArgs (..), ConnectionId (..), HandshakeCallbacks (..), NetworkConnectTracers (..), @@ -236,15 +234,18 @@ withOuroborosNetwork IO () actualConnect iomgr newBroadcastChannel app sn = do chan <- newBroadcastChannel - connectToNodeSocket - iomgr - (codecHandshake hydraVersionedProtocolCodec) - noTimeLimitsHandshake - hydraVersionedProtocolDataCodec - networkConnectTracers - (HandshakeCallbacks acceptableVersion queryVersion) - (simpleSingletonVersions protocolVersion MkHydraVersionedProtocolData (app chan)) - sn + void $ + connectToNodeSocket + iomgr + ConnectToArgs + { ctaHandshakeCodec = codecHandshake hydraVersionedProtocolCodec + , ctaHandshakeTimeLimits = noTimeLimitsHandshake + , ctaVersionDataCodec = hydraVersionedProtocolDataCodec + , ctaConnectTracers = networkConnectTracers + , ctaHandshakeCallbacks = HandshakeCallbacks acceptableVersion queryVersion + } + (simpleSingletonVersions protocolVersion MkHydraVersionedProtocolData (app chan)) + sn where networkConnectTracers :: NetworkConnectTracers SockAddr HydraVersionedProtocolNumber networkConnectTracers = @@ -376,7 +377,7 @@ data TraceOuroborosNetwork msg = TraceSubscriptions (WithIPList (SubscriptionTrace SockAddr)) | TraceErrorPolicy (WithAddr SockAddr ErrorPolicyTrace) | TraceAcceptPolicy AcceptConnectionsPolicyTrace - | TraceHandshake (WithMuxBearer (ConnectionId SockAddr) (TraceSendRecv (Handshake HydraVersionedProtocolNumber CBOR.Term))) + | TraceHandshake (WithBearer (ConnectionId SockAddr) (TraceSendRecv (Handshake HydraVersionedProtocolNumber CBOR.Term))) | TraceSendRecv (TraceSendRecv (FireForget msg)) -- NOTE: cardano-node would have orphan ToObject instances for most of these @@ -415,16 +416,16 @@ encodeWithAddr (WithAddr addr ev) = ] encodeTraceSendRecvHandshake :: - WithMuxBearer (ConnectionId SockAddr) (TraceSendRecv (Handshake HydraVersionedProtocolNumber CBOR.Term)) -> + WithBearer (ConnectionId SockAddr) (TraceSendRecv (Handshake HydraVersionedProtocolNumber CBOR.Term)) -> [Aeson.Pair] encodeTraceSendRecvHandshake = \case - WithMuxBearer peerId (TraceSendMsg (AnyMessageAndAgency agency msg)) -> + WithBearer peerId (TraceSendMsg (AnyMessageAndAgency agency msg)) -> [ "event" .= ("send" :: String) , "agency" .= (show agency :: Text) , "peer" .= (show peerId :: Text) ] ++ encodeMsg msg - WithMuxBearer peerId (TraceRecvMsg (AnyMessageAndAgency agency msg)) -> + WithBearer peerId (TraceRecvMsg (AnyMessageAndAgency agency msg)) -> [ "event" .= ("receive" :: Text) , "agency" .= (show agency :: Text) , "peer" .= (show peerId :: Text) diff --git a/hydra-node/src/Hydra/Network/Ouroboros/Client.hs b/hydra-node/src/Hydra/Network/Ouroboros/Client.hs index f3b524ed9cd..abbfe8b424e 100644 --- a/hydra-node/src/Hydra/Network/Ouroboros/Client.hs +++ b/hydra-node/src/Hydra/Network/Ouroboros/Client.hs @@ -3,15 +3,16 @@ module Hydra.Network.Ouroboros.Client where import Hydra.Prelude import Hydra.Network.Ouroboros.Type ( - ClientHasAgency (TokIdle), FireForget (..), Message (MsgDone, MsgSend), - NobodyHasAgency (TokDone), ) import Network.TypedProtocol.Core ( - Peer (..), - PeerHasAgency (..), + IsPipelined (..), PeerRole (..), + ReflRelativeAgency (..), + ) +import Network.TypedProtocol.Peer ( + Peer (..), ) data FireForgetClient msg m a where @@ -22,13 +23,13 @@ data FireForgetClient msg m a where fireForgetClientPeer :: Monad m => FireForgetClient msg m a -> - Peer (FireForget msg) 'AsClient 'StIdle m a + Peer (FireForget msg) 'AsClient 'NonPipelined 'StIdle m a fireForgetClientPeer = \case Idle next -> Effect $ fireForgetClientPeer <$> next SendMsg msg next -> - Yield (ClientAgency TokIdle) (MsgSend msg) $ + Yield ReflClientAgency (MsgSend msg) $ Effect $ fireForgetClientPeer <$> next SendDone action -> - Effect $ Yield (ClientAgency TokIdle) MsgDone . Done TokDone <$> action + Effect $ Yield ReflClientAgency MsgDone . Done ReflNobodyAgency <$> action diff --git a/hydra-node/src/Hydra/Network/Ouroboros/Codec.hs b/hydra-node/src/Hydra/Network/Ouroboros/Codec.hs new file mode 100644 index 00000000000..7a9ec281dbb --- /dev/null +++ b/hydra-node/src/Hydra/Network/Ouroboros/Codec.hs @@ -0,0 +1,37 @@ +module Hydra.Network.Ouroboros.Codec where + +import Hydra.Prelude + +import Cardano.Binary qualified as CBOR +import Codec.CBOR.Read qualified as CBOR +import Hydra.Network.Ouroboros.Type (FireForget (..), Message (..), SFireForget (..)) +import Network.TypedProtocol.Codec +import Network.TypedProtocol.Codec.CBOR (mkCodecCborLazyBS) +import Network.TypedProtocol.Core + +codecFireForget :: + forall m msg. + (MonadST m, FromCBOR msg, ToCBOR msg) => + Codec (FireForget msg) CBOR.DeserialiseFailure m LByteString +codecFireForget = + mkCodecCborLazyBS encode decode + where + encode :: + forall msg' (st :: FireForget msg') (st' :: FireForget msg'). + ToCBOR msg' => + Message (FireForget msg') st st' -> + CBOR.Encoding + encode MsgDone = CBOR.encodeWord 0 + encode (MsgSend msg) = CBOR.encodeWord 1 <> toCBOR msg + + decode :: + forall msg' s (st :: FireForget msg'). + (FromCBOR msg', ActiveState st) => + StateToken st -> + CBOR.Decoder s (SomeMessage st) + decode stok = do + key <- CBOR.decodeWord + case (stok, key) of + (SingIdle, 0) -> pure $ SomeMessage MsgDone + (SingIdle, 1) -> SomeMessage . MsgSend <$> fromCBOR + (_, _) -> fail "codedFireForget.StIdle: unexpected" diff --git a/hydra-node/src/Hydra/Network/Ouroboros/Server.hs b/hydra-node/src/Hydra/Network/Ouroboros/Server.hs index b3899bbe062..14ca688a0ae 100644 --- a/hydra-node/src/Hydra/Network/Ouroboros/Server.hs +++ b/hydra-node/src/Hydra/Network/Ouroboros/Server.hs @@ -3,15 +3,17 @@ module Hydra.Network.Ouroboros.Server where import Hydra.Prelude import Hydra.Network.Ouroboros.Type ( - ClientHasAgency (TokIdle), FireForget (StIdle), Message (MsgDone, MsgSend), - NobodyHasAgency (TokDone), ) import Network.TypedProtocol ( - Peer (Await, Done, Effect), - PeerHasAgency (ClientAgency), + IsPipelined (..), PeerRole (AsServer), + ReflRelativeAgency (..), + ) + +import Network.TypedProtocol.Peer ( + Peer (Await, Done, Effect), ) data FireForgetServer msg m a = FireForgetServer @@ -26,11 +28,11 @@ data FireForgetServer msg m a = FireForgetServer fireForgetServerPeer :: Monad m => FireForgetServer msg m a -> - Peer (FireForget msg) 'AsServer 'StIdle m a + Peer (FireForget msg) 'AsServer 'NonPipelined 'StIdle m a fireForgetServerPeer FireForgetServer{recvMsg, recvMsgDone} = -- In the 'StIdle' the server is awaiting a request message - Await (ClientAgency TokIdle) $ \case + Await ReflClientAgency $ \case -- The client got to choose between two messages and we have to handle -- either of them MsgSend payload -> Effect $ fireForgetServerPeer <$> recvMsg payload - MsgDone -> Effect $ Done TokDone <$> recvMsgDone + MsgDone -> Effect $ Done ReflNobodyAgency <$> recvMsgDone diff --git a/hydra-node/src/Hydra/Network/Ouroboros/Type.hs b/hydra-node/src/Hydra/Network/Ouroboros/Type.hs index f0e28a92251..eabc19d5de0 100644 --- a/hydra-node/src/Hydra/Network/Ouroboros/Type.hs +++ b/hydra-node/src/Hydra/Network/Ouroboros/Type.hs @@ -4,12 +4,9 @@ import Hydra.Prelude import Cardano.Binary qualified as CBOR import Codec.CBOR.Read qualified as CBOR -import GHC.Show (Show (show)) -import Network.TypedProtocol (PeerHasAgency (ClientAgency), Protocol (..)) -import Network.TypedProtocol.Codec (Codec) +import Network.TypedProtocol.Codec import Network.TypedProtocol.Codec.CBOR (mkCodecCborLazyBS) -import Network.TypedProtocol.Core (PeerRole) -import Network.TypedProtocol.Driver (SomeMessage (SomeMessage)) +import Network.TypedProtocol.Core import Ouroboros.Consensus.Util (ShowProxy (..)) -- | TODO explain Protocol @@ -21,6 +18,17 @@ data FireForget msg where StIdle :: FireForget msg StDone :: FireForget msg +data SFireForget (st :: FireForget msg) where + SingIdle :: SFireForget StIdle + SingDone :: SFireForget StDone + +deriving instance Show (SFireForget st) + +instance StateTokenI StIdle where + stateToken = SingIdle +instance StateTokenI StDone where + stateToken = SingDone + instance ShowProxy (FireForget msg) where showProxy _ = "FireForget" @@ -34,62 +42,38 @@ instance Protocol (FireForget msg) where MsgSend :: msg -> Message (FireForget msg) 'StIdle 'StIdle MsgDone :: Message (FireForget msg) 'StIdle 'StDone - -- We have to explain to the framework what our states mean, in terms of - -- who is expected to send and receive in the different states. - -- - -- Idle states are where it is for the client to send a message. - data ClientHasAgency st where - TokIdle :: ClientHasAgency 'StIdle - - -- In our protocol the server is always receiving, thus in no state the server - -- has agency. - data ServerHasAgency st - - -- In the done state neither client nor server can send messages. - data NobodyHasAgency st where - TokDone :: NobodyHasAgency 'StDone + type StateAgency StIdle = ClientAgency + type StateAgency StDone = NobodyAgency - exclusionLemma_ClientAndServerHaveAgency TokIdle tok = case tok of {} - exclusionLemma_NobodyAndClientHaveAgency TokDone tok = case tok of {} - exclusionLemma_NobodyAndServerHaveAgency TokDone tok = case tok of {} + type StateToken = SFireForget deriving stock instance Show msg => Show (Message (FireForget msg) from to) deriving stock instance Eq msg => Eq (Message (FireForget msg) from to) -instance Show (ClientHasAgency (st :: FireForget msg)) where - show TokIdle = "TokIdle" - -instance Show (ServerHasAgency (st :: FireForget msg)) where - show _ = error "absurd" - codecFireForget :: - forall a m. - ( MonadST m - , ToCBOR a - , FromCBOR a - ) => - Codec (FireForget a) CBOR.DeserialiseFailure m LByteString -codecFireForget = mkCodecCborLazyBS encodeMsg decodeMsg + forall m msg. + (MonadST m, FromCBOR msg, ToCBOR msg) => + Codec (FireForget msg) CBOR.DeserialiseFailure m LByteString +codecFireForget = + mkCodecCborLazyBS encode decode where - encodeMsg :: - forall (pr :: PeerRole) st st'. - PeerHasAgency pr st -> - Message (FireForget a) st st' -> + encode :: + forall msg' (st :: FireForget msg') (st' :: FireForget msg'). + ToCBOR msg' => + Message (FireForget msg') st st' -> CBOR.Encoding - encodeMsg (ClientAgency TokIdle) MsgDone = CBOR.encodeWord 0 - encodeMsg (ClientAgency TokIdle) (MsgSend msg) = CBOR.encodeWord 1 <> toCBOR msg + encode MsgDone = CBOR.encodeWord 0 + encode (MsgSend msg) = CBOR.encodeWord 1 <> toCBOR msg - decodeMsg :: - forall (pr :: PeerRole) s (st :: FireForget a). - PeerHasAgency pr st -> + decode :: + forall msg' s (st :: FireForget msg'). + (FromCBOR msg', ActiveState st) => + StateToken st -> CBOR.Decoder s (SomeMessage st) - decodeMsg stok = do + decode stok = do key <- CBOR.decodeWord case (stok, key) of - (ClientAgency TokIdle, 0) -> - return $ SomeMessage MsgDone - (ClientAgency TokIdle, 1) -> do - SomeMessage . MsgSend <$> fromCBOR - (ClientAgency TokIdle, _) -> - fail "codecFireForget.StIdle: unexpected key" + (SingIdle, 0) -> pure $ SomeMessage MsgDone + (SingIdle, 1) -> SomeMessage . MsgSend <$> fromCBOR + (_, _) -> fail "codedFireForget.StIdle: unexpected" diff --git a/hydra-node/src/Hydra/Network/Ouroboros/VersionedProtocol.hs b/hydra-node/src/Hydra/Network/Ouroboros/VersionedProtocol.hs index 6ca0d7f6e7d..e144a325e32 100644 --- a/hydra-node/src/Hydra/Network/Ouroboros/VersionedProtocol.hs +++ b/hydra-node/src/Hydra/Network/Ouroboros/VersionedProtocol.hs @@ -8,7 +8,8 @@ import GHC.Natural (naturalFromInteger, naturalToInteger) import GHC.Num (integerToInt) import Hydra.Network (Host (..)) import Hydra.Network.Message (HydraVersionedProtocolNumber (..)) -import Network.TypedProtocol.Pipelined () + +-- import Network.TypedProtocol.Pipelined () import Ouroboros.Network.CodecCBORTerm (CodecCBORTerm (..)) import Ouroboros.Network.Protocol.Handshake.Codec (VersionDataCodec, cborTermVersionDataCodec) import Ouroboros.Network.Protocol.Handshake.Version (Accept (..), Acceptable, Queryable, acceptableVersion, queryVersion) diff --git a/hydra-node/test/Hydra/FireForgetSpec.hs b/hydra-node/test/Hydra/FireForgetSpec.hs index e3d56542cbd..061c62ebfe3 100644 --- a/hydra-node/test/Hydra/FireForgetSpec.hs +++ b/hydra-node/test/Hydra/FireForgetSpec.hs @@ -15,7 +15,7 @@ import Test.Util (shouldBe, shouldRunInSim) spec :: Spec spec = it "client can send 'Hail Hydra!' to server" $ do - (res, _) <- shouldRunInSim $ do + ((res, _), _) <- shouldRunInSim $ do (channelA, channelB) <- createConnectedChannels server <- newServer concurrently diff --git a/hydra-plutus/scripts/mHead.plutus b/hydra-plutus/scripts/mHead.plutus index 77f0221c9f9..eeaf99ec3d0 100644 --- a/hydra-plutus/scripts/mHead.plutus +++ b/hydra-plutus/scripts/mHead.plutus @@ -1,5 +1,5 @@ { "type": "PlutusScriptV3", - "description": "hydra-mHead-0.19.0-606-g6a0f3e38e5", - "cborHex": "5915b55915b20101003332323232323232323232323232323232323232323232222232930010029114800c8940364b264b264646464aa666ae68004460042264aa666ae680044600022604804666e1d20020033370e90000011aab9e00235573a0026ea801226602a921034d303600593330132232333573400300080119b8f002001301400130169001911001a426604244b200318004886400a44b264666ae6800600100233710002900044c01800e30020003180122666664644444a65266038921034d303100323302822590018c00a442b2b320112290049119199ab9a0018004008cdc7802001119008914802488c8ccd5cd000c00200466e1c00c0048c009180044c0100040013302722590018c002443003900291001260080024a800c8888888888888888041323232323215933021491034d30320032333573400300080119b8732593330202232333573400300080119b8f002001500630235007909801000c5200019199119118010009817912c800c400e4432005223300800130060032400644004900191000a0024466e0000800605233700a00290014564cc0852401034d3033003323223002001302d22590018c00a4432005223255333573400222604c00422600e00866e3c00801c50059500391000a2b2b2660429201034d30340032333573400300080119b8750013300b11223223002001302e22590018801c884cc018008c010004a0091330262593330202232333573400300080119b8f002001500600190ac800c4c0b52401034d303800910c8014896400e2b264666ae680060010023370e002900146001130314901034d3038004884c0cd2401034d30380011302c4901034d3037002802460048ac9981312c800c5409242b260520032133024491034d31320032333573400300080119b8f001500889816a49034d31320048540946605844b2003180048860072005220024c0100043300c00a5006899810a49034d3035005932333573400300080119b8f9500291100194016264b3200322900b9119199ab9a0018004008cdc7802001119001914805c88c8ccd5cd000c00200466e1c00c0048c0092a005222002460048c00918012300246004195001911000856654006440048a811c8564cccccc09c004c8c8c8c888c94c94ccd5cd00108ac9999aab9f0032801140060026ae840126ae88010800486400644b26010005215933335573e00450022800c004d5d0801cd5d1001900090c800c8964cc03403800a42b26666aae7c008a00450018009aba10039aba20032001219001912c981c80148564cccd55cf801140088c8ca002004357440086ae8400e001215933333303c001223255333573400222b26666aae7c008a00450018009aba10039aba20032001219001912c982080148564cccd55cf801140088c8ca002004357440086ae8400e0012159301d00190c00600200700123002460048c0088c008230023370e900000114008a0045002280148600300500b803c00e00244c0392644c0352644c0312622601293226010931130054991300449889800a4c113001498c88c954ccd5cd00088ac9999aab9f00528011191940040086ae8801cd5d0803400242b26666660640024464aa666ae680044564cccd55cf80114008a003001357420073574400640024320032259303700290ac9999aab9f0022801140060026ae8400e6ae8800c800486400644b266026028005215933335573e00450022800c004d5d0801cd5d1001900090c800c8964c05800a42b26666aae7c008a00450018009aba10039aba20032001219001912c980e80148564cccd55cf801140088c8ca002004357440086ae8400e0012159304500190c00600201f00b803c00e002460048c009180111801230022300246004460048c0088c008230023370e900000114008a004500228014860030070012260089322600693044c00d263370e9001002991192a999ab9a001115933335573e00a5002232328008010d5d10039aba100680048564cccccc0c800488c954ccd5cd00088ac9999aab9f0022801140060026ae8400e6ae8800c800486400644b2606e005215933335573e00450022800c004d5d0801cd5d1001900090c800c8964cc04c05000a42b26666aae7c008a00450018009aba10039aba20032001219001912c980b00148564cccd55cf80114008a003001357420073574400640024320032259301d00290ac9999aab9f0022801140060026ae8400e6ae8800c800486400644b26042005215933335573e00450022800c004d5d0801cd5d1001900090c800c8964c12c00a42b26666aae7c008a00450018009aba10039aba20032001219001912c982780148564cccd55cf80114008a003001357420073574400640024320032259305300290ac9999aab9f0022801140060026ae8400e6ae8800c800486400644b26605e0ae005215933335573e0045002232328008010d5d10021aba100380048564c0cc00643001800811c07e037017809c03e017007801c0048c0091801230022300246004460048c0088c009180111801230022300246004460048c0088c009180111801230022300208c008cdc3a40000045002280114008a00521800c0040048980224c89801a4c113003498cdc3a400800a464aa666ae680044600300208c008cdc3a400c00866e1d2000002233333302b001223255333573400222b26666aae7c008a004464650010021aba20043574200700090ac9804000c860020028c009180104600466e1d2000002280114008a0045002232233333302c0012280114008008a0045002302e2233335573e00250018000964c010d5d080148564c010d5d1001c8600300300280091801226500230033574400480012c9814000c860020028c008466666605000245002280114008a002002280114008a004500228014856400642a04b1502491110c00400a0033300f11223223002001303222590018801c884cc018008c01000400690a812a260549201034d30390048540902b26601200ca00713028491034d313100910ac800c400a44260589201034d31310004cc0a089640063000910c00e400a44002980200086601000ca004260360051801064006444006233550012233700002900124000446604444b200318004884c966400e444520092290029400a464aa666ae68004460030010068038230023371e00201c2430030018012200230040014800c888888888888888803801401201000230050068a4d1500c48940364a01922500d928060646464646464464646464aa666ae6800444ca0026646464464646464aa666ae6800444c8c8c8c8c8c8c8c8c8c8c8c8c8ca0026605a0286ae840426605a0286ae8403a6605a02a6ae840366eb4d5d08064ccc079d7280b1aba100b9981680f9aba100a99980f010bad357420133353232122323232325533357340022300132323232553335734002230013300c00a35742005300b357426ae8800822608e08c66e1d200000235573c0046aae74004dd51aba1002991919192a999ab9a00111800998060051aba100298059aba1357440041130470463370e90000011aab9e00235573a0026ea8d5d09aba200208982182119b8748000008d55cf0011aab9d0013754002464646464aa666ae68004460042264aa666ae680044600022608408266e1d20020033370e90000011aab9e00235573a0026ea800488c8c8c8c954ccd5cd00088c00844c954ccd5cd00088c004c01cd5d0801844c954ccd5cd00088c01044c10c108cdc3a400800866e1d20020033370e90000011aab9e00235573a0026ea8005d69aba100899816bae3574200f33301e23232323255333573400223003375c6ae840082264aa666ae680044601260506ae8400c2264aa666ae680044600e60506ae840102264aa666ae68004460026eb4d5d0802cc09cd5d09aba200508992a999ab9a0011180598149aba100608992a999ab9a001118029bad3574200f3027357426ae8801c22608a08866e1d200a0073370e900400319b8748018014cdc3a400800866e1d20020033370e90000011aab9e00235573a0026ea80040a8d5d08034ccc079d70151aba10059bae3574200933301e0203301e02c232323232553335734002230021132553335734002230041132553335734002230001130420413370e900200219b874800800ccdc3a40000046aae78008d55ce8009baa001357420073302d01d357420053302b75a6ae8400666056eb4d5d09aba20011aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba20013574400422605a05866e1d200000235573c0046aae74004dd50009191919192a999ab9a0011180098099aba100298031aba13574400411302c02b3370e90000011aab9e00235573a0026ea80048c8c8c8c954ccd5cd0008899194004c8c8c8c954ccd5cd00088c004c05cd5d08014cc0848c8c8c8c954ccd5cd00088c004c070d5d0801044c954ccd5cd0008899400cdd69aba10049bad35742003375a6ae84d5d10008d5d100188981b81b19b874800800ccdc3a40000046aae78008d55ce8009baa001357426ae8800822606206066e1d200000235573c0046aae74004dd51aba10049998083ae5008357420053232323255333573400223000113255333573400223005375c6ae8400c2264aa666ae68004460066ae8401022606606466e1d20040043370e900100199b8748000008d55cf0011aab9d00137546ae840066603aeb8d5d09aba20011aba20013574400422605605466e1d200000235573c0046aae74004dd50008998043ae75a6ae8400e6ae8400664646464aa666ae68004460066eb8d5d0801044c954ccd5cd00088c024c044d5d0801ccc068064d5d09aba200308992a999ab9a0011180398089aba100408992a999ab9a001118009bad3574200b3010357426ae880142264aa666ae680044601660246ae840182264aa666ae680044600a6eb4d5d0803cc040d5d09aba200708981701699b874802801ccdc3a401000c66e1d20060053370e900200219b874800800ccdc3a40000046aae78008d55ce8009baa357426ae880046ae8800844c09008ccdc3a40000046aae78008d55ce8009baa0012323232325533357340022265001375a6ae8400e60146ae8400664646464aa666ae6800444ca012660320346ae8400e6ae8400666032eb8d5d09aba20011aba20021132553335734002230013301901a357420073232323255333573400223001375a6ae8400a6eb4d5d09aba200208981681619b8748000008d55cf0011aab9d00137546ae84d5d1001844c954ccd5cd00088c02cccc034041d69aba10049980d3ae357426ae880102264aa666ae680044600e660360386ae840142264aa666ae6800444c8ca01a6603c03e6ae84022660400286ae8400a666022028eb4d5d0800e4c8c8c8c954ccd5cd00088c004dd69aba10029bad357426ae8800822606406266e1d200000235573c0046aae74004dd51aba135744003223301c0020010d5d10009aba20061132553335734002230053301d01e3574200f323232325533357340022266042eb8d5d080108981881819b8748000008d55cf0011aab9d00137546ae84d5d1003844c954ccd5cd00088c00844c0b80b4cdc3a401801066e1d200a0073370e900400319b8748018014cdc3a400800866e1d20020033370e90000011aab9e00235573a0026ea8d5d09aba20011aba20021130230223370e90000011aab9e00235573a0026ea800488c88c008dd58009810111999aab9f0012800119400e002600c6aae74006600a6aae7800530043574400635742005000322323232325533357340022300d3008357420053301275a6ae84d5d1001044c954ccd5cd00088c04cc024d5d0801ccc04dd69aba135744006113255333573400223003300a357420093008357426ae880102264aa666ae6800444ca01660186ae8401a60146ae840066eb4d5d09aba20011aba2005113255333573400223009300c3574200d375a6ae84d5d1003044c954ccd5cd00088c054c034d5d0803844c954ccd5cd00088c044c038d5d08044dd69aba135744010113255333573400223005375c6ae840266eb8d5d09aba200908992a999ab9a001118039bae35742015375a6ae84d5d1005044c954ccd5cd00088c004c044d5d0805cc044d5d09aba200b08992a999ab9a0011180798091aba100c08981601599b8748050030cdc3a402401666e1d201000a3370e900700499b8748030020cdc3a401400e66e1d20080063370e900300299b8748010010cdc3a400400666e1d200000235573c0046aae74004dd5000991191919192a999ab9a001118009bae35742004113255333573400223005300735742006113255333573400223003375c6ae8401260106ae84d5d1002044c09008ccdc3a400800866e1d20020033370e90000011aab9e00235573a0026ea80048c8c8c8c954ccd5cd00088c004c01cd5d0801044c954ccd5cd00088c00844c954ccd5cd00088c01044c08c088cdc3a400800866e1d20020033370e90000011aab9e00235573a0026ea80048c8c8c8c954ccd5cd00088c004c018d5d0801044c954ccd5cd00088c00cc01cd5d0801844c954ccd5cd00088c014dd71aba100408981101099b8748010010cdc3a400400666e1d200000235573c0046aae74004dd50009191919192a999ab9a001118009bae35742004113255333573400223003375c6ae8400c22604003e66e1d20020033370e90000011aab9e00235573a0026ea80048c8c8c8c954ccd5cd00088c004dd71aba10029bad357426ae8800822603c03a66e1d200000235573c0046aae74004dd5000980a911192a999ab9a001113018490103505433001132553335734002226600a66e0405c010cdc080b80188994004cdc2002800ccdc20020008cc01801000ccdc400100b19b8700101530142223255333573400222006226600800466e1800c008cdc380080a098092481035054350020012232323232553335734002230021132553335734002230013007357420061130170163370e900000199b8748008008d55cf0011aab9d0013754002464646464aa666ae68004460026eb8d5d08014dd69aba1357440041130140133370e90000011aab9e00235573a0026ea80048c88c008dd60009808111999aab9f00128001400cc010d5d08014c00cd5d10012000601c44b200318014886400a4464aa666ae6800444c8ccd5cd000c00200466e1c00920021130070043371e00491010b487964726148656164563100088c88c008004c03c89640063002910c80148964cc02000801e300100144c01800c1914800c88a400644a00f2001912803c9401a44a00f2500604c98cd5ce249024c6800800112c800c6001133573800500214800c8888888888888888030260109201034d31320013007491034d30390013006491034d31300023223002001300722590018c002442b2600a005130040018c00823333330020012280114008a004500228008008888888ccccccd5d2003119198039aab9d00135573c0026ea801c8c014dd5803918021bac00723003375a00e460046eb801e0009000249035054310023263357380030002323001001230022330020020014891cc8a101a5c8ac4816b0dceb59ce31fc2258e387de828f02961d2f20450048811c5350e9d521552ebfd9e846fd70c3b801f716fc14296134ec0fb71e970001" + "description": "hydra-mHead-0.19.0-632-g421ffac35", + "cborHex": "5916285916250101003332323232323232323232323232323232323232323232323232323232323232323232323232222232930010029114800c89406a4b264b264646464aa666ae68004460042264aa666ae680044600022606606466e1d20020033370e90000011aab9e00235573a0026ea8012266046921034d303600593330202232333573400300080119b8f0020013022001302130249001911001a426606044b200318004886400a44b264666ae6800600100233710002900044c01800e30020003180122666664644444a65266054921034d303100323303722590018c00a442b2b320112290049119199ab9a0018004008cdc7802001119008914802488c8ccd5cd000c00200466e1c00c0048c009180044c0100040013303622590018c002443003900291001260080024a800c888888888888888804132323232321593302f491034d30320032333573400300080119b87325933302d2232333573400300080119b8f0020015006302e30315007909801000c520001919911911801000981f112c800c400e4432005223300800130060032400644004900191000a0024466e0000800607033700a00290014564cc0bd2401034d3033003323223002001303c22590018c00a4432005223255333573400222606600422600e00866e3c00801c50059500391000a2b2b26605e9201034d30340032333573400300080119b8750013300b11223223002001303d22590018801c884cc018008c010004a00913303425933302d2232333573400300080119b8f002001500600190ac800c4c0f12401034d303800910c8014896400e2b264666ae680060010023370e002900146001130404901034d3038004884c1092401034d30380011303b4901034d3037002802460048ac9981a12c800c540ca42b26a06e00321330324901034d31320032333573400300080119b8f00150088981e249034d31320048540cc6607644b2003180048860072005220024c0100043300c00a5006899817a49034d3035005932333573400300080119b8f9500291100194016264b3200322900b9119199ab9a0018004008cdc7802001119001914805c88c8ccd5cd000c00200466e1c00c0048c0092a005222002460048c00918012300246004195001911000856654006440048a818c8564cccccc0d4c8c8c8c888c94c94ccd5cd00108ac99981f40088a0030010028008007219001912c980500148564ccc10a00445001800801400400290c800c8964cc03003400a42b266608d00222800c00400a002001486400644b26a08e005215933304a801114004008005215933333304a223255333573400222b266609d00222800c00400a002001486400644b26a09e005215933305280111400400800521593501d00190c00600200700123002460048c0088c008230023370e900000114008a00450022801000c8600300500b803c00e00244c0392644c0352644c0312622601293226010931130054991300449889800a4c113001498c88c954ccd5cd00088ac99982040088a00200400590ac99999982011192a999ab9a0011159333044801114006002005001000a43200322593504500290ac99982440088a0030010028008005219001912c9980900980148564ccc13200445001800801400400290c800c8964c06000a42b26660a100222800c00400a002001486400644b26a03a005215933305480111400400800521593505300190c00600201f00b803c00e002460048c009180111801230022300246004460048c0088c008230023370e900000114008a00450022801000c860030070012260089322600693044c00d263370e9001002991192a999ab9a001115933304080111400400800b2159333333040223255333573400222b266608900222800c00400a002001486400644b26a08a0052159333048801114006002005001000a43200322593301201300290ac99982640088a0030010028008005219001912c980c00148564ccc14200445001800801400400290c800c8964d407400a42b26660a900222800c00400a002001486400644b26a0420052159333058801114006002005001000a43200322593505900290ac99982e40088a0030010028008005219001912c9a82e80148564ccc18200445001800801400400290c800c8964d418400a42b26660c900222800c00400a002001486400644b26605ca0ca005215933306880111400400800521593503300190c00600204701f80dc05e02700f805c01e00700123002460048c0088c009180111801230022300246004460048c0088c009180111801230022300246004460048c0088c008230023370e900000114008a00450022801000c860030010012260089322600693044c00d263370e90020029192a999ab9a00111800c008230023370e900300219b87480000088c8ccccc0e88a00450020012801140094cc0f8884cc0f2003000112c980280148564d4c0144800400a4300180180140048c0091328011a980209000800848004964d40dc00643001001460042333333037223255333573400222b266607700222800801000a42b26a00c00321800800a3002460041180119b8748000008a00450022801140080044ccccc0d48a00450022801140040045002280114008a004500200190ac800c8540ce2a0652222180080140066601e22446446004002608244b20031003910998030011802000800d21503344c0e5241034d30390048540c82b26601200ca00713037491034d313100910ac800c400a44260769201034d31310004cc0dc89640063000910c00e400a44002980200086601000ca004260520051801064006444006233550012233700002900124000446606244b200318004884c966400e444520092290029400a464aa666ae68004460030010068038230023371e00201c2430030018012200230040014800c888888888888888803801401201000230050068a4d15019489406a4a03322501a9280c8464646464aa666ae6800444ca00264646464aa666ae6800444c8c8c8c8c8c8c8c8c8c8c8c8c8ca002646a03c6eb0004d5d08084c8d407cdd60009aba100e991a8109bac0013574201b375a6ae8403266604aeb8cc095d73ad35742017323502337580026ae8402a66604a050eb4d5d0804ccd4c8c8488c8c8c8c954ccd5cd00088c004c8c8c8c954ccd5cd00088c004cc030028d5d08014c02cd5d09aba200208982602599b8748000008d55cf0011aab9d00137546ae8400a64646464aa666ae6800446002660180146ae8400a60166ae84d5d1001044c13012ccdc3a40000046aae78008d55ce8009baa357426ae8800822609008e66e1d200000235573c0046aae74004dd50009191919192a999ab9a0011180108992a999ab9a0011180008982382319b874800800ccdc3a40000046aae78008d55ce8009baa0012232323232553335734002230021132553335734002230013007357420061132553335734002230041130480473370e900200219b874800800ccdc3a40000046aae78008d55ce8009baa00175a6ae8402266060eb8d5d0803cccc0948c8c8c8c954ccd5cd00088c00cdd71aba100208992a999ab9a0011180498179aba100308992a999ab9a0011180398179aba100408992a999ab9a001118009bad3574200b302e357426ae880142264aa666ae680044601660606ae840182264aa666ae680044600a6eb4d5d0803cc0b8d5d09aba200708982502499b874802801ccdc3a401000c66e1d20060053370e900200219b874800800ccdc3a40000046aae78008d55ce8009baa00102d3574200d33302575c05a6ae840166eb8d5d08024ccc09409ccc0940bc8c8c8c8c954ccd5cd00088c00844c954ccd5cd00088c01044c954ccd5cd00088c00044c11c118cdc3a400800866e1d20020033370e90000011aab9e00235573a0026ea8004d5d0801cc8d4090dd60009aba1002998173ad357420033302e75a6ae84d5d10008d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba20021130320313370e90000011aab9e00235573a0026ea8d5d0801cd5d0800cc8c8c8c954ccd5cd00088c00cdd71aba100208992a999ab9a00111804980e1aba1003998108101aba135744006113255333573400223007301c35742008113255333573400223001375a6ae8401660366ae84d5d1002844c954ccd5cd00088c02cc074d5d0803044c954ccd5cd00088c014dd69aba1007980d9aba13574400e1130370363370e900500399b8748020018cdc3a400c00a66e1d20040043370e900100199b8748000008d55cf0011aab9d00137546ae84d5d10008d5d100108981681619b8748000008d55cf0011aab9d001375400266048442660450002280198030014d4c010480040042400266046442660430002280198028014d4c0104800400424002464646464aa666ae6800446002601e6ae8400a600e6ae84d5d1001044c098094cdc3a40000046aae78008d55ce8009baa001330212213301f80011400cc01400a6a600824002002120012323232325533357340022264650013232323255333573400223001301235742005330182323232325533357340022300130173574200411325533357340022265003375a6ae840126eb4d5d0800cdd69aba1357440023574400622606005e66e1d20020033370e90000011aab9e00235573a0026ea8004d5d09aba200208981501499b8748000008d55cf0011aab9d00137546ae84012666016eb8cc02dd73ad357420053232323255333573400223000113255333573400223005375c6ae8400c2264aa666ae68004460066ae8401022605805666e1d20040043370e900100199b8748000008d55cf0011aab9d00137546ae8400666028eb8d5d09aba20011aba20013574400422604804666e1d200000235573c0046aae74004dd50009980f9109980ec0008a006601000535300412001001090009980f1109980e40008a006600a00535300412001001090009191919192a999ab9a00111328009bad35742007300a357420033232323255333573400222650093301501635742007357420033301575c6ae84d5d10008d5d100108992a999ab9a001118009980a80b1aba1003991919192a999ab9a001118009bad35742005375a6ae84d5d1001044c0ac0a8cdc3a40000046aae78008d55ce8009baa357426ae8800c2264aa666ae680044601666601a020eb4d5d08024cc059d71aba135744008113255333573400223007330170183574200a113255333573400222646500d3301a01b357420113301c0143574200533301101475a6ae84007264646464aa666ae68004460026eb4d5d08014dd69aba13574400411303002f3370e90000011aab9e00235573a0026ea8d5d09aba2001911980c00100086ae88004d5d100308992a999ab9a001118029980c80d1aba1007991919192a999ab9a001113301d75c6ae8400844c0bc0b8cdc3a40000046aae78008d55ce8009baa357426ae8801c2264aa666ae680044600422605805666e1d200c0083370e900500399b8748020018cdc3a400c00a66e1d20040043370e900100199b8748000008d55cf0011aab9d00137546ae84d5d10008d5d100108981081019b8748000008d55cf0011aab9d0013754002446446a0046eac004cc078884cc0720004500380098031aab9d00298029aab9e0024d4c010480040042400264464646464aa666ae680044601a60106ae8400a6601ceb4d5d09aba200208992a999ab9a0011180998049aba100399807bad357426ae8800c2264aa666ae680044600660146ae8401260106ae84d5d1002044c954ccd5cd0008899402cc030d5d08034c028d5d0800cdd69aba1357440023574400a2264aa666ae680044601260186ae8401a6eb4d5d09aba200608992a999ab9a0011180a98069aba100708992a999ab9a0011180898071aba10089bad357426ae880202264aa666ae680044600a6eb8d5d0804cdd71aba135744012113255333573400223007375c6ae8402a6eb4d5d09aba200a08992a999ab9a0011180098089aba100b98089aba13574401611325533357340022300f30123574201811302a0293370e900a00619b874804802ccdc3a402001466e1d200e0093370e900600419b874802801ccdc3a401000c66e1d20060053370e900200219b874800800ccdc3a40000046aae78008d55ce8009baa0013223232323255333573400223001375c6ae840082264aa666ae680044600a600e6ae8400c2264aa666ae68004460066eb8d5d08024c020d5d09aba200408981101099b8748010010cdc3a400400666e1d200000235573c0046aae74004dd50009191919192a999ab9a0011180098039aba100208992a999ab9a0011180108992a999ab9a0011180208981081019b8748010010cdc3a400400666e1d200000235573c0046aae74004dd50009191919192a999ab9a0011180098031aba100208992a999ab9a0011180198039aba100308992a999ab9a001118029bae3574200811302001f3370e900200219b874800800ccdc3a40000046aae78008d55ce8009baa00123232323255333573400223001375c6ae840082264aa666ae68004460066eb8d5d0801844c078074cdc3a400400666e1d200000235573c0046aae74004dd50009191919192a999ab9a001118009bae35742005375a6ae84d5d1001044c07006ccdc3a40000046aae78008d55ce8009baa001301722232553335734002226034920103505433001132553335734002226600a66e04064010cdc080c80188994004cdc2002800ccdc20020008cc01801000ccdc400100c19b8700101730162223255333573400222006226600800466e1800c008cdc380080b0980a2481035054350020012232323232553335734002230021132553335734002230013007357420061130190183370e900000199b8748008008d55cf0011aab9d0013754002464646464aa666ae68004460026eb8d5d08014dd69aba1357440041130160153370e90000011aab9e00235573a0026ea80048c88d4008dd6000998091109980840008a006600a00535300412001001090009808112c800c6005221900291192a999ab9a0011132333573400300080119b870024800844c01c010cdc78012450b487964726148656164563100088c88c008004c04489640063002910c80148964cc02000801e300100144c01800c119919118010009808112c800c60012219002912c9980b112c800c600122190029191191980f112c800c400e443003002980200086006601e004600e008603644b20031800488600700100580126008002000313006003910c00e0020093301822590018c00244320052322323302022590018801c88600600530040010c00cc044008c01c010c07489640063000910c00e00200b0024c010004000d30080050255333573466e2400520001180008c00c0070000009914800c88a400644a00f2001912803c9401a44a00f2500604c98cd5ce249024c6800800112c800c6001133573800500214800c8888888888888888030260129201034d31320013008491034d30390013007491034d31300023223002001300822590018c002442b2600a005130040018c0081333330012280114008a0045002280080088888894cccccd5d2000899198039aab9d00135573c0026ea80044c014dd5800898021bac00113003375a002260046eb80048894ccd55cf80088018998011aba10013574400290002481035054310023263357380030002323001001230022330020020014891cc8a101a5c8ac4816b0dceb59ce31fc2258e387de828f02961d2f20450048811c715c15f3421fa626bc7e11f0f7a2de827845869a7f8b9004e38d13c00001" } diff --git a/hydra-plutus/scripts/vHead.plutus b/hydra-plutus/scripts/vHead.plutus index 01621a624bd..ca97d1539eb 100644 --- a/hydra-plutus/scripts/vHead.plutus +++ b/hydra-plutus/scripts/vHead.plutus @@ -1,5 +1,5 @@ { "type": "PlutusScriptV3", - "description": "hydra-vHead-0.19.0-533-g6cb0345d5", - "cborHex": "59389c593899010000323233223332223233223232323232332232323322323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323233332222323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232322323235300100322233333350012230564910350543500230554910350543500223056490103505435002305549103505435002253350012153353232325333350033232323232215333333350081306c49884c1b5261306c498c8c8c8c8c8c8854cd4c09d403454cd54cd4ccd5cd19b8735304900e222222222200750020900108f011090011335738921034831330008f01153355335333573466e25402cd4020888888888801823c04240044240044cd5ce2481034832390008f0115335333335001253355335333573466e3cd4c12803c8888888888010c0ec22c04244042400454cd4ccd5cd19b8f35304a00f2222222222003303b08b010910109001133301d500633333302450045003500c35304a00f2222222222005303b08b01303b08b0100110900110900110910113357389201034833370009001253355335333573466e3cd4c12803c8888888888010c0ec22c0424404240044ccc0754018cccccc0914011400d4030d4c12803c8888888888014c0ec22c04d4c12803c888888888800c0044240044244044cd5ce2490348343700090012253355335333573466e3cd4c12c040888888888800cc0f02300424804244044ccc079401ccccccc0954014cdc0a80224004a01a6a6096020444444444400a002607811802004212202212402266ae712410348343800091012253355335333573466e3cd4c12c0408888888888010c0f023004248042440454cd4ccd5cd19b8f35304b0102222222222003303c08c010920109101133301e5007333333025500533702a008900128069a98258081111111111002981e04600800801084880884880884900899ab9c4901034833380009101253355335333573466e3cd4c12803c888888888800cc0ec22c0424404240044ccc0754018cccccc0914011400d4030d4c12803c8888888888014d4c12803c8888888888010c0ec22c040044240044244044cd5ce249034834390009001153353302e00e500315335533533232230020013093012253350011093012215335333573466e3c01400825404250044250044c010005403140104240044cd5ce2481034833360008f0115335353535500d2222222222222222009220012253335002215335333573466e24005402824c0424804424c044cd5ce2490348333000092011506615066153355335333502a07a500933508901500c50041090011335738921034833340008f01153355335333573466e1cc1a94024c1ad40282400423c0454cd4ccd5cd19b8735304900e222222222200150070900108f011090011335738921034833320008f0115335333573466e1cd4c1240388888888888004cdc02803a8030480084780884800899ab9c491034833330008f01153353330293308401500a5005330840135304900e22222222220085006330840135304900e222222222200a5003153353303c5335305400e213535001220012222003108a0135533535500d222222222222222200e130670332210022222003109001133573892010248340008f01108f01108f01108f01108f01108f01108f01108f01108f01108f01108f011350062222222222007135005222222222200a135004222222222200213500322222222220091350022222222222008135001222222222200121306d4988884d40288894cd4ccc0a8d400c8888888888888888030d401c8888888888028d401c8888888888024c854cd54cd4ccd5cd19b8f303a33502600750013500822222222220050900108f0110900113357389201034833390008f01153355335333573466e3cd40208888888888010c0e8c8cd409c01c004cd411001d40042400423c044240044cd5ce249034835340008f01153355335333573466e3cd4020888888888800cc0e8c8cd409c018004cd411001d40042400423c044240044cd5ce249034834300008f0113535350042222222222222222009220022253335002215335333573466e24004d402c88888888880042480424c04424c044cd5ce24810348343100092011506e1506e108f01108f01108f01135003222222222222222200e108e0121306d4984d4c10001488888888880084d4c0fc01088888888880244d4c0f800c888888888801854cd4d5400488888888888888880204c1652622153350011002221305d4984d400488800c4c1992622232322153233333335009150012150021350082225332355335333573466e3cd4c0f403088888004c0c0d5400488800c23804234044238044cd5ce2481034831370008d01153355335333573466e1d200035303d00c2222200208e0108d01108e0113357389201034832300008d0115335333027330820135303d00c2222200400a330820135303d00c2222200300b330820135303d00c2222200500915335533533043533535004222222222222222200e108801221306e001323233307607800230633350890133084010433350890100108a0108a01330830104235005222222222222222200d355001222001108e011335738921034831390008d01153355335330360095335305200c213535001220012222003108801108e011335738921034831360008d01153355335333573466e1cd54004888008c1b402823804234044238044cd5ce249034831380008d01153353302c00c00913025004108d01108d01108d01108d01108d01108d0113007350032222222222222222010108c01215002215002222150042150021533333335008135007222533533302735003222222222222222200c00700832153353302b00b0081533533077302f50013037335023306a500135004222222222222222200e108d011335738921034831350008c01108c0113300508601350032222222222222222010108b0121306d4984c1b12621306d49884c1b5262221306f49884c1b5263089012232253350011003221350022253353304600a00113300830063057001003133008007003308b0122533500110032213350860100230040013088012253350011333056082014800020804884c8d400c88d400c8c8894cd4cc14cd40148888010d4d4c15003c880048888010401c54cd4cc1200300144ccc17cc00cc164014cdc02400400400226660be0080046660ee0f20026a00a444400661200244a66a002200644266a11602004600800260080026464646464646464464642a6666666a01a260e2931919191910a99a981528080a99aa99a999ab9a3371266e04d4d4d54040888888888888888802488004894ccd400884004541dc541dcd4d4d54040888888888888888802488008894ccd400884004541d8541d9401024c0424804424c044cd5ce2481034832320009201153355335333573466e1cd4c1300448888888888004c8d4048888d4d4d400c888888888888888802488004894ccd400884cdc00008038a83c8a83ca8020498084900884980899ab9c490103483233000920115335330310115003153355335333573466e1cd4c130044888888888801d400824c0424804424c044cd5ce24903483133000920115335533333350012153355335333573466e2540412000093010940115335333573466e3cd4c1340488888888888010c0f8238042500424c0454cd4ccd5cd19b8f500f303e08e0109401093011333020500633333302750045003501035304d0122222222222005303e08e01303e08e0100110930110930110930110940113357389201034834360009301153355335333573466e1d20005002093010920115335333573466e1d2000500f09301092011333573466e3cd4c1300448888888888014d40208888800424c0424804424804424804424c044cd5ce2490348323800092012153355335333573466e3cd4c1340488888888888010c0f8238042500424c0454cd54cd4ccd5cd19b8f500f303e08e0109401093011093011094011333020500633333302750045003501035304d0122222222222005303e08e01500f0011093011093011094011335738920103483530000930122153355335333573466e3cd4c13804c8888888888010c0fc23c04254042500454cd4ccd5cd19b8f5010303f08f0109501094011333021500733333302850055004501135304e0132222222222005001303f08f010021094011094011095011335738920103483532000940122153355335333573466e3cd4c13804c8888888888010c0fc23c04254042500454cd4ccd5cd19b8f5010303f08f01095010940113330215007333333028500533702a008900128089a98270099111111111002981f84780800801084a00884a00884a80899ab9c49103483531000940122153355335333573466e3cd4c13804c8888888888010004254042500454cd4ccd5cd19b8f5010303f08f01095010940113330215007333333028500533702a008900128089a98270099111111111002800981f84780801084a00884a00884a80899ab9c491034835330009401153355335533535304c01122222222220021093012210940110930113357389210348323600092011533553353303f53353057011213535001220012222003108d01355335355010222222222222222200e1306a0362210022222003109301133573892010248340009201133302c330870135304c01122222222220095005330870135304c01122222222220085004330870135304c011222222222200a5003109201109201109201109201109201109201109201109201135006222220021350052222200513500422222003135003222220041307149884c1c926323221533533302a33085013500622222004500a3308501350062222200335304000f2222200333085015003500932153355335333573466e1cd4c10404088888008cdc024004a0061240212202212402266ae712410348323100091011533533301e500b333333025500a50033500222200235304101022222001303c08c01303c5001350022220031533553353304753353056010213535001220012222003108c0133307807a355335500c1306903522100222220033077500110920113357389201024834000910113303001050041091011091011091011335027350012220015335500b130684910350543900221001109001135004222220021350032222200522213074498c88c8c84d40408894cd4ccc0b8cc22404d4028888880114030cc22404d40288888800cd4c11004c8888800ccc224054025402cc854cd54cd4ccd5cd19b8735304501422222002337009001280404b0084a80884b00899ab9c49010348323100095011533553353304233307c07e53353009308601350042222222222222222010210011326335738921034834350007a3535500122001222200335533535004222222222222222200e1306d0392210022222003109601133573892102483400095011533533034014500a15335333022500d333333029500c500835007222002353045014222220013038533532333306406706350600013068355001220012135001222001109001304009001350072220031533530053087013500422222222222222220101096011335738920103483433000950110950110950110950110950115335323235005222222222222222230110103098012253350011508a0122135002225335330610020071308f010041300600350052100113263357389201034834340007910940130930122533500110920122153353305a50050021095011300400113500122200113500322222002308f01225335001150810122153353303950050021308401002130040011350012222200513530390082222200513530380072222200413530370062222200513530360052222200413535004222003222222222222222200e135303e0032222222222003135303d0022222222222006135001222003300900b3232325335333573466e1d2000002084010830111222222200515335333573466e1d200200208401083011321222222230010083232325335333573466e1d20000020870108601132333222123330010040030023301975c6ae84008dd69aba10013010357426ae88004d5d10008982f02f9aab9e00235573a0026ea8d5d08008a99a999ab9a3370e90020010420084180899091111111801804191919299a999ab9a3370e90000010438084300899199911091998008020018011980cbae357420046eb4d5d08009bad357426ae88004d5d10008982f02f9aab9e00235573a0026ea8d5d08008a99a999ab9a3370e90030010420084180899091111111803004191919299a999ab9a3370e90000010438084300889111110028a99a999ab9a3370e90010010438084300899091111118030039980c3ae357420022a66a666ae68cdc3a400800410e0210c022642444444600800e66030eb8d5d08008a99a999ab9a3370e90030010438084300899910911111198010040039980c3ae357420026eb8d5d09aba200115335333573466e1d20080020870108601133221222222330030080073301875c6ae84004dd71aba1357440022a66a666ae68cdc3a401400410e0210c022664424444446600201000e66030eb8d5d08009bae357426ae880044c17817cd55cf0011aab9d00137546ae8400454cd4ccd5cd19b87480200082100420c044c848888888c010020c8c8c94cd4ccd5cd19b874800000821c04218044c8488888c014018cc061d71aba100115335333573466e1d2002002087010860113322122222330020070063301875c6ae84004dd71aba1357440022a66a666ae68cdc3a400800410e0210c02264244444600800c66030eb8d5d08008a99a999ab9a3370e9003001043808430089991091111198018038031980c3ae357420026eb8d5d09aba200115335333573466e1d2008002087010860113212222230010063301875c6ae840044c17817cd55cf0011aab9d00137546ae8400454cd4ccd5cd19b87480280082100420c0444888888801c54cd4ccd5cd19b87480300082100420c044c8ccc88848888888ccc008028024020dd69aba1002375a6ae84004dd69aba1357440026ae880044c16c170d55cf0011aab9d001375400c646464a66a666ae68cdc3a4000004106021040226464666608260b66ae8400ccc058178d5d08011bae35742002601a6ae84d5d10009aba2001357440022a66a666ae68cdc3a400400410602104022607c646464a66a666ae68cdc3a400000410c0210a022646464666660926eb8d5d08021980d0311aba1003305f357420046eb4d5d08009bae357426ae88004d5d10009aba200135744002260ba0bc6aae78008d55ce8009baa357420022a66a666ae68cdc3a4008004106021040226082646464a66a666ae68cdc3a400000410c0210a0226464646464646464666666666609a6eb8d5d08049980f8339aba100830643574200e6eb4d5d08031bad3574200a6eb8d5d08021bae357420066eb8d5d08011980fbae357420026eb4d5d09aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba20011305d05e35573c0046aae74004dd51aba100115335333573466e1d2006002083010820110401305a05b35573c0046aae74004dd500088190982ba49035054350013056491035054350023055491035054350032323232323232323223232325335333573466e1d20000020860108501132333222123330010040030023232325335333573466e1d200000208a0108901132323232323232323232323232323333333333333333222222222222222212333333333333333300101101000f00e00d00c00b00a0090080070060050040030023302901a3574201e660520346ae84038cc0a406cd5d08069bad3574201866603eeb94078d5d08059981480c1aba100a33301f01c75a6ae84024c8c8c94cd4ccd5cd19b874800000826c04268044cc8848cc00400c008c8c8c94cd4ccd5cd19b874800000827804274044cc8848cc00400c008cc0b5d69aba1001302c357426ae880044c1d41d8d55cf0011aab9d00137546ae84004c8c8c94cd4ccd5cd19b874800000827804274044cc8848cc00400c008cc0b5d69aba1001302c357426ae880044c1d41d8d55cf0011aab9d00137546ae84d5d1000898390399aab9e00235573a0026ea8d5d080419814bae3574200e66603e4646464a66a666ae68cdc3a400000413802136022642444444600a00e6eb8d5d08008a99a999ab9a3370e900100104e0084d808990911111180100398121aba100115335333573466e1d200400209c0109b01132122222230030073020357420022a66a666ae68cdc3a400c00413802136022664424444446600c01000e6eb4d5d0800980e1aba1357440022a66a666ae68cdc3a401000413802136022642444444600200e603a6ae8400454cd4ccd5cd19b87480280082700426c044cc884888888cc01002001cdd69aba1001301b357426ae880044c1cc1d0d55cf0011aab9d001375400204a6ae84018ccc07dd70129aba1005375c6ae84010ccc07c064cc07c0a08c8c8c94cd4ccd5cd19b87480000082700426c044488800854cd4ccd5cd19b87480080082700426c044488800454cd4ccd5cd19b87480100082700426c044488800c4c1cc1d0d55cf0011aab9d00137540026ae8400ccc0a405cd5d08011980ebad357420026603aeb4d5d09aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae880044c184188d55cf0011aab9d00137546ae84008d5d0800991919299a999ab9a3370e90000010450084480899091111118028039bae357420022a66a666ae68cdc3a400400411402112022664424444446600401000e60246ae84004cc03c05cd5d09aba200115335333573466e1d200400208a010890113212222223003007300e357420022a66a666ae68cdc3a400c00411402112022664424444446600c01000e6eb4d5d080098051aba1357440022a66a666ae68cdc3a401000411402112022642444444600200e60166ae8400454cd4ccd5cd19b874802800822804224044cc884888888cc01002001cdd69aba10013009357426ae880044c184188d55cf0011aab9d00137546ae84d5d10009aba20011305d05e35573c0046aae74004dd50009191919299a999ab9a3370e90000010428084200899199911091998008020018011bad3574200460146ae84004c8c8c94cd4ccd5cd19b874800000822404220044c8ccc88848888888ccc00c028024020cc03c068d5d08011aba10013300f75c6ae84d5d10009aba200115335333573466e1d200200208901088011332212222222330070090083300e01935742002646464a66a666ae68cdc3a400000411802116022664424660020060046eb4d5d08009bad357426ae880044c18c190d55cf0011aab9d00137546ae84d5d10008a99a999ab9a3370e90020010448084400899910911111119801004804199808006bad357420026601ceb8d5d09aba200115335333573466e1d200600208901088011321222222230040083300e019357420022a66a666ae68cdc3a401000411202110022646466664444244444446666002016014012010660200366ae8400ccc07003cd5d0801199809007bad357420026a646464a66a666ae68cdc3a400000411c0211a02266104026eb4d5d08009bad357426ae880044c194198d55cf0011aab9d00137546ae84d5d1000911980b8010009aba2001357440022a66a666ae68cdc3a4014004112021100226644244444446600a0120106601c0326ae84004c8c8c94cd4ccd5cd19b87480000082300422c044cc045d71aba10011306306435573c0046aae74004dd51aba1357440022a66a666ae68cdc3a4018004112021100222444444400c260c00c26aae78008d55ce8009baa357426ae88004d5d10008982e02e9aab9e00235573a0026ea8004c88c8c8c94cd4ccd5cd19b874800000821404210044cc88488888888888cc014034030c024d5d0800998053ad357426ae8800454cd4ccd5cd19b874800800821404210044cc88488888888888cc008034030c024d5d0800998053ad357426ae8800454cd4ccd5cd19b874801000821404210044cc88488888888888cc028034030c024d5d080098029aba1357440022a66a666ae68cdc3a400c00410a021080226466644424444444444466600c01c01a01860146ae84008c018d5d08009bad357426ae88004d5d10008a99a999ab9a3370e90040010428084200899910911111111111980380680618049aba1001375a6ae84d5d10008a99a999ab9a3370e90050010428084200899091111111111180080618049aba100115335333573466e1d200c0020850108401133221222222222223300300d00c3009357420026eb4d5d09aba200115335333573466e1d200e0020850108401133221222222222223300900d00c375c6ae84004dd71aba1357440022a66a666ae68cdc3a402000410a0210802266442444444444446601001a0186eb8d5d08009bad357426ae8800454cd4ccd5cd19b874804800821404210044cc88488888888888cc02c034030c024d5d080098049aba1357440022a66a666ae68cdc3a402800410a0210802264244444444444600801860126ae840044c170174d55cf0011aab9d0013754002644646464a66a666ae68cdc3a400000410a0210802264244460060086eb8d5d08008a99a999ab9a3370e900100104280842008990911180080218029aba100115335333573466e1d2004002085010840113322122233002005004375c6ae84004c014d5d09aba20011305c05d35573c0046aae74004dd50009191919299a999ab9a3370e900000104200841808990911180180218041aba100115335333573466e1d200200208401083011122200215335333573466e1d20040020840108301112220011305b05c35573c0046aae74004dd50009191919299a999ab9a3370e900000104180841008990911180180218039aba100115335333573466e1d20020020830108201132122230020043007357420022a66a666ae68cdc3a40080041060210402264244460020086eb8d5d08008982d02d9aab9e00235573a0026ea80048c8c8c94cd4ccd5cd19b874800000820804204044cc8848cc00400c008c028d5d080098029aba135744002260b20b46aae78008d55ce8009baa00123232325335333573466e1d2000002081010800113232333322221233330010050040030023232325335333573466e1d20000020860108501133221233001003002300a35742002660164646464a66a666ae68cdc3a400000411402112022642446004006601c6ae8400454cd4ccd5cd19b874800800822804224044c8ccc888488ccc00401401000cdd69aba1002375a6ae84004dd69aba1357440026ae880044c184188d55cf0011aab9d00137540026ae84d5d10008982e82f1aab9e00235573a0026ea8d5d08019998053ae500935742004646464a66a666ae68cdc3a400000410c0210a02224440062a66a666ae68cdc3a400400410c0210a02264244460020086eb8d5d08008a99a999ab9a3370e90020010430084280899091118010021aba10011305d05e35573c0046aae74004dd51aba10013300875c6ae84d5d10009aba200135744002260b00b26aae78008d55ce8009baa00123232325335333573466e1d20000020800107f1321223002003375c6ae8400454cd4ccd5cd19b8748008008200041fc4c8488c00400cdd71aba10011305705835573c0046aae74004dd500091191919299a999ab9a3370e90010010400083f8a8390a99a999ab9a3370e90000010400083f8983998029aba10011305705835573c0046aae74004dd5000899800bae75a4464460046eac004c1f488cccd55cf800903c11919a83c1983998031aab9d001300535573c00260086ae8800cd5d08010309191919299a999ab9a3370e900000103e03d89983e9bae357420026eb4d5d09aba20011305305435573c0046aae74004dd5000983c111299a999ab9a3370e0020300f20f0260a09201035054330015335333573466e200040601e41e04cc00ccdc080c00119b81018001132332212330010030023370800600266e10008004cc010008004c1dc8894cd4ccd5cd19b8700101707807710021330030013370c00400244644a66aa66a666ae68cdc39806002180680083c03b8980119aa805002000883b883c099ab9c49010348313200077307822533500110782215335350022233500722222223335734666e54024cdc51bb3375200e66e28dd99ba8006337146eccdd400299b8a37666ea4010cdc51bb337520066eccdd4801000841808410080089802000883c90009191919299a999ab9a3370e900000103b03a883a8a99a999ab9a3370e900100103b03a883b098268271aab9e00235573a0026ea800488c8c8c94cd4ccd5cd19b87480000081d81d44488800854cd4ccd5cd19b87480080081d81d44c84888c00c010c014d5d08008a99a999ab9a3370e900200103b03a88911000898268271aab9e00235573a0026ea80048c8c8c94cd4ccd5cd19b87480000081d01cc4cc8848cc00400c008dd71aba1001375a6ae84d5d1000898258261aab9e00235573a0026ea80048c88c008dd60009839111999aab9f001206d233506c30043574200460066ae88008158cc1c08844894cd400841b08854cd400c41b8884cd41bccc1a8010008cd54c0204800400c0044800488888848cccccc00401c01801401000c008c1b8894cd4004520002213370090011802000983691299a8008a400044266e01200230040013306c221225335333573466e24009200006e06d10681533500110682213350690023353006120013370200890010008900091a8009111111111111111299a9809006083d099ab9c49010355303100079306a225335001106a2232135003223003001306e2253350011300600322135002225335333573466e1d200000107207113006003107122235003223500422350052253355335333500a05a00600515335333573466e1c01000c1c01bc4ccd5cd19b8f00200107006f106f106f107013357389210248320006f33068221222533500215335001106b22106c2215335003106c22153353300700400213335300912001007003001106e12001222323306b2253350011300348000884d4008894cd4ccd5cd19b8f00200906f06e130073370201c60180022600c0060084a66a666ae68cdc380099b8048008c0140081a41a041a44cd5ce248103483134000683066225335001148000884cdc024004600800260ca44a66a00220084426a0044466e00004c01800c88c8d400c8894cd4c020d400c88888888888888880204c98cd5ce24810248360004c232215335001153353002300c3007350062222222222222222010106b13357389210248350006a22132633573892102483700051306b225335001106a221533533057005002106d1300400130662253350011060221350022232323306e2253350011003221335069002300400100230070043302200735001222200348000c188894cd40044170884cd4174008c010004c184894cd4004416c884cd4170008c0100048dc918031801982b000a4810350543800305e2253350011300230030582215335001100222130063007005305d22533500110572215335001100322133505a330070040023006001305c222533500210012215335003100432221533353305d00500215003133505b0023300800700115003133505800233005001003305b225335001100e221350022233714002600c0064644600400260b644a66a00220b44426a00444a66a666ae68cdc780100382f82f0980400089803001982c91299a800882c1109a80111299a999ab9a3371e91010b48796472614865616456310000205d05c1333573466e1d200200105d05c1300600323724600400260ae44a66a002201444266e28dd99a801111119ba548000cd5d01a8021119ba548000cd5d0180780119aba033010233500123374a900019aba03011001376202644466e9520023357406ea000ccd5d01ba80023357406ea0004dd880a8009bb1011335740666016ea5402800ccd5d02999a801099ba548000dd88079099ba548010cd5d00009bb1010213374a900119aba037520026ec4040cd5d0198073a9001376201e600800244666ae68cdc79bb3333004752a0060046eccccc011d4a80180082b02a899800ba923750002446446e98c008004c15888cd40052f5bded8c0446a0044466ae80cdd8180400118038009803001991299a9806980a00090a9999a80090980224c2600693111109803a4c420022600493119319ab9c490102483300036233500123374a900019aba037520026ec40108cdd2a400466ae80dd48009bb1004225335001213374a900019aba030030013762008266e9520023762006932441003304e221225335333573466e24009200005004f100115335001104a2213353006120013370200890010008900099111999980181c1180280099980181c1199ab9a3370e900000082782711199ab9a3370e0040020a009e004002446464464446600600400260a4444a66a0042600a002442a66a006260100084426a00844646a00a44a66a6602200a0042a66a6601a00800226601801000c20b62a66a6020008266018010014266006a66a602000220ac266a0aa00e0ac00c60b6444a66a00220b64426a00444a66a602800226600e00c0062a66a6602a0120042a66a660220100022660200186660c4444a66a00420024426600a00266a0bc00400600c00620be26600e66a0b200800c00660a044a66a00220a04426a00444a66a60100022600c00620a6609e44a66a002209e4426a00444a66a600e0022600c00620a4609844a66a00220984426a00444a66a666ae68cdc3a40000020a009e2600c006209e44666ae68cdc3a40046024660060046a00244440060960944644a66aa66a600400242607e0022a07a426609c44a66a002209044264a66a6a00644a66a666ae68cdc3a40040020a60a42608c0042a08a4266a09600200420026008002002208a609644a66a0022a07a4426a00444a66a666ae68cdc78010038278270982100089803001991299a9801980500090a9999a8009080089801a4c44442600e9310980224c2600493119319ab9c49010248330002c32233333301900122532335333573466e1d200000304b04a1533533335573e0044a07c4607e660806ae8400cd5d1001817909a80091299a980400110a99a9999aab9f002250422304333044357420066ae8800c0cc84d4004894cd4cc070084008854cd4cccd55cf8011282311823998241aba10033574400606e426a00244a66a604c00442a66a6666aae7c008941288c8c8c134008d5d10021aba100303b215335302300121304c333301500b0070030011300e4984c035261300c4984c02526130084984c01526130044984c0052613001498c894cd4ccd5cd19b874800801013012c54cd4cccd55cf8019281f9191918210011aba20053574200806042a66a66666603c00244a66a666ae68cdc3a400000409e09c2a66a6666aae7c004941088c10ccc110d5d08011aba20020332135001225335302200221533533335573e0044a08c4608e660906ae8400cd5d100181b909a80091299a9981001280110a99a9999aab9f0022504a2304b3304c357420066ae8800c0ec84d4004894cd4c050008854cd4cccd55cf8011282711827998281aba10033574400607e426a00244a66a605400442a66a6666aae7c008941488c8c8c154008d5d10021aba100304321533530300012130543333302100f00b0070030011505215051150501504d1504c150491504815045150441504115041250402504025040250402130413009001130034984c0092613002498c894cd4ccd5cd19b874801001013012c54cd4cccd55cf8019281f9191918210011aba20053574200806042a66a66666603c00244a66a666ae68cdc3a400000409e09c2a66a6666aae7c004941088c10ccc110d5d08011aba20020332135001225335302200221533533335573e0044a08c4608e660906ae8400cd5d100181b909a80091299a9981001280110a99a9999aab9f0022504a2304b3304c357420066ae8800c0ec84d4004894cd4c050008854cd4cccd55cf8011282711827998281aba10033574400607e426a00244a66a605400442a66a6666aae7c008941488c14ccc150d5d08019aba20030432135001225335302e00221533533335573e0044a0ac460ae660b06ae8400cd5d1001823909a80091299a981b00110a99a9999aab9f0022505a2305b3305c357420066ae8800c12c84d4004894cd4c0e8008854cd4cccd55cf8011282f1182f998301aba10033574400609e426a00244a66a607c00442a66a6666aae7c008941888c18ccc190d5d08019aba200305321350012253353303c04200221533533335573e0044a0cc4646460d20046ae88010d5d080182b90a99a9820000909834199999999981a01180f80d80b8098078058038018008a8330a8328a8320a8308a8300a82e8a82e0a82c8a82c0a82a8a82a0a8288a8280a8268a8260a8248a8240a8228a8220a8208a82092820128201282012820109820980600089801a4c26004930980124c4a66a666ae68cdc3a400c0060960942607c0102a07a4a0764a0764a0764a076466666603000244a66a666ae68cdc3a40000040920902a66a6666aae7c004940f08c8c8c0fc008d5d10019aba100202d215335301600121303e0011503c1503b1503b2503a2503a2503a2503a21222230040051222200322221222233330020080070060052122223001005222222222212333333333300100b00a00900800700600500400300222222123333300100600500400300232253353535001222003222222222222222200e130024988854cd4cc014d40088888010d4d4c01800c8800488880104c0540084c01126232633573892103483131000242235002223500322533533500423350032333573466e3c00800411811481148cd400c81148ccd5cd19b8f002001046045153350032153350022133500223350022335002233500223303400200120492335002204923303400200122204922233500420492225335333573466e1c01800c13012c54cd4ccd5cd19b8700500204c04b1333573466e1c01000413012c412c412c411054cd4004841104110410c94cd4c008004840044c98cd5ce24902483800022235001222350032222222222222222333333501122018201722018201723223002013305322533500115045221350022253353301c0020071304a00413006003201722533535002223500322333573466e3c0100081041004d400888d400c88ccd5cd19b87003001041040103c502c303b225335001148000884cdc02400460080024a66a64666600e012a0060140026016002426a002444004206626002466666601200244a66a666ae68cdc3a40000040740722a66a6666aae7c004940b48c0b8cc0bcd5d08011aba200201e2135001225335300800221533533335573e0044a0624646460680046ae88010d5d080181110a99a980780090981989198008020010a8188a8180a8178a8160a816128159281592815928159191199999805000912816928160011281612816181c911999aab9f0012302d0342533530043574200442a66a60086ae8800c84c0bccd40d4008004540b44c940b4c00cd5d100100e919999980380091299a999ab9a3370e900000101c01b8a99a9999aab9f0012502b2302c3302d357420046ae8800807084d4004894cd4c02c008854cd4cccd55cf801128179191918190011aba20043574200604042a66a60120024260626607e0060022a05e2a05c2a05a2a0542a0544a0524a0524a0524a052466666600c00244a0524a0504a050460520024a050444466666601000244a66a666ae68cdc3a40000040720702a66a6666aae7c004940b08c0b4cc0b8d5d08011aba200201d2135001225335300900221533533335573e0044a06046062660646ae8400cd5d1001810909a80091299a980600110a99a9999aab9f00225034232323037002357440086ae8400c094854cd4c03400484c0d8ccc04401c00c004540d0540cc540c8540bc540b8540ac540ac940a8940a8940a8940a888848ccc00401000c00894cd4c00800484c098004540908cccccc0080048940949409094090940908c094004888888ccccccd5d2003119198039aab9d00135573c0026ea801c8c014dd5803918021bac00723003375a00e460046eb801c06494ccd4d400488880084c98cd5ce2490248390001321001213263357389210348313000014302f225335001102922133502a3500222330270023301a23370490008008009802000899319ab9c490103483331000102326335738921034833350001023232325335333573466e1d200000202e02d1375a6ae840044c014018d55cf0011aab9d0013754002464c66ae70004039240103505431002375c002605044a66a0022900011099b8048008c010004c09c894cd4004520002213370090011802000899319ab9c49103483432000083025225335001148000884cdc0240046008002604844a66a002203c44266a0044444660200240066008002604644a66a0022900011099b8048008c0100044c98cd5ce24810348323700004132633573892103483235000031326335738921034832340000223263357389210248310000212001301d225335001101722133500222223300900b003300400123222300330073335009008002001301d225335001101722133501835002223301500233008233350012330094800000488cc0280080048cc0240052000001300400123223002001301c2253350011016221335017350022233014002300700130040012233700004002603244a66a002202644266a0286a0044466022004666a0024601400244666a01401200400246016002600800244666ae68cdc780100080c00b89911119191980e91299a800880191099a80c0011802000980100218029980e11299a800880b11099299a9a80191911801005981111299a80088111109a80111299a99808001003881289803001899a80c00180088009802000801180d91299a800880a91099a80b1a80111191980a0019800804181091299a80089aa8078019109a80111299a998078010040891119801005002098030019802000980b91299a800880891099a8091a801111980780118050009802000980b11299a800880811099a8089a801111980700118048009802000980a91299a800880791099a8081a80111198068011aa803800980200090911180180208909111800802180911299a800880611099a8069a801111a80091110019802000980891299a800880591099a8061a8011100118020009091180100188910009109198008018011a8019110009a8011110011a800911001999180080091091919980111801111180180211801111180100211801111180080211a998020020019a801800891111998021299a800899a803003803910a99a800899a804001804910a99199a998068028018a800899980400199a8058028060010a8008999803001119a805802800800911299a800899a80419a804001801180300499110a999a998068030010a801899980400119a8058030028008a801899a80419a804001801180300091129919a80109800a4c442a64666a6601c00e0062a00226008930a80089998038011180319a806003800800919a804980199a80480200518038010910010910911980080200199111a801111a801111a802911a801112999a998058030010a99a999ab9a3370e00a00202001e201c2a66a666ae68cdc48028008080078806080689980580300109980580300111299a999ab9a3371e00400200e00c200a2a66a666ae68cdc88010008038030801880209110018911001091100089100109100091091980080180111918008009180111980100100081" + "description": "hydra-vHead-0.19.0-632-g421ffac35", + "cborHex": "59397359397001000032323322333222323322323232323233223232332232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323333222232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232232353001002222333333500122305f49103505435002305e491035054350022305f490103505435002305e49103505435002253350012153353232325333350033232323232215333333350081307a49884c1ed261307a498c8c8c8c8c8c8854cd4c0c1403454cd54cd4ccd5cd19b8735305400e2222222222007500209e0109d01109e011335738921034831330009d01153355335333573466e25402cd4020888888888801827404278044278044cd5ce2481034832390009d0115335333335001253355335333573466e3cd4c15403c8888888888010c1182640427c042780454cd4ccd5cd19b8f35305500f222222222200330460990109f0109e011333029500633333302d50045003500c35305500f2222222222005304609901304609901001109e01109e01109f0113357389201034833370009e01253355335333573466e3cd4c15403c8888888888010c1182640427c04278044ccc0a54018cccccc0b54011400d4030d4c15403c8888888888014c11826404d4c15403c888888888800c004427804427c044cd5ce249034834370009e012253355335333573466e3cd4c158040888888888800cc11c268042800427c044ccc0a9401ccccccc0b94014cdc0a80224004a01a6a60ac020444444444400a002608e13402004213e02214002266ae71241034834380009f012253355335333573466e3cd4c1580408888888888010c11c268042800427c0454cd4ccd5cd19b8f3530560102222222222003304709a010a00109f01133302a500733333302e500533702a008900128069a982b0081111111111002982384d00800801084f80884f80885000899ab9c4901034833380009f01253355335333573466e3cd4c15403c888888888800cc1182640427c04278044ccc0a54018cccccc0b54011400d4030d4c15403c8888888888014d4c15403c8888888888010c11826404004427804427c044cd5ce249034834390009e01153353303900e5003153355335332322300200130a10122533500110a1012215335333573466e3c01400828c04288044288044c010005403140104278044cd5ce2481034833360009d0115335353535500d2222222222222222009220012253335002215335333573466e24005402828404280044284044cd5ce24903483330000a0011507715077153355335333503508801500933509701500c5004109e011335738921034833340009d01153355335333573466e1cc1e14024c1e54028278042740454cd4ccd5cd19b8735305400e2222222222001500709e0109d01109e011335738921034833320009d0115335333573466e1cd4c1500388888888888004cdc02803a80304f0084e80884f00899ab9c491034833330009d01153353330343309201500a5005330920135305400e22222222220085006330920135305400e222222222200a500315335330475335305f00e21353500122001222200310980135533535500d222222222222222200e1307003e2210022222003109e01133573892010248340009d01109d01109d01109d01109d01109d01109d01109d01109d01109d01109d011350062222222222007135005222222222200a135004222222222200213500322222222220091350022222222222008135001222222222200121307b4988884d40288894cd4ccc0d4c0c0d400c8888888888888888030d401c8888888888028d401c8888888888024c854cd54cd4ccd5cd19b8f304533502f007500135008222222222200509e0109d01109e0113357389201034833390009d01153355335333573466e3cd40208888888888010c114c8cd40c001c004cd413c01d400427804274044278044cd5ce249034835340009d01153355335333573466e3cd4020888888888800cc114c8cd40c0018004cd413c01d400427804274044278044cd5ce249034834300009d0113535350042222222222222222009220022253335002215335333573466e24004d402c888888888800428004284044284044cd5ce248103483431000a0011507c1507c109d01109d01109d01135003222222222222222200e109c0121307b4984d4c12c01488888888880084d4c12801088888888880244d4c12400c888888888801854cd4d5400488888888888888880204c1a92622153350011002221306e4984d400488800c4c1d12622232322153233333335009150012150021350082225332355335333573466e3cd4c12003088888004c0ecd5400488800c2700426c044270044cd5ce2481034831370009b01153355335333573466e1d200035304800c2222200209c0109b01109c0113357389201034832300009b0115335333032330900135304800c2222200400a330900135304800c2222200300b330900135304800c222220050091533553353304e533535004222222222222222200e109601221307c00132323330840108601002306e33509701330920104e335097010010980109801330910104d35005222222222222222200d355001222001109c011335738921034831390009b01153355335330410095335305d00c213535001220012222003109601109c011335738921034831360009b01153355335333573466e1cd54004888008c1ec0282700426c044270044cd5ce249034831380009b01153353303700c0091302e004109b01109b01109b01109b01109b01109b0113007350032222222222222222010109a012150022150022221500421500215333333350081350072225335333032302d35003222222222222222200c00700832153353303600b008153353308501303a5001304233502c3078500135004222222222222222200e109b011335738921034831350009a01109a011330050940135003222222222222222201010990121307b4984c1e92621307b49884c1ed262221307d49884c1ed263097012232253350011003221350022253353305100a0011330083006306200100313300800700330990122533500110032213350940100230040013096012253350011333061090014800024004884c8d400c88d400c8c8894cd4cc178d40148888010d4d4c17c03c880048888010401c54cd4cc14c0300144ccc1a8c00cc190014cdc02400400400226660d400800466610a0210e020026a00a4444006613c0244a66a002200644266a13202004600800260080026464646464646464464642a6666666a01a260fe931919191910a99a9819a8080a99aa99a999ab9a3371266e04d4d4d54040888888888888888802488004894ccd40088400454214045421404d4d4d54040888888888888888802488008894ccd40088400454210045421005401028404280044284044cd5ce248103483232000a001153355335333573466e1cd4c15c0448888888888004c8d4048888d4d4d400c888888888888888802488004894ccd400884cdc00008038a843808a84380a8020508085000885080899ab9c490103483233000a001153353303c0115003153355335333573466e1cd4c15c044888888888801d400828404280044284044cd5ce24903483133000a00115335533333350012153355335333573466e25404120000a1010a20115335333573466e3cd4c1600488888888888010c12427004288042840454cd4ccd5cd19b8f500f304909c010a2010a101133302c50063333330305004500350103530580122222222222005304909c01304909c0100110a10110a10110a10110a2011335738920103483436000a101153355335333573466e1d200050020a1010a00115335333573466e1d2000500f0a1010a0011333573466e3cd4c15c0448888888888014d40208888800428404280044280044280044284044cd5ce24903483238000a0012153355335333573466e3cd4c1600488888888888010c12427004288042840454cd54cd4ccd5cd19b8f500f304909c010a2010a10110a10110a201133302c50063333330305004500350103530580122222222222005304909c01500f00110a10110a10110a2011335738920103483530000a10122153355335333573466e3cd4c16404c8888888888010c1282740428c042880454cd4ccd5cd19b8f5010304a09d010a3010a201133302d50073333330315005500450113530590132222222222005001304a09d0100210a20110a20110a3011335738920103483532000a20122153355335333573466e3cd4c16404c8888888888010c1282740428c042880454cd4ccd5cd19b8f5010304a09d010a3010a201133302d5007333333031500533702a008900128089a982c8099111111111002982504e80800801085100885100885180899ab9c49103483531000a20122153355335333573466e3cd4c16404c888888888801000428c042880454cd4ccd5cd19b8f5010304a09d010a3010a201133302d5007333333031500533702a008900128089a982c8099111111111002800982504e80801085100885100885180899ab9c49103483533000a2011533553355335353057011222222222200210a1012210a20110a101133573892103483236000a0011533553353304a53353062011213535001220012222003109b01355335355010222222222222222200e13073041221002222200310a10113357389201024834000a00113330373309501353057011222222222200950053309501353057011222222222200850043309501353057011222222222200a500310a00110a00110a00110a00110a00110a00110a00110a001135006222220021350052222200513500422222003135003222220041307f49884c2000526323221533533303533093013500622222004500a3309301350062222200335304b00f2222200333093015003500932153355335333573466e1cd4c13004088888008cdc024004a0061400213e02214002266ae71241034832310009f011533533302a500b33333302e500a50033500222200235304c01022222001304709a0130475001350022220031533553353305253353061010213535001220012222003109a013330860108801355335500c130720402210022222003308501500110a001133573892010248340009f0113303b0105004109f01109f01109f011335030350012220015335500b130714910350543900221001109e0113500422222002135003222220052221308201498c88c8c84d40408894cd4ccc0e4cc25c04d4028888880114030cc25c04d40288888800cd4c13c04c8888800ccc25c054025402cc854cd54cd4ccd5cd19b873530500142222200233700900128040520085180885200899ab9c490103483231000a3011533553353304d33308a0108c01533530093094013500422222222222222220102100113263357389210348343500088013535500122001222200335533535004222222222222222200e13076044221002222200310a4011335738921024834000a301153353303f014500a1533533302e500d333333032500c500835007222002353050014222220013043533532333306f5072506e506b0013073355001220012135001222001109e01304b09e013500722200315335300530950135004222222222222222201010a4011335738920103483433000a30110a30110a30110a30110a301153353232350052222222222222222301101030a6012253350011509801221350022253353306c0020071309d01004130060035005210011326335738920103483434000870110a20130a10122533500110a001221533533065500500210a3011300400113500122200113500322222002309d012253350011508f0122153353304450050021309201002130040011350012222200513530440082222200513530430072222200413530420062222200513530410052222200413535004222003222222222222222200e1353049003222222222200313530480022222222222006135001222003300900a3232325335333573466e1d2000002092010910111222222200515335333573466e1d200200209201091011321222222230010083232325335333573466e1d20000020950109401132333222123330010040030023302275c6ae84008dd69aba10013014357426ae88004d5d1000898338341aab9e00235573a0026ea8d5d08008a99a999ab9a3370e90020010490084880899091111111801804191919299a999ab9a3370e900000104a8084a0089919991109199800802001801198113ae357420046eb4d5d08009bad357426ae88004d5d1000898338341aab9e00235573a0026ea8d5d08008a99a999ab9a3370e90030010490084880899091111111803004191919299a999ab9a3370e900000104a8084a00889111110028a99a999ab9a3370e900100104a8084a008990911111180300399810bae357420022a66a666ae68cdc3a400800412a02128022642444444600800e66042eb8d5d08008a99a999ab9a3370e900300104a8084a008999109111111980100400399810bae357420026eb8d5d09aba200115335333573466e1d20080020950109401133221222222330030080073302175c6ae84004dd71aba1357440022a66a666ae68cdc3a401400412a02128022664424444446600201000e66042eb8d5d08009bae357426ae880044c19c1a0d55cf0011aab9d00137546ae8400454cd4ccd5cd19b874802000824804244044c848888888c010020c8c8c94cd4ccd5cd19b874800000825404250044c8488888c014018cc085d71aba100115335333573466e1d2002002095010940113322122222330020070063302175c6ae84004dd71aba1357440022a66a666ae68cdc3a400800412a0212802264244444600800c66042eb8d5d08008a99a999ab9a3370e900300104a8084a00899910911111980180380319810bae357420026eb8d5d09aba200115335333573466e1d2008002095010940113212222230010063302175c6ae840044c19c1a0d55cf0011aab9d00137546ae8400454cd4ccd5cd19b8748028008248042440444888888801c54cd4ccd5cd19b874803000824804244044c8ccc88848888888ccc008028024020dd69aba1002375a6ae84004dd69aba1357440026ae880044c190194d55cf0011aab9d001375400c646464a66a666ae68cdc3a4000004122021200226464666609860c86ae8400cc8d41a0dd60009aba1002375c6ae84004c044d5d09aba2001357440026ae8800454cd4ccd5cd19b874800800824404240044c124c8c8c94cd4ccd5cd19b87480000082500424c044c8c8c8ccccc150dd71aba1004323506d37580026ae8400cc1a0d5d08011bad357420026eb8d5d09aba2001357440026ae88004d5d1000898330339aab9e00235573a0026ea8d5d08008a99a999ab9a3370e9002001048808480089826191919299a999ab9a3370e900000104a008498089919191919191919199999999982c1bae35742012646a0e66eb0004d5d080418369aba1007375a6ae84018dd69aba1005375c6ae84010dd71aba1003375c6ae84008cc0a1d71aba1001375a6ae84d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d1000898330339aab9e00235573a0026ea8d5d08008a99a999ab9a3370e900300104880848008825898318321aab9e00235573a0026ea800440f44c18124103505435001305f49103505435002305e49103505435003232323223232325335333573466e1d200000208f0108e01132333222123330010040030023232325335333573466e1d20000020930109201132323232323232323232323232323333333333333333222222222222222212333333333333333300101101000f00e00d00c00b00a009008007006005004003002323501d37580026ae8403cc8d4078dd60009aba100e323502137580026ae84034dd69aba100c33302875c66050eb9d69aba100b323502337580026ae84028ccc0a0099d69aba10093232325335333573466e1d20000020a4010a3011332212330010030023232325335333573466e1d20000020a7010a6011332212330010030023301f75a6ae84004c078d5d09aba20011307907a35573c0046aae74004dd51aba10013232325335333573466e1d20000020a7010a6011332212330010030023301f75a6ae84004c078d5d09aba20011307907a35573c0046aae74004dd51aba135744002260ec0ee6aae78008d55ce8009baa357420106605aeb8d5d08039998141191919299a999ab9a3370e90000010528085200899091111118028039bae357420022a66a666ae68cdc3a400400414a02148022642444444600400e60466ae8400454cd4ccd5cd19b874801000829404290044c84888888c00c01cc0a8d5d08008a99a999ab9a3370e90030010528085200899910911111198030040039bad35742002604e6ae84d5d10008a99a999ab9a3370e9004001052808520089909111111800803980f1aba100115335333573466e1d200a0020a5010a40113322122222233004008007375a6ae84004c0a4d5d09aba20011307707835573c0046aae74004dd500080b9aba100633302875c02e6ae84014dd71aba100433302801a3302802c23232325335333573466e1d20000020a5010a4011122200215335333573466e1d20020020a5010a4011122200115335333573466e1d20040020a5010a401112220031307707835573c0046aae74004dd50009aba1003323502537580026ae84008cc09dd69aba10013302775a6ae84d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba200135744002260ca0cc6aae78008d55ce8009baa357420046ae84004c8c8c94cd4ccd5cd19b874800000824c04248044c84888888c01401cdd71aba100115335333573466e1d2002002093010920113322122222233002008007301135742002660320126ae84d5d10008a99a999ab9a3370e9002001049808490089909111111801803980c1aba100115335333573466e1d2006002093010920113322122222233006008007375a6ae84004c054d5d09aba200115335333573466e1d2008002093010920113212222223001007300c357420022a66a666ae68cdc3a401400412602124022664424444446600801000e6eb4d5d0800980b9aba135744002260ca0cc6aae78008d55ce8009baa357426ae88004d5d1000898308311aab9e00235573a0026ea800480048c8c8c94cd4ccd5cd19b8748000008234042300442300454cd4ccd5cd19b874800800823404230044234044c17c180d55cf0011aab9d001375400244646464a66a666ae68cdc3a400000411a0211802224440042a66a666ae68cdc3a400400411a021180226424446006008600a6ae8400454cd4ccd5cd19b87480100082340423004448880044c17c180d55cf0011aab9d00137540024646464a66a666ae68cdc3a400000411602114022642444600600860206ae8400454cd4ccd5cd19b874800800822c04228044c84888c008010c040d5d08008a99a999ab9a3370e90020010458084500899091118008021bae35742002260ba0bc6aae78008d55ce8009baa0013308701221330600810122335082013006002353004120010011200133086012213305f0800122335081013005002353004120010011200123232325335333573466e1d20000020870108601133221233001003002300535742002600e6ae84d5d10008982c82d1aab9e00235573a0026ea80048c8c8c94cd4ccd5cd19b874800000821804214044cc21c04dd71aba1001375a6ae84d5d10008982c02c9aab9e00235573a0026ea8004cc20c04884cc1701f488cd41f8c014008d4c01048004004480048c8c8c94cd4ccd5cd19b87480000082100420c044c8c8cccc888848cccc00401401000c008c8c8c94cd4ccd5cd19b874800000822404220044cc8848cc00400c008c038d5d0800998079191919299a999ab9a3370e90000010468084600899091180100198091aba100115335333573466e1d200200208d0108c01132333222122333001005004003375a6ae84008dd69aba1001375a6ae84d5d10009aba20011305f06035573c0046aae74004dd50009aba135744002260b60b86aae78008d55ce8009baa3574200666601aeb8cc035d73ad35742004646464a66a666ae68cdc3a40000041120211002224440062a66a666ae68cdc3a40040041120211002264244460020086eb8d5d08008a99a999ab9a3370e90020010448084400899091118010021aba10011305b05c35573c0046aae74004dd51aba10013300c75c6ae84d5d10009aba200135744002260ac0ae6aae78008d55ce8009baa00133081012213305a07b2233507c300500235300412001001120013223232325335333573466e1d20000020830108201133221222222222223300500d00c30083574200266012eb4d5d09aba200115335333573466e1d20020020830108201133221222222222223300200d00c30083574200266012eb4d5d09aba200115335333573466e1d20040020830108201133221222222222223300a00d00c300835742002600a6ae84d5d10008a99a999ab9a3370e9003001041808410089919991109111111111119980300700680618049aba10023006357420026eb4d5d09aba2001357440022a66a666ae68cdc3a40100041060210402266442444444444446600e01a01860106ae84004dd69aba1357440022a66a666ae68cdc3a40140041060210402264244444444444600201860106ae8400454cd4ccd5cd19b874803000820c04208044cc88488888888888cc00c034030c020d5d08009bad357426ae8800454cd4ccd5cd19b874803800820c04208044cc88488888888888cc024034030dd71aba1001375c6ae84d5d10008a99a999ab9a3370e9008001041808410089991091111111111198040068061bae357420026eb4d5d09aba200115335333573466e1d20120020830108201133221222222222223300b00d00c30083574200260106ae84d5d10008a99a999ab9a3370e900a0010418084100899091111111111180200618041aba10011305505635573c0046aae74004dd5000991191919299a999ab9a3370e90000010418084100899091118018021bae357420022a66a666ae68cdc3a4004004106021040226424446002008600a6ae8400454cd4ccd5cd19b874801000820c04208044cc884888cc008014010dd71aba10013005357426ae880044c154158d55cf0011aab9d00137540024646464a66a666ae68cdc3a4000004104021020226424446006008600e6ae8400454cd4ccd5cd19b874800800820804204044488800854cd4ccd5cd19b87480100082080420404448880044c150154d55cf0011aab9d0013754002660fe442660b00f24466a0f4600a0046a600824002002240024646464a66a666ae68cdc3a4000004100020fe264666444246660020080060046eb4d5d080118031aba10013232325335333573466e1d200000208401083011323332221222222233300300a0090083300b010357420046ae84004cc02dd71aba1357440026ae8800454cd4ccd5cd19b87480080082100420c044cc8848888888cc01c024020cc02803cd5d0800991919299a999ab9a3370e900000104380843008999109198008018011bad357420026eb4d5d09aba20011305905a35573c0046aae74004dd51aba1357440022a66a666ae68cdc3a40080041080210602266442444444466004012010666016012eb4d5d0800998053ae357426ae8800454cd4ccd5cd19b87480180082100420c044c848888888c010020cc02803cd5d08008a99a999ab9a3370e900400104200841808991919999111091111111999800805805004804198060089aba10033301200b3574200466601a016eb4d5d08009a991919299a999ab9a3370e9000001044808440089983e9bad357420026eb4d5d09aba20011305b05c35573c0046aae74004dd51aba13574400244660200040026ae88004d5d10008a99a999ab9a3370e90050010420084180899910911111119802804804198050079aba10013232325335333573466e1d2000002087010860113300d75c6ae840044c164168d55cf0011aab9d00137546ae84d5d10008a99a999ab9a3370e900600104200841808891111110030982b02b9aab9e00235573a0026ea8d5d09aba200135744002260a40a66aae78008d55ce8009baa00123232325335333573466e1d200000207f07e1321223002003375c6ae8400454cd4ccd5cd19b87480080081fc1f84c8488c00400cdd71aba10011305105235573c0046aae74004dd500091191919299a999ab9a3370e900100103f83f0a8388a99a999ab9a3370e900000103f83f0983918029aba10011305105235573c0046aae74004dd5000911911a8011bab0013307d221330560772233507833073300635573a004600a6aae78008d4c0104800400448004c1e88894cd4ccd5cd19b8700101707b07a1304d4901035054330015335333573466e2000405c1ec1e84cc00ccdc080b80119b81017001132332212330010030023370800600266e10008004cc010008004c1e48894cd4ccd5cd19b8700101607a07910021330030013370c00400244644a66aa66a666ae68cdc39804802180500083d03c8980119aa803802000883c883d099ab9c49010348313200079307a225335001107a2215335350022233500722222223335734666e54024cdc51bb3375200e66e28dd99ba8006337146eccdd400299b8a37666ea4010cdc51bb337520066eccdd4801000842808420080089802000883d9191919299a999ab9a3370e900000103c83c0999109198008018011bae357420026eb4d5d09aba20011304b04c35573c0046aae74004dd500091911a8011bac001330772213305007122335072300500235300412001001120013307522112253350021071221533500310732213350743306f004002335530081200100300112001222222123333330010070060050040030023073225335001148000884cdc024004600800260e444a66a0022900011099b8048008c010004cc1c4884894cd4ccd5cd19b89002480001cc1c841b454cd400441b4884cd41b8008cd4c01848004cdc0802240040022400246a0024444444444444444a66a6028602401820fe266ae71241035530310007e306f22533500110692213500222533533075225335001106f221350022322323307d22533500110032213233507900300130040013003300f0023007004307a22533500110742213350753307000500230040010011300600322133506e33069004330772253350011071221350022322323307f22533500110032213233507b0030013004001300330110023007004307c2253350011076221335077330720050023004001003300800525335333573466e24005200006c06d13350660010671067306d225335001106d223213500322300300130712253350011300600322135002225335333573466e1d200000107507413006003107422235003223500422350052253355335333500a05d00600515335333573466e1c01000c1cc1c84ccd5cd19b8f0020010730721072107210731335738921024832000723306b221222533500215335001106e22106f2215335003106f22153353300700400213335300912001007003001107112001222323306e2253350011300348000884d4008894cd4ccd5cd19b8f002009072071130073370201c60180022600c0060084a66a666ae68cdc380099b8048008c0140081b01ac41b04cd5ce2481034831340006b3069225335001148000884cdc024004600800260d044a66a00220084426a0044466e00004c01800c88c8d400c8894cd4c020d400c88888888888888880204c98cd5ce24810248360004f232215335001153353002300c3007350062222222222222222010106e13357389210248350006d22132633573892102483700054306e225335001106d22153353305a005002107013004001306922533500110632213500222323233071225335001100322133506c002300400100230070043302200735001222200348000c194894cd4004417c884cd4180008c010004c190894cd40044178884cd417c008c0100048dc918031801982c800a4810350543800306122533500113002300305b22153350011002221300630070053060225335001105a2215335001100322133505d330070040023006001305f222533500210012215335003100432221533353306000500215003133505e0023300800700115003133505b00233005001003305e225335001100e221350022233714002600c0064644600400260bc44a66a00220ba4426a00444a66a666ae68cdc78010038310308980400089803001982e11299a800882d9109a80111299a999ab9a3371e91010b48796472614865616456310000206005f1333573466e1d200200106005f1300600323724600400260b444a66a002201444266e28dd99a801111119ba548000cd5d01a8021119ba548000cd5d0180780119aba033010233500123374a900019aba03011001376202644466e9520023357406ea000ccd5d01ba80023357406ea0004dd880a8009bb1011335740666016ea5402800ccd5d02999a801099ba548000dd88079099ba548010cd5d00009bb1010213374a900119aba037520026ec4040cd5d0198073a9001376201e600800244666ae68cdc79bb3333004752a0060046eccccc011d4a80180082c82c099800ba923750002446446e98c008004c16488cd40052f5bded8c0446a0044466ae80cdd8180400118038009803001991299a9806980a00090a9999a80090980224c2600693111109803a4c420022600493119319ab9c490102483300039233500123374a900019aba037520026ec40108cdd2a400466ae80dd48009bb1004225335001213374a900019aba030030013762008266e95200237620069324410033051221225335333573466e240092000053052100115335001104d2213353006120013370200890010008900099111999980181d9180280099980181d9199ab9a3370e900000082902891199ab9a3370e0040020a60a4004002446464464446600600400260aa444a66a0042600a002442a66a006260100084426a00844646a00a44a66a6602200a0042a66a6601a00800226601801000c20bc2a66a6020008266018010014266006a66a602000220b2266a0b000e0b200c60bc444a66a00220bc4426a00444a66a602800226600e00c0062a66a6602a0120042a66a660220100022660200186660ca444a66a00420024426600a00266a0c200400600c00620c426600e66a0b800800c00660a644a66a00220a64426a00444a66a60100022600c00620ac60a444a66a00220a44426a00444a66a600e0022600c00620aa609e44a66a002209e4426a00444a66a666ae68cdc3a40000020a60a42600c00620a444666ae68cdc3a40046024660060046a002444400609c09a4644a66aa66a60040024260840022a08042660a244a66a002209644264a66a6a00644a66a666ae68cdc3a40040020ac0aa260920042a0904266a09c002004200260080020022090609c44a66a0022a0804426a00444a66a666ae68cdc78010038290288982280089803001991299a9801980500090a9999a8009080089801a4c44442600e9310980224c2600493119319ab9c49010248330002f32233333301922532335333573466e1d200000304e04d153353330275040223043330440020010022135001225335300800221533533302b50442230473304800200100221350012253353301c02100221533533302f504822304b3304c002001002213500122533535026002215335333033504c22304f002002215335302300121304f333301500b0070030011300e4984c035261300c4984c02526130084984c01526130044984c0052613001498c894cd4ccd5cd19b874800801013c13854cd4ccc0a1410488c11000800c854cd4cccccc078894cd4ccd5cd19b874800000814814454cd4ccc0ad411088c11ccc12000800400484d4004894cd4d4088008854cd4ccc0bd412088c12ccc13000800400884d4004894cd4cc080094008854cd4ccc0cd413088c13ccc14000800400884d4004894cd4c050008854cd4ccc0dd414088c14ccc15000800400884d4004894cd4d40a8008854cd4ccc0ed415088c15c008008854cd4d40c000484c15cccccc08403c02c01c00c00454154541505414c541405413c541305412c541205411c54110541109410c9410c9410c9410c00484c110c0240044c00d26130024984c009263225335333573466e1d200400404f04e15335333028504122304400200321533533333301e225335333573466e1d20000020520511533533302b50442230473304800200100121350012253353502200221533533302f504822304b3304c002001002213500122533533020025002215335333033504c22304f330500020010022135001225335301400221533533303750502230533305400200100221350012253353502a00221533533303b50542230573305800200100221350012253353502e00221533533303f505822305b3305c002001002213500122533535036002215335333043505c22305f3306000200100221350012253353503a00221533533304750602230633306400200100221350012253353503e00221533533304b50642230673306800200100221350012253353303c504200221533533304f506822306b0020022153353504000121306b333333333303402301f01b01701300f00b0070030011506915068150671506415063150601505f1505c1505b15058150571505415053150501504f1504c1504b1504815047150441504425043250432504325043001213044300c001130034984c009261300249894cd4ccd5cd19b874801800c1381344c10402054100940f8940f8940f8940f80048cccccc060894cd4ccd5cd19b874800000813012c54cd4ccc09540f888c104008004854cd4d405800484c104004540fc540f8540f8940f4940f4940f4940f4004848888c0100144888800c888848888cccc00802001c018014848888c004014888888888848cccccccccc00402c02802402001c01801401000c0088888848ccccc00401801401000c008c894cd4d4d400488800c88888888888888880384c009262215335330053500222220043535300600322001222200413015002130044988c98cd5ce248103483131000272235002223500322533533500423350032333573466e3c00800412412081208cd400c81208ccd5cd19b8f0020010490481533500321533500221335002233500223350022335002233037002001204c2335002204c23303700200122204c222335004204c2225335333573466e1c01800c13c13854cd4ccd5cd19b8700500204f04e1333573466e1c01000413c13841384138411c54cd40048411c411c411894cd4c008004840044c98cd5ce24902483800025235001222350032222222222222222333333501122018201722018201723223002013305622533500115048221350022253353301c0020071304d00413006003201722533535002223500322333573466e3c01000811010c4d400888d400c88ccd5cd19b87003001044043103f502f303e225335001148000884cdc02400460080024a66a64666600e012a006a0140026016002426a002444004206c26002466666601244a66a666ae68cdc3a400000407a0782a66a66602ca05e44606466066004002002426a00244a66a601000442a66a666034a06644606c00400442a66a6a01e00242606c24660020080042a0682a0662a0642a05e2a05e4a05c4a05c4a05c4a05c0024646666601244a05e4a05c0024a05c4a05ca660784426602a605e06c44a66a600a00442a66a6a600a2400200442606666a0720040022a062264a0626a60082400200224002466666600e44a66a666ae68cdc3a40000040760742a66a666028a05a44606066062004002002426a00244a66a6a01600442a66a666030a06244606800400442a66a6a012002426068660840060022a0642a0622a0602a05a2a05a4a0584a0584a0584a05800226666600a44a0564a0544a054460560024a054444466666601044a66a666ae68cdc3a40000040780762a66a66602aa05c44606266064004002002426a00244a66a601200442a66a666032a06444606a6606c004002004426a00244a66a601800442a66a66603aa06c44607200400442a66a601a00242607266602200e0060022a06e2a06c2a06a2a0642a0622a05c2a05c4a05a4a05a4a05a4a05a002444246660020080060044a66a6a0040024260520022a04e26666600244a04e4a04c4a04c4a04c4604e002444444a666666ae900044c8cc01cd55ce8009aab9e00137540022600a6eac0044c010dd6000898019bad00113002375c0024a666a6a0024444004264c66ae71240102483900016210012132633573892103483130000173032225335001102c22133502d35002223302a0023301d233704900080080098020009191919299a999ab9a3370e900000101981909bad357420022600a00c6aae78008d55ce8009baa001232633573800202692103505431003302e2213300702822335029375c0046a600824002002240026605a4426600c04e4466a0506eb8008d4c0104800400448004cc0b0884cc01409888cd409cdd70011a98020900080089000899319ab9c491034833310000d2326335738921034833350000d22253335573e00220062660046ae84004d5d1000981411299a8008a400044266e01200230040013027225335001148000884cdc0240046008002264c66ae7124103483432000083025225335001148000884cdc0240046008002604844a66a002203c44266a0044444660200240066008002604644a66a0022900011099b8048008c0100044c98cd5ce24810348323700004132633573892103483235000031326335738921034832340000223263357389210248310000212001301d225335001101722133500222223300900b003300400123222300330073335009008002001301d225335001101722133501835002223301500233008233350012330094800000488cc0280080048cc0240052000001300400123223002001301c2253350011016221335017350022233014002300700130040012233700004002603244a66a002202644266a0286a0044466022004666a0024601400244666a01401200400246016002600800244666ae68cdc780100080c00b89911119191980e91299a800880191099a80c0011802000980100218029980e11299a800880b11099299a9a80191911801005981111299a80088111109a80111299a99808001003881289803001899a80c00180088009802000801180d91299a800880a91099a80b1a80111191980a0019800804181091299a80089aa8078019109a80111299a998078010040891119801005002098030019802000980b91299a800880891099a8091a801111980780118050009802000980b11299a800880811099a8089a801111980700118048009802000980a91299a800880791099a8081a80111198068011aa803800980200090911180180208909111800802180911299a800880611099a8069a801111a80091110019802000980891299a800880591099a8061a8011100118020009091180100188910009109198008018011a8019110009a8011110011a800911001999180080091091919980111801111180180211801111180100211801111180080211a998020020019a801800891111998021299a800899a803003803910a99a800899a804001804910a99199a998068028018a800899980400199a8058028060010a8008999803001119a805802800800911299a800899a80419a804001801180300499110a999a998068030010a801899980400119a8058030028008a801899a80419a804001801180300091129919a80109800a4c442a64666a6601c00e0062a00226008930a80089998038011180319a806003800800919a804980199a80480200518038010910010910911980080200199111a801111a801111a802911a801112999a998058030010a99a999ab9a3370e00a00202001e201c2a66a666ae68cdc48028008080078806080689980580300109980580300111299a999ab9a3371e00400200e00c200a2a66a666ae68cdc88010008038030801880209110018911001091100089100109100091091980080180111918008009180111980100100081" } diff --git a/hydra-plutus/src/Hydra/Contract/Head.hs b/hydra-plutus/src/Hydra/Contract/Head.hs index a8bbe976b0c..ed2d6fc098f 100644 --- a/hydra-plutus/src/Hydra/Contract/Head.hs +++ b/hydra-plutus/src/Hydra/Contract/Head.hs @@ -60,6 +60,7 @@ import PlutusLedgerApi.V3 ( TxOut (..), UpperBound (..), Value (Value), + mintValueMinted, ) import PlutusLedgerApi.V3.Contexts (findOwnInput, findTxInByTxOutRef) import PlutusTx (CompiledCode) @@ -117,7 +118,7 @@ checkAbort ctx@ScriptContext{scriptContextTxInfo = txInfo} headCurrencySymbol pa && mustBeSignedByParticipant ctx headCurrencySymbol && mustReimburseCommittedUTxO where - minted = txInfoMint txInfo + minted = mintValueMinted $ txInfoMint txInfo mustReimburseCommittedUTxO = traceIfFalse $(errorCode ReimbursedOutputsDontMatch) $ @@ -653,7 +654,7 @@ checkFanout ScriptContext{scriptContextTxInfo = txInfo} closedDatum numberOfFano && hasSameDecommitUTxOHash && afterContestationDeadline where - minted = txInfoMint txInfo + minted = mintValueMinted $ txInfoMint txInfo hasSameUTxOHash = traceIfFalse $(errorCode FanoutUTxOHashMismatch) $ diff --git a/hydra-plutus/src/Hydra/Contract/HeadTokens.hs b/hydra-plutus/src/Hydra/Contract/HeadTokens.hs index 664fb7374ba..c4bfbd2cd6e 100644 --- a/hydra-plutus/src/Hydra/Contract/HeadTokens.hs +++ b/hydra-plutus/src/Hydra/Contract/HeadTokens.hs @@ -45,6 +45,7 @@ import PlutusLedgerApi.V3 ( TxInfo (..), TxOutRef, Value (getValue), + mintValueMinted, serialiseCompiledCode, ) import PlutusLedgerApi.V3.Contexts (ownCurrencySymbol) @@ -136,6 +137,7 @@ validateTokensMinting initialValidator headValidator seedInput context = maybe 0 sum . AssocMap.lookup currency . getValue + . mintValueMinted $ txInfoMint txInfo (headId, seed, nParties) = @@ -173,7 +175,8 @@ validateTokensBurning context = ScriptContext{scriptContextTxInfo = txInfo} = context - minted = getValue $ txInfoMint txInfo + -- TODO: Should this be burned our minted?! + minted = getValue . mintValueMinted $ txInfoMint txInfo burnHeadTokens = case AssocMap.lookup currency minted of diff --git a/hydra-plutus/src/Hydra/Contract/Util.hs b/hydra-plutus/src/Hydra/Contract/Util.hs index be0c5b0552b..242b3523a58 100644 --- a/hydra-plutus/src/Hydra/Contract/Util.hs +++ b/hydra-plutus/src/Hydra/Contract/Util.hs @@ -20,15 +20,18 @@ import PlutusLedgerApi.V3 ( TxOut (..), TxOutRef (..), Value (getValue), + mintValueMinted, toBuiltinData, ) import PlutusTx.AssocMap qualified as AssocMap import PlutusTx.Builtins (serialiseData) import PlutusTx.Builtins qualified as Builtins +import PlutusTx.Builtins.HasOpaque (stringToBuiltinByteString) import PlutusTx.Prelude hydraHeadV1 :: BuiltinByteString -hydraHeadV1 = "HydraHeadV1" +hydraHeadV1 = stringToBuiltinByteString "HydraHeadV1" +{-# INLINEABLE hydraHeadV1 #-} -- | Checks that the output contains the state token (ST) with the head -- 'CurrencySymbol' and 'TokenName' of 'hydraHeadV1' @@ -57,7 +60,7 @@ mustBurnAllHeadTokens minted headCurrencySymbol parties = mustNotMintOrBurn :: TxInfo -> Bool mustNotMintOrBurn TxInfo{txInfoMint} = traceIfFalse "U01" $ - isZero txInfoMint + isZero (mintValueMinted txInfoMint) {-# INLINEABLE mustNotMintOrBurn #-} infix 4 ===