Skip to content

Commit dfc6f08

Browse files
wip todo
1 parent 2736ff3 commit dfc6f08

File tree

2 files changed

+38
-35
lines changed

2 files changed

+38
-35
lines changed

dmq-node/src/DMQ/NodeToClient/LocalMsgSubmission.hs

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,32 +6,33 @@ import Data.Maybe
66

77
import DMQ.Protocol.LocalMsgSubmission.Server
88
import DMQ.Protocol.LocalMsgSubmission.Type
9+
import Ouroboros.Network.TxSubmission.Mempool.Simple
910
import Ouroboros.Network.TxSubmission.Inbound.V2
1011

1112
-- | Local transaction submission server, for adding txs to the 'Mempool'
1213
--
1314
localMsgSubmissionServer ::
1415
MonadSTM m
15-
=> Tracer m (TraceLocalMsgSubmission msg msgid SigMempoolFail)
16+
=> Tracer m (TraceLocalMsgSubmission msg msgid (MempoolAddFail sig))
1617
-> TxSubmissionMempoolWriter msgid msg idx m
1718
-> m (LocalMsgSubmissionServer msg m ())
1819
localMsgSubmissionServer tracer TxSubmissionMempoolWriter { mempoolAddTxs } =
19-
pure server
20-
where
21-
failure =
22-
-- TODO remove dummy hardcode when mempool returns reason
23-
(SubmitFail SigExpired, server) <$ traceWith tracer (TraceSubmitFailure SigExpired)
24-
success msgid =
25-
(SubmitSuccess, server) <$ traceWith tracer (TraceSubmitAccept msgid)
20+
pure undefined --server
21+
-- where
22+
-- failure =
23+
-- -- TODO remove dummy hardcode when mempool returns reason
24+
-- (SubmitFail SigExpired, server) <$ traceWith tracer (TraceSubmitFailure SigExpired)
25+
-- success msgid =
26+
-- (SubmitSuccess, server) <$ traceWith tracer (TraceSubmitAccept msgid)
2627

27-
server = LocalTxSubmissionServer {
28-
recvMsgSubmitTx = \msg -> do
29-
traceWith tracer $ TraceReceivedMsg msg
30-
-- TODO mempool should return 'SubmitResult'
31-
maybe failure success . listToMaybe =<< mempoolAddTxs [msg]
28+
-- server = LocalTxSubmissionServer {
29+
-- recvMsgSubmitTx = \msg -> do
30+
-- traceWith tracer $ TraceReceivedMsg msg
31+
-- -- TODO mempool should return 'SubmitResult'
32+
-- maybe failure success . listToMaybe =<< mempoolAddTxs [msg]
3233

33-
, recvMsgDone = ()
34-
}
34+
-- , recvMsgDone = ()
35+
-- }
3536

3637

3738
data TraceLocalMsgSubmission msg msgid reject =

dmq-node/src/DMQ/Protocol/LocalMsgSubmission/Codec.hs

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -20,33 +20,35 @@ import DMQ.Protocol.SigSubmission.Type (Sig (..))
2020

2121
import Network.TypedProtocol.Codec.CBOR
2222
import Ouroboros.Network.Protocol.LocalTxSubmission.Codec qualified as LTX
23+
import Ouroboros.Network.TxSubmission.Mempool.Simple
2324

2425
codecLocalMsgSubmission
2526
:: forall crypto m.
2627
( MonadST m
2728
, Crypto crypto
2829
)
29-
=> (SigMempoolFail -> CBOR.Encoding)
30-
-> (forall s. CBOR.Decoder s SigMempoolFail)
30+
=> (MempoolAddFail (Sig crypto) -> CBOR.Encoding)
31+
-> (forall s. CBOR.Decoder s (MempoolAddFail (Sig crypto)))
3132
-> AnnotatedCodec (LocalMsgSubmission (Sig crypto)) CBOR.DeserialiseFailure m ByteString
3233
codecLocalMsgSubmission =
3334
LTX.anncodecLocalTxSubmission' SigWithBytes SigSubmission.encodeSig SigSubmission.decodeSig
3435

35-
encodeReject :: SigMempoolFail -> CBOR.Encoding
36-
encodeReject = \case
37-
SigInvalid reason -> CBOR.encodeListLen 2 <> CBOR.encodeWord 0 <> CBOR.encodeString reason
38-
SigDuplicate -> CBOR.encodeListLen 1 <> CBOR.encodeWord 1
39-
SigExpired -> CBOR.encodeListLen 1 <> CBOR.encodeWord 2
40-
SigResultOther reason
41-
-> CBOR.encodeListLen 2 <> CBOR.encodeWord 3 <> CBOR.encodeString reason
42-
43-
decodeReject :: CBOR.Decoder s SigMempoolFail
44-
decodeReject = do
45-
len <- CBOR.decodeListLen
46-
tag <- CBOR.decodeWord
47-
case (tag, len) of
48-
(0, 2) -> SigInvalid <$> CBOR.decodeString
49-
(1, 1) -> pure SigDuplicate
50-
(2, 1) -> pure SigExpired
51-
(3, 2) -> SigResultOther <$> CBOR.decodeString
52-
_otherwise -> fail $ printf "unrecognized (tag,len) = (%d, %d)" tag len
36+
encodeReject :: MempoolAddFail (Sig crypto) -> CBOR.Encoding
37+
encodeReject = undefined
38+
-- encodeReject = \case
39+
-- SigInvalid reason -> CBOR.encodeListLen 2 <> CBOR.encodeWord 0 <> CBOR.encodeString reason
40+
-- SigDuplicate -> CBOR.encodeListLen 1 <> CBOR.encodeWord 1
41+
-- SigExpired -> CBOR.encodeListLen 1 <> CBOR.encodeWord 2
42+
-- SigResultOther reason
43+
-- -> CBOR.encodeListLen 2 <> CBOR.encodeWord 3 <> CBOR.encodeString reason
44+
45+
decodeReject :: CBOR.Decoder s (MempoolAddFail (Sig crypto))
46+
decodeReject = return undefined --do
47+
-- len <- CBOR.decodeListLen
48+
-- tag <- CBOR.decodeWord
49+
-- case (tag, len) of
50+
-- (0, 2) -> SigInvalid <$> CBOR.decodeString
51+
-- (1, 1) -> pure SigDuplicate
52+
-- (2, 1) -> pure SigExpired
53+
-- (3, 2) -> SigResultOther <$> CBOR.decodeString
54+
-- _otherwise -> fail $ printf "unrecognized (tag,len) = (%d, %d)" tag len

0 commit comments

Comments
 (0)