Skip to content

Commit f72189b

Browse files
committed
plutus-ledger: Use cardano-api for Data hashes
1 parent 9280fd9 commit f72189b

File tree

5 files changed

+93
-84
lines changed

5 files changed

+93
-84
lines changed

plutus-ledger/src/Ledger/Scripts.hs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ module Ledger.Scripts (
2020
, stakeValidatorHash
2121
, toCardanoApiScript
2222
, scriptHash
23+
, dataHash
2324
) where
2425

2526
import Cardano.Api (AsType, HasTextEnvelope (textEnvelopeType), HasTypeProxy (proxyToAsType),
@@ -28,7 +29,6 @@ import qualified Cardano.Api as Script
2829
import qualified Cardano.Api.Shelley as Script
2930
import Cardano.Binary (FromCBOR (fromCBOR), ToCBOR (toCBOR))
3031
import Codec.Serialise (decode, encode, serialise)
31-
import qualified Data.ByteArray as BA
3232
import qualified Data.ByteString.Lazy as BSL
3333
import qualified Data.ByteString.Short as SBS
3434
import qualified Data.Text as Text
@@ -83,10 +83,10 @@ instance HasTypeProxy Redeemer where
8383
proxyToAsType _ = AsRedeemer
8484

8585
datumHash :: Datum -> DatumHash
86-
datumHash = DatumHash . Builtins.sha2_256 . BA.convert
86+
datumHash = DatumHash . dataHash . getDatum
8787

8888
redeemerHash :: Redeemer -> RedeemerHash
89-
redeemerHash = RedeemerHash . Builtins.sha2_256 . BA.convert
89+
redeemerHash = RedeemerHash . dataHash . getRedeemer
9090

9191
validatorHash :: Validator -> ValidatorHash
9292
validatorHash = ValidatorHash . scriptHash . getValidator
@@ -97,6 +97,15 @@ mintingPolicyHash = MintingPolicyHash . scriptHash . getMintingPolicy
9797
stakeValidatorHash :: StakeValidator -> StakeValidatorHash
9898
stakeValidatorHash = StakeValidatorHash . scriptHash . getStakeValidator
9999

100+
-- | Hash a 'Builtins.BuiltinData'
101+
dataHash :: Builtins.BuiltinData -> Builtins.BuiltinByteString
102+
dataHash =
103+
toBuiltin
104+
. Script.serialiseToRawBytes
105+
. Script.hashScriptData
106+
. Script.fromPlutusData
107+
. builtinDataToData
108+
100109
-- | Hash a 'Script'
101110
scriptHash :: Script -> Builtins.BuiltinByteString
102111
scriptHash =

plutus-use-cases/test/Spec/crowdfundingEmulatorTestOutput.txt

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Slot 1: 00000000-0000-4000-8000-000000000002 {Contract instance for wallet ce5bf
1919
Contract log: String "Contributing Value (Map [(,Map [(\"\",100)])])"
2020
Slot 1: W2e463c8: Balancing an unbalanced transaction:
2121
Tx:
22-
Tx 184c919f0635b8a474781b2639cb3c375ba47434ca82c39d1cc4a8eb074b9252:
22+
Tx cfc19a60d52be4772e2cadf66835ff508d0ee7620e49cdaa4d6b36f4992671b4:
2323
{inputs:
2424
collateral inputs:
2525
outputs:
@@ -36,18 +36,18 @@ Slot 1: W2e463c8: Balancing an unbalanced transaction:
3636
Utxo index:
3737
Validity range:
3838
(-∞ , POSIXTime 1596059111000 ]
39-
Slot 1: W2e463c8: Finished balancing. e3d90b9da8d3fb4adbcb704cef6429664a61fa8db8eb27ead8da39e4459c95e8
39+
Slot 1: W2e463c8: Finished balancing. 8201c69f1e19f0b8ec1c412f0027c6addddfcba84a306a70b99a960fa5c02553
4040
Slot 1: 00000000-0000-4000-8000-000000000003 {Contract instance for wallet 36cb1d44654c33ed6b26cbe2da0848de2ebfdb20010679a06c5f609c474f349b8003380446e9159a34504f9fd19da3e93f215efa30cae9455d441be0eac8db66291a5a5e8c961f9da5fb8cb616ab630a6600f4a44acd520fa701b330849e4446d7d1711ac606ae93a2b3d457dd7f4f36b3af92dd0de82a7caf471fb5ed2b5ea3}:
4141
Contract instance started
42-
Slot 1: W2e463c8: Submitting tx: e3d90b9da8d3fb4adbcb704cef6429664a61fa8db8eb27ead8da39e4459c95e8
43-
Slot 1: W2e463c8: TxSubmit: e3d90b9da8d3fb4adbcb704cef6429664a61fa8db8eb27ead8da39e4459c95e8
42+
Slot 1: W2e463c8: Submitting tx: 8201c69f1e19f0b8ec1c412f0027c6addddfcba84a306a70b99a960fa5c02553
43+
Slot 1: W2e463c8: TxSubmit: 8201c69f1e19f0b8ec1c412f0027c6addddfcba84a306a70b99a960fa5c02553
4444
Slot 1: 00000000-0000-4000-8000-000000000003 {Contract instance for wallet 36cb1d44654c33ed6b26cbe2da0848de2ebfdb20010679a06c5f609c474f349b8003380446e9159a34504f9fd19da3e93f215efa30cae9455d441be0eac8db66291a5a5e8c961f9da5fb8cb616ab630a6600f4a44acd520fa701b330849e4446d7d1711ac606ae93a2b3d457dd7f4f36b3af92dd0de82a7caf471fb5ed2b5ea3}:
4545
Receive endpoint call on 'contribute' for Object (fromList [("contents",Array [Object (fromList [("getEndpointDescription",String "contribute")]),Object (fromList [("unEndpointValue",Object (fromList [("contribValue",Object (fromList [("getValue",Array [Array [Object (fromList [("unCurrencySymbol",String "")]),Array [Array [Object (fromList [("unTokenName",String "")]),Number 25.0]]]])]))]))])]),("tag",String "ExposeEndpointResp")])
4646
Slot 1: 00000000-0000-4000-8000-000000000003 {Contract instance for wallet 36cb1d44654c33ed6b26cbe2da0848de2ebfdb20010679a06c5f609c474f349b8003380446e9159a34504f9fd19da3e93f215efa30cae9455d441be0eac8db66291a5a5e8c961f9da5fb8cb616ab630a6600f4a44acd520fa701b330849e4446d7d1711ac606ae93a2b3d457dd7f4f36b3af92dd0de82a7caf471fb5ed2b5ea3}:
4747
Contract log: String "Contributing Value (Map [(,Map [(\"\",25)])])"
4848
Slot 1: Wce5bf08: Balancing an unbalanced transaction:
4949
Tx:
50-
Tx 914f0e1d5888be6738091542930808db06f587bd955e37f8ea227bd2131cdbaa:
50+
Tx 9ee63c372869ecaa6a68cfbeb2a9196a790c60af4d6373a872793c79f83a0ffa:
5151
{inputs:
5252
collateral inputs:
5353
outputs:
@@ -64,12 +64,12 @@ Slot 1: Wce5bf08: Balancing an unbalanced transaction:
6464
Utxo index:
6565
Validity range:
6666
(-∞ , POSIXTime 1596059111000 ]
67-
Slot 1: Wce5bf08: Finished balancing. 29dad1eb7be36579544e9289e760ebcb6c33803ee766ba553fd4e2e5c90f60d8
68-
Slot 1: Wce5bf08: Submitting tx: 29dad1eb7be36579544e9289e760ebcb6c33803ee766ba553fd4e2e5c90f60d8
69-
Slot 1: Wce5bf08: TxSubmit: 29dad1eb7be36579544e9289e760ebcb6c33803ee766ba553fd4e2e5c90f60d8
67+
Slot 1: Wce5bf08: Finished balancing. 2dd0f42df10bc0dcb6662822fdd77083aca77ad571854794d579e6e213d04990
68+
Slot 1: Wce5bf08: Submitting tx: 2dd0f42df10bc0dcb6662822fdd77083aca77ad571854794d579e6e213d04990
69+
Slot 1: Wce5bf08: TxSubmit: 2dd0f42df10bc0dcb6662822fdd77083aca77ad571854794d579e6e213d04990
7070
Slot 1: W36cb1d4: Balancing an unbalanced transaction:
7171
Tx:
72-
Tx f47edfca94bfa0a575404ccc45dc089c851f32131597751b07019b801b556582:
72+
Tx 4d356df4a323c61c3d32f6873fe8fa4974d1484120107ff640a7254cfa325e4d:
7373
{inputs:
7474
collateral inputs:
7575
outputs:
@@ -86,23 +86,23 @@ Slot 1: W36cb1d4: Balancing an unbalanced transaction:
8686
Utxo index:
8787
Validity range:
8888
(-∞ , POSIXTime 1596059111000 ]
89-
Slot 1: W36cb1d4: Finished balancing. d5504c128eede4a4901eae8b66ac849c54ee23f558ce54effc479fbcbd9db583
90-
Slot 1: W36cb1d4: Submitting tx: d5504c128eede4a4901eae8b66ac849c54ee23f558ce54effc479fbcbd9db583
91-
Slot 1: W36cb1d4: TxSubmit: d5504c128eede4a4901eae8b66ac849c54ee23f558ce54effc479fbcbd9db583
92-
Slot 1: TxnValidate d5504c128eede4a4901eae8b66ac849c54ee23f558ce54effc479fbcbd9db583
93-
Slot 1: TxnValidate 29dad1eb7be36579544e9289e760ebcb6c33803ee766ba553fd4e2e5c90f60d8
94-
Slot 1: TxnValidate e3d90b9da8d3fb4adbcb704cef6429664a61fa8db8eb27ead8da39e4459c95e8
89+
Slot 1: W36cb1d4: Finished balancing. 5245cee6871d5d0c6f7fa9b573691eb2d3eba54b2c3a406a3758fb4d6ec55bfa
90+
Slot 1: W36cb1d4: Submitting tx: 5245cee6871d5d0c6f7fa9b573691eb2d3eba54b2c3a406a3758fb4d6ec55bfa
91+
Slot 1: W36cb1d4: TxSubmit: 5245cee6871d5d0c6f7fa9b573691eb2d3eba54b2c3a406a3758fb4d6ec55bfa
92+
Slot 1: TxnValidate 5245cee6871d5d0c6f7fa9b573691eb2d3eba54b2c3a406a3758fb4d6ec55bfa
93+
Slot 1: TxnValidate 2dd0f42df10bc0dcb6662822fdd77083aca77ad571854794d579e6e213d04990
94+
Slot 1: TxnValidate 8201c69f1e19f0b8ec1c412f0027c6addddfcba84a306a70b99a960fa5c02553
9595
Slot 20: 00000000-0000-4000-8000-000000000000 {Contract instance for wallet 76d5e1291d51f16eb442267faccd0ab51a3b0c4a21eb6b8f72d5f0a4ca467189ac5f70a018c6df3f632b48fd8ead1b68f39a44de06f5a5de42a6a131af0f085d44becd56fa30041efea5ff2637205181837dffd03545d3db1c11e6dcbbd3415ce8f85aad41776b99eb62a797b8c5abbe82061e1634efc4c7d5ac6fff3ca94d7f}:
9696
Contract log: String "Collecting funds"
9797
Slot 20: W76d5e12: Balancing an unbalanced transaction:
9898
Tx:
99-
Tx 8e174d4bccd0f3bbc36e383ad7b807d5d323aafdbfd55fce1ae0e0eee606f361:
99+
Tx 82df88b815f586c7869a32778652570407e11a6b3183fc94e5c3759eec0dc626:
100100
{inputs:
101-
- 29dad1eb7be36579544e9289e760ebcb6c33803ee766ba553fd4e2e5c90f60d8!1
101+
- 2dd0f42df10bc0dcb6662822fdd77083aca77ad571854794d579e6e213d04990!1
102102
<>
103-
- d5504c128eede4a4901eae8b66ac849c54ee23f558ce54effc479fbcbd9db583!1
103+
- 5245cee6871d5d0c6f7fa9b573691eb2d3eba54b2c3a406a3758fb4d6ec55bfa!1
104104
<>
105-
- e3d90b9da8d3fb4adbcb704cef6429664a61fa8db8eb27ead8da39e4459c95e8!1
105+
- 8201c69f1e19f0b8ec1c412f0027c6addddfcba84a306a70b99a960fa5c02553!1
106106
<>
107107
collateral inputs:
108108
outputs:
@@ -114,20 +114,20 @@ Slot 20: W76d5e12: Balancing an unbalanced transaction:
114114
data:}
115115
Requires signatures:
116116
Utxo index:
117-
( 29dad1eb7be36579544e9289e760ebcb6c33803ee766ba553fd4e2e5c90f60d8!1
117+
( 2dd0f42df10bc0dcb6662822fdd77083aca77ad571854794d579e6e213d04990!1
118118
, - Value (Map [(,Map [("",100)])]) addressed to
119119
ScriptCredential: ba3012cf93597f32eeac28e45b5757e200a2ffd8b1753359883cfe8d (no staking credential) )
120-
( d5504c128eede4a4901eae8b66ac849c54ee23f558ce54effc479fbcbd9db583!1
120+
( 5245cee6871d5d0c6f7fa9b573691eb2d3eba54b2c3a406a3758fb4d6ec55bfa!1
121121
, - Value (Map [(,Map [("",25)])]) addressed to
122122
ScriptCredential: ba3012cf93597f32eeac28e45b5757e200a2ffd8b1753359883cfe8d (no staking credential) )
123-
( e3d90b9da8d3fb4adbcb704cef6429664a61fa8db8eb27ead8da39e4459c95e8!1
123+
( 8201c69f1e19f0b8ec1c412f0027c6addddfcba84a306a70b99a960fa5c02553!1
124124
, - Value (Map [(,Map [("",100)])]) addressed to
125125
ScriptCredential: ba3012cf93597f32eeac28e45b5757e200a2ffd8b1753359883cfe8d (no staking credential) )
126126
Validity range:
127127
[ POSIXTime 1596059111000 , POSIXTime 1596059120999 ]
128-
Slot 20: W76d5e12: Finished balancing. 30944b25eba7e8f92681c3dd9a63ed3ce2bad4bfdc161d13dbe02c97162c2edd
129-
Slot 20: W76d5e12: Submitting tx: 30944b25eba7e8f92681c3dd9a63ed3ce2bad4bfdc161d13dbe02c97162c2edd
130-
Slot 20: W76d5e12: TxSubmit: 30944b25eba7e8f92681c3dd9a63ed3ce2bad4bfdc161d13dbe02c97162c2edd
128+
Slot 20: W76d5e12: Finished balancing. 4de9fbd8285bed603cf012e90c53dd2f30a58412e95d81c110e1b8f126aa24c7
129+
Slot 20: W76d5e12: Submitting tx: 4de9fbd8285bed603cf012e90c53dd2f30a58412e95d81c110e1b8f126aa24c7
130+
Slot 20: W76d5e12: TxSubmit: 4de9fbd8285bed603cf012e90c53dd2f30a58412e95d81c110e1b8f126aa24c7
131131
Slot 20: 00000000-0000-4000-8000-000000000000 {Contract instance for wallet 76d5e1291d51f16eb442267faccd0ab51a3b0c4a21eb6b8f72d5f0a4ca467189ac5f70a018c6df3f632b48fd8ead1b68f39a44de06f5a5de42a6a131af0f085d44becd56fa30041efea5ff2637205181837dffd03545d3db1c11e6dcbbd3415ce8f85aad41776b99eb62a797b8c5abbe82061e1634efc4c7d5ac6fff3ca94d7f}:
132132
Contract instance stopped (no errors)
133-
Slot 20: TxnValidate 30944b25eba7e8f92681c3dd9a63ed3ce2bad4bfdc161d13dbe02c97162c2edd
133+
Slot 20: TxnValidate 4de9fbd8285bed603cf012e90c53dd2f30a58412e95d81c110e1b8f126aa24c7

plutus-use-cases/test/Spec/renderCrowdfunding.txt

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -101,11 +101,11 @@ Balances Carried Forward:
101101
Ada: Lovelace: 100000000
102102

103103
==== Slot #1, Tx #0 ====
104-
TxId: d5504c128eede4a4901eae8b66ac849c54ee23f558ce54effc479fbcbd9db583
104+
TxId: 5245cee6871d5d0c6f7fa9b573691eb2d3eba54b2c3a406a3758fb4d6ec55bfa
105105
Fee: Ada: Lovelace: 10
106106
Mint: -
107107
Signatures PubKey: 291a5a5e8c961f9da5fb8cb616ab630a6600f4a4...
108-
Signature: 58402f8d4dbd70a13a9077e6cf79c4cdc1871bb6...
108+
Signature: 5840e2f28ab955ba60fc1647f154461b7d868bd9...
109109
Inputs:
110110
---- Input 0 ----
111111
Destination: PubKeyHash: 8ad81e8ab3623e123fc0d8052316aaef8ac9d7c0... (Wallet 36cb1d44654c33ed6b26cbe2da0848de2ebfdb20010679a06c5f609c474f349b8003380446e9159a34504f9fd19da3e93f215efa30cae9455d441be0eac8db66291a5a5e8c961f9da5fb8cb616ab630a6600f4a44acd520fa701b330849e4446d7d1711ac606ae93a2b3d457dd7f4f36b3af92dd0de82a7caf471fb5ed2b5ea3)
@@ -175,11 +175,11 @@ Balances Carried Forward:
175175
Ada: Lovelace: 25
176176

177177
==== Slot #1, Tx #1 ====
178-
TxId: 29dad1eb7be36579544e9289e760ebcb6c33803ee766ba553fd4e2e5c90f60d8
178+
TxId: 2dd0f42df10bc0dcb6662822fdd77083aca77ad571854794d579e6e213d04990
179179
Fee: Ada: Lovelace: 10
180180
Mint: -
181181
Signatures PubKey: 9e228ed6586bd2946247d66f88fac7e266a9cf37...
182-
Signature: 5840165240f160c22a2b330559235816bc2c0303...
182+
Signature: 5840137ac00185ad37b7b48097610023f119f71e...
183183
Inputs:
184184
---- Input 0 ----
185185
Destination: PubKeyHash: 6ad510fe5e2eff4f367475f01ab79dc4cd1f2600... (Wallet ce5bf0869d6720212e4dcf3ea6992cf4a9b88c39261fd9d6a635f046a17da49b6125ba6748c542e5821ec9d1e9d2f0564bc7572c1ec0e1a82cce88951dec70639e228ed6586bd2946247d66f88fac7e266a9cf37ab49ef1b9b17befd34a3db085e5af768f7297f0e1138220378a2d13c470da5a79639d8313911adeb0436d91e)
@@ -249,11 +249,11 @@ Balances Carried Forward:
249249
Ada: Lovelace: 125
250250

251251
==== Slot #1, Tx #2 ====
252-
TxId: e3d90b9da8d3fb4adbcb704cef6429664a61fa8db8eb27ead8da39e4459c95e8
252+
TxId: 8201c69f1e19f0b8ec1c412f0027c6addddfcba84a306a70b99a960fa5c02553
253253
Fee: Ada: Lovelace: 10
254254
Mint: -
255255
Signatures PubKey: 070685fdff668e697efca70098985dec1497e079...
256-
Signature: 584000fe8eceb683b54b5c5d36f05dbfd8242562...
256+
Signature: 584090f53d591c581e12d8a496283ce2dd0d5ad4...
257257
Inputs:
258258
---- Input 0 ----
259259
Destination: PubKeyHash: fabc30d46356151102cc57d427d338b8790b2244... (Wallet 2e463c80f68b7047fa67403b1911f161aa597bbdf683d9b4e3f66ef3762c1499269f4f5278db3368fe58905f4cf581642fe40ead0506e7863c5a543254d21876070685fdff668e697efca70098985dec1497e079f958296a335b47ab3d0dffa1b394f26269b9e620c07148bfe1218a076be87eec941ca20340b443575467ef04)
@@ -323,22 +323,31 @@ Balances Carried Forward:
323323
Ada: Lovelace: 225
324324

325325
==== Slot #2, Tx #0 ====
326-
TxId: 30944b25eba7e8f92681c3dd9a63ed3ce2bad4bfdc161d13dbe02c97162c2edd
326+
TxId: 4de9fbd8285bed603cf012e90c53dd2f30a58412e95d81c110e1b8f126aa24c7
327327
Fee: Ada: Lovelace: 13105
328328
Mint: -
329329
Signatures PubKey: 44becd56fa30041efea5ff2637205181837dffd0...
330-
Signature: 58401ce08475cc3ee7c77e22f2c0312299b6a279...
330+
Signature: 5840ab6d3c3d48c2ce7c9cbf61e04a7910412cbd...
331331
Inputs:
332332
---- Input 0 ----
333333
Destination: Script: ba3012cf93597f32eeac28e45b5757e200a2ffd8b1753359883cfe8d
334334
Value:
335335
Ada: Lovelace: 100
336336
Source:
337-
Tx: 29dad1eb7be36579544e9289e760ebcb6c33803ee766ba553fd4e2e5c90f60d8
337+
Tx: 2dd0f42df10bc0dcb6662822fdd77083aca77ad571854794d579e6e213d04990
338338
Output #1
339339
Script: 590d670100003323332223322323233322232333...
340340

341341
---- Input 1 ----
342+
Destination: Script: ba3012cf93597f32eeac28e45b5757e200a2ffd8b1753359883cfe8d
343+
Value:
344+
Ada: Lovelace: 25
345+
Source:
346+
Tx: 5245cee6871d5d0c6f7fa9b573691eb2d3eba54b2c3a406a3758fb4d6ec55bfa
347+
Output #1
348+
Script: 590d670100003323332223322323233322232333...
349+
350+
---- Input 2 ----
342351
Destination: PubKeyHash: a096d51da85c3eaabe2718be7b59f51291979935... (Wallet 76d5e1291d51f16eb442267faccd0ab51a3b0c4a21eb6b8f72d5f0a4ca467189ac5f70a018c6df3f632b48fd8ead1b68f39a44de06f5a5de42a6a131af0f085d44becd56fa30041efea5ff2637205181837dffd03545d3db1c11e6dcbbd3415ce8f85aad41776b99eb62a797b8c5abbe82061e1634efc4c7d5ac6fff3ca94d7f)
343352
Value:
344353
Ada: Lovelace: 100000000
@@ -347,21 +356,12 @@ Inputs:
347356
Output #2
348357

349358

350-
---- Input 2 ----
351-
Destination: Script: ba3012cf93597f32eeac28e45b5757e200a2ffd8b1753359883cfe8d
352-
Value:
353-
Ada: Lovelace: 25
354-
Source:
355-
Tx: d5504c128eede4a4901eae8b66ac849c54ee23f558ce54effc479fbcbd9db583
356-
Output #1
357-
Script: 590d670100003323332223322323233322232333...
358-
359359
---- Input 3 ----
360360
Destination: Script: ba3012cf93597f32eeac28e45b5757e200a2ffd8b1753359883cfe8d
361361
Value:
362362
Ada: Lovelace: 100
363363
Source:
364-
Tx: e3d90b9da8d3fb4adbcb704cef6429664a61fa8db8eb27ead8da39e4459c95e8
364+
Tx: 8201c69f1e19f0b8ec1c412f0027c6addddfcba84a306a70b99a960fa5c02553
365365
Output #1
366366
Script: 590d670100003323332223322323233322232333...
367367

0 commit comments

Comments
 (0)