Skip to content

Commit 8d5d83d

Browse files
authored
Merge pull request #5484 from IntersectMBO/td/fix-multiasset-cddl
Fix MultiAsset cddl definition in dijkstra
2 parents 4c58f1b + 1a0c1d2 commit 8d5d83d

File tree

4 files changed

+34
-6
lines changed

4 files changed

+34
-6
lines changed

eras/conway/impl/cddl/lib/Cardano/Ledger/Conway/HuddleSpec.hs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616
module Cardano.Ledger.Conway.HuddleSpec (
1717
module Cardano.Ledger.Babbage.HuddleSpec,
1818
conwayCDDL,
19-
conwayMultiasset,
20-
conwayValueRule,
2119
conwayMintRule,
2220
conwayWithdrawalsRule,
2321
conwayRedeemer,

eras/dijkstra/impl/cddl/data/dijkstra.cddl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ value = coin/ [coin, multiasset<positive_coin>]
181181

182182
coin = uint
183183

184-
multiasset<a0> = {* policy_id => {+ asset_name => a0}}
184+
multiasset<a0> = {+ policy_id => {+ asset_name => a0}}
185185

186186
policy_id = script_hash
187187

eras/dijkstra/impl/cddl/lib/Cardano/Ledger/Dijkstra/HuddleSpec.hs

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
module Cardano.Ledger.Dijkstra.HuddleSpec (
1717
module Cardano.Ledger.Conway.HuddleSpec,
1818
dijkstraCDDL,
19+
dijkstraMultiasset,
20+
dijkstraValueRule,
1921
guardsRule,
2022
subTransactionsRule,
2123
subTransactionRule,
@@ -265,6 +267,34 @@ auxiliaryDataMapRule p =
265267
]
266268
)
267269

270+
dijkstraValueRule ::
271+
forall era.
272+
( HuddleRule "policy_id" era
273+
, HuddleRule "asset_name" era
274+
, HuddleRule "positive_coin" era
275+
) =>
276+
Proxy era ->
277+
Rule
278+
dijkstraValueRule p =
279+
"value"
280+
=:= huddleRule @"coin" p
281+
/ sarr [a $ huddleRule @"coin" p, a $ dijkstraMultiasset p (huddleRule @"positive_coin" p)]
282+
283+
dijkstraMultiasset ::
284+
forall era a.
285+
(HuddleRule "policy_id" era, HuddleRule "asset_name" era, IsType0 a) =>
286+
Proxy era ->
287+
a ->
288+
GRuleCall
289+
dijkstraMultiasset p =
290+
binding $ \x ->
291+
"multiasset"
292+
=:= mp
293+
[ 1
294+
<+ asKey (huddleRule @"policy_id" p)
295+
==> mp [1 <+ asKey (huddleRule @"asset_name" p) ==> x]
296+
]
297+
268298
instance HuddleRule "bounded_bytes" DijkstraEra where
269299
huddleRule _ = boundedBytesRule
270300

@@ -495,7 +525,7 @@ instance HuddleRule "required_signers" DijkstraEra where
495525
=:= maybeTaggedNonemptySet (huddleRule @"addr_keyhash" p)
496526

497527
instance HuddleRule "value" DijkstraEra where
498-
huddleRule = conwayValueRule @DijkstraEra
528+
huddleRule = dijkstraValueRule @DijkstraEra
499529

500530
instance HuddleRule "mint" DijkstraEra where
501531
huddleRule = conwayMintRule @DijkstraEra

eras/dijkstra/impl/test/Test/Cardano/Ledger/Dijkstra/Binary/CddlSpec.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ spec = do
3939
let v = eraProtVerHigh @DijkstraEra
4040
describe "Ruby-based" $ beforeAllCddlFile 3 readDijkstraCddlFiles $ do
4141
cddlRoundTripCborSpec @(Value DijkstraEra) v "positive_coin"
42-
xdescribe "fix Multiasset" $ do
42+
describe "MultiAsset" $ do
4343
cddlRoundTripCborSpec @(Value DijkstraEra) v "value"
4444
xdescribe "fix TxBody" $ do
4545
cddlRoundTripAnnCborSpec @(TxBody TopTx DijkstraEra) v "transaction_body"
@@ -85,7 +85,7 @@ spec = do
8585
describe "Huddle" $ specWithHuddle dijkstraCDDL 100 $ do
8686
huddleRoundTripCborSpec @(Value DijkstraEra) v "positive_coin"
8787
huddleRoundTripArbitraryValidate @(Value DijkstraEra) v "value"
88-
xdescribe "fix MultiAsset" $ do
88+
describe "MultiAsset" $ do
8989
huddleRoundTripCborSpec @(Value DijkstraEra) v "value"
9090
xdescribe "fix TxBody" $ do
9191
huddleRoundTripAnnCborSpec @(TxBody TopTx DijkstraEra) v "transaction_body"

0 commit comments

Comments
 (0)