Skip to content

Commit b99c927

Browse files
committed
some changes and offchain code for lecture 5
1 parent e3d0105 commit b99c927

15 files changed

+256
-40
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@ code/Week02/assets/*.tx*
44
code/Week03/lucid/node_modules/
55
code/Week03/lucid/dist/
66
code/Week03/lucid-ref-script/node_modules/
7-
code/Week03/lucid-ref-script/dist/
7+
code/Week03/lucid-ref-script/dist/
8+
code/Week05/lecture/secret.ts

.vscode/settings.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"deno.enable": true,
3+
"deno.unstable": true
4+
}

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ This documentation looks better in GitBook at the following link: <https://iog-a
4646
* [Off-chain Code with Lucid](https://youtu.be/BXz5V2rjbiE)
4747
* [Homework](https://youtu.be/2Qm2xgmtbk4)
4848

49+
### [Lecture 5](https://www.youtube.com/playlist?list=PLNEK_Ejlx3x2T1lIR4XnDILKukj3rPapi)
50+
* [Introduction](https://youtu.be/HgXYsMFqnb4)
51+
* [Values](https://youtu.be/ThYByMLC0EI)
4952

5053
## Repository Structure
5154

code/Utilities/src/Utilities/Serialise.hs

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
module Utilities.Serialise
44
( validatorToScript
55
, policyToScript
6+
, codeToScript
7+
, writeCodeToFile
68
, writeValidatorToFile
79
, writePolicyToFile
810
, dataToJSON
@@ -15,19 +17,24 @@ import Cardano.Api (Error (displayError), PlutusScript,
1517
writeFileJSON, writeFileTextEnvelope)
1618
import Cardano.Api.Shelley (PlutusScript (..), fromPlutusData,
1719
scriptDataToJsonDetailedSchema)
18-
import Codec.Serialise (serialise, Serialise)
20+
import Codec.Serialise (Serialise, serialise)
1921
import Data.Aeson (Value)
2022
import qualified Data.ByteString.Char8 as BS8
2123
import qualified Data.ByteString.Lazy as BSL
2224
import qualified Data.ByteString.Short as BSS
2325
import Plutus.V1.Ledger.Api (ToData)
2426
import qualified Plutus.V2.Ledger.Api as PlutusV2
27+
import PlutusTx (CompiledCode)
2528
import Text.Printf (printf)
2629

2730

2831
serializableToScript :: Serialise a => a -> PlutusScript PlutusScriptV2
2932
serializableToScript = PlutusScriptSerialised . BSS.toShort . BSL.toStrict . serialise
3033

34+
-- Serialize compiled code
35+
codeToScript :: CompiledCode a -> PlutusScript PlutusScriptV2
36+
codeToScript = serializableToScript . PlutusV2.fromCompiledCode
37+
3138
-- Serialize validator
3239
validatorToScript :: PlutusV2.Validator -> PlutusScript PlutusScriptV2
3340
validatorToScript = serializableToScript
@@ -36,19 +43,24 @@ validatorToScript = serializableToScript
3643
policyToScript :: PlutusV2.MintingPolicy -> PlutusScript PlutusScriptV2
3744
policyToScript = serializableToScript
3845

46+
-- Create file with Plutus script
47+
writeScriptToFile :: FilePath -> PlutusScript PlutusScriptV2 -> IO ()
48+
writeScriptToFile filePath script =
49+
writeFileTextEnvelope filePath Nothing script >>= \case
50+
Left err -> print $ displayError err
51+
Right () -> putStrLn $ "Serialized script to: " ++ filePath
52+
53+
-- Create file with compiled code
54+
writeCodeToFile :: FilePath -> CompiledCode a -> IO ()
55+
writeCodeToFile filePath = writeScriptToFile filePath . codeToScript
56+
3957
-- Create file with compiled Plutus validator
4058
writeValidatorToFile :: FilePath -> PlutusV2.Validator -> IO ()
41-
writeValidatorToFile filePath validator =
42-
writeFileTextEnvelope filePath Nothing (validatorToScript validator) >>= \case
43-
Left err -> print $ displayError err
44-
Right () -> putStrLn $ "Compiled Plutus script at: " ++ filePath
59+
writeValidatorToFile filePath = writeScriptToFile filePath . validatorToScript
4560

4661
-- Create file with compiled Plutus minting policy
4762
writePolicyToFile :: FilePath -> PlutusV2.MintingPolicy -> IO ()
48-
writePolicyToFile filePath policy =
49-
writeFileTextEnvelope filePath Nothing (policyToScript policy) >>= \case
50-
Left err -> print $ displayError err
51-
Right () -> putStrLn $ "Compiled Plutus script at: " ++ filePath
63+
writePolicyToFile filePath = writeScriptToFile filePath . policyToScript
5264

5365
dataToJSON :: ToData a => a -> Value
5466
dataToJSON = scriptDataToJsonDetailedSchema . fromPlutusData . PlutusV2.toData

code/Week05/assets/free.plutus

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"type": "PlutusScriptV2",
33
"description": "",
4-
"cborHex": "59078259077f010000323232323232323232323232323233223232323232223232533532320193333573466e1cd55cea801a4000466442466002006004646464646464646464646464646666ae68cdc39aab9d500c480008cccccccccccc88888888888848cccccccccccc00403403002c02802402001c01801401000c008cd4054058d5d0a80619a80a80b1aba1500b33501501735742a014666aa032eb94060d5d0a804999aa80cbae501835742a01066a02a0406ae85401cccd54064085d69aba150063232323333573466e1cd55cea801240004664424660020060046464646666ae68cdc39aab9d5002480008cc8848cc00400c008cd40add69aba15002302c357426ae8940088c98c80b8cd5ce01801701609aab9e5001137540026ae854008c8c8c8cccd5cd19b8735573aa004900011991091980080180119a815bad35742a00460586ae84d5d1280111931901719ab9c03002e02c135573ca00226ea8004d5d09aba2500223263202a33573805805405026aae7940044dd50009aba1500533501575c6ae854010ccd540640748004d5d0a801999aa80cbae200135742a004603e6ae84d5d1280111931901319ab9c028026024135744a00226ae8940044d5d1280089aba25001135744a00226ae8940044d5d1280089aba25001135744a00226ae8940044d55cf280089baa00135742a006601e6ae84d5d1280191931900c19ab9c01a0180163333573466e1cd55ce9baa00448000805c8c98c805ccd5ce00c80b80a880b09931900b19ab9c4910350543500016135573ca00226ea800448c88c008dd6000990009aa80a911999aab9f0012500a233500930043574200460066ae880080508c8c8cccd5cd19b8735573aa004900011991091980080180118061aba150023005357426ae8940088c98c8050cd5ce00b00a00909aab9e5001137540024646464646666ae68cdc39aab9d5004480008cccc888848cccc00401401000c008c8c8c8cccd5cd19b8735573aa0049000119910919800801801180a9aba1500233500f014357426ae8940088c98c8064cd5ce00d80c80b89aab9e5001137540026ae854010ccd54021d728039aba150033232323333573466e1d4005200423212223002004357426aae79400c8cccd5cd19b875002480088c84888c004010dd71aba135573ca00846666ae68cdc3a801a400042444006464c6403666ae7007406c06406005c4d55cea80089baa00135742a00466a016eb8d5d09aba2500223263201533573802e02a02626ae8940044d5d1280089aab9e500113754002266aa002eb9d6889119118011bab00132001355012223233335573e0044a010466a00e66442466002006004600c6aae754008c014d55cf280118021aba200301213574200222440042442446600200800624464646666ae68cdc3a800a40004642446004006600a6ae84d55cf280191999ab9a3370ea0049001109100091931900819ab9c01201000e00d135573aa00226ea80048c8c8cccd5cd19b875001480188c848888c010014c01cd5d09aab9e500323333573466e1d400920042321222230020053009357426aae7940108cccd5cd19b875003480088c848888c004014c01cd5d09aab9e500523333573466e1d40112000232122223003005375c6ae84d55cf280311931900819ab9c01201000e00d00c00b135573aa00226ea80048c8c8cccd5cd19b8735573aa004900011991091980080180118029aba15002375a6ae84d5d1280111931900619ab9c00e00c00a135573ca00226ea80048c8cccd5cd19b8735573aa002900011bae357426aae7940088c98c8028cd5ce00600500409baa001232323232323333573466e1d4005200c21222222200323333573466e1d4009200a21222222200423333573466e1d400d2008233221222222233001009008375c6ae854014dd69aba135744a00a46666ae68cdc3a8022400c4664424444444660040120106eb8d5d0a8039bae357426ae89401c8cccd5cd19b875005480108cc8848888888cc018024020c030d5d0a8049bae357426ae8940248cccd5cd19b875006480088c848888888c01c020c034d5d09aab9e500b23333573466e1d401d2000232122222223005008300e357426aae7940308c98c804ccd5ce00a80980880800780700680600589aab9d5004135573ca00626aae7940084d55cf280089baa0012323232323333573466e1d400520022333222122333001005004003375a6ae854010dd69aba15003375a6ae84d5d1280191999ab9a3370ea0049000119091180100198041aba135573ca00c464c6401866ae700380300280244d55cea80189aba25001135573ca00226ea80048c8c8cccd5cd19b875001480088c8488c00400cdd71aba135573ca00646666ae68cdc3a8012400046424460040066eb8d5d09aab9e500423263200933573801601200e00c26aae7540044dd500089119191999ab9a3370ea00290021091100091999ab9a3370ea00490011190911180180218031aba135573ca00846666ae68cdc3a801a400042444004464c6401466ae7003002802001c0184d55cea80089baa0012323333573466e1d40052002200623333573466e1d40092000212200123263200633573801000c00800626aae74dd5000a4c2400224400492010350543100112323001001223300330020020011"
4+
"cborHex": "5830582e010000323222320053333573466e1cd55ce9baa0024800080148c98c8014cd5ce249035054310000500349848005"
55
}

code/Week05/assets/nft-55387196222ded4fe8ccc8f8bc91a33517b6525dd7aeabd3710bfb4149fb395d#1-5050502d4e4654.plutus

Lines changed: 0 additions & 5 deletions
This file was deleted.

code/Week05/assets/nft.plutus

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"type": "PlutusScriptV2",
3+
"description": "",
4+
"cborHex": "590904590901010000323322332232323232323232323232323232323232323232323222222323253353232325335533533355300b1200132321233001223335005220020020010023500122001123300122533500210241001021232325335333573466e3cd400888008d40048800809008c4ccd5cd19b8735002220013500122001024023102333016375c0186eb402cd400488008d5400488888888888803040844cd5ce249115554784f206e6f7420636f6e73756d656400020153355335323301f5024001355001222222222222008102022135002222533500415335333573466e3c008dd70068130128999ab9a3370e002900101301288129108138810899ab9c49011377726f6e6720616d6f756e74206d696e746564000201020135001220023333573466e1cd55cea801a4000466442466002006004646464646464646464646464646666ae68cdc39aab9d500c480008cccccccccccc88888888888848cccccccccccc00403403002c02802402001c01801401000c008cd4064068d5d0a80619a80c80d1aba1500b33501901b35742a014666aa03aeb94070d5d0a804999aa80ebae501c35742a01066a0320466ae85401cccd54074091d69aba150063232323333573466e1cd55cea801240004664424660020060046464646666ae68cdc39aab9d5002480008cc8848cc00400c008cd40b9d69aba15002302f357426ae8940088c98c80c4cd5ce01901881789aab9e5001137540026ae854008c8c8c8cccd5cd19b8735573aa004900011991091980080180119a8173ad35742a004605e6ae84d5d1280111931901899ab9c03203102f135573ca00226ea8004d5d09aba2500223263202d33573805c05a05626aae7940044dd50009aba1500533501975c6ae854010ccd5407407c8004d5d0a801999aa80ebae200135742a00460446ae84d5d1280111931901499ab9c02a029027135744a00226ae8940044d5d1280089aba25001135744a00226ae8940044d5d1280089aba25001135744a00226ae8940044d55cf280089baa00135742a00660226ae84d5d1280191931900d99ab9c01c01b0193333573466e1cd55ce9baa0044800080688c98c8068cd5ce00d80d00c080c89931900c99ab9c49010350543500019135573ca00226ea8004c8004d5406488448894cd40044d400c88004884ccd401488008c010008ccd54c01c4800401401000448c88c008dd6000990009aa80c911999aab9f0012501b233501a30043574200460066ae8800804c8c8c8cccd5cd19b8735573aa004900011991091980080180118051aba150023005357426ae8940088c98c804ccd5ce00a00980889aab9e5001137540024646464646666ae68cdc39aab9d5004480008cccc888848cccc00401401000c008c8c8c8cccd5cd19b8735573aa0049000119910919800801801180a1aba1500233500d013357426ae8940088c98c8060cd5ce00c80c00b09aab9e5001137540026ae854010ccd54021d728039aba150033232323333573466e1d4005200423212223002004357426aae79400c8cccd5cd19b875002480088c84888c004010dd71aba135573ca00846666ae68cdc3a801a400042444006464c6403466ae7006c06806005c0584d55cea80089baa00135742a00466a012eb8d5d09aba2500223263201433573802a02802426ae8940044d5d1280089aab9e500113754002266aa002eb9d6889119118011bab00132001355016223233335573e0044a032466a03066442466002006004600c6aae754008c014d55cf280118021aba200301113574200224464646666ae68cdc3a800a40004642446004006600a6ae84d55cf280191999ab9a3370ea0049001109100091931900899ab9c01201100f00e135573aa00226ea80048c8c8cccd5cd19b875001480188c848888c010014c020d5d09aab9e500323333573466e1d40092004232122223002005300a357426aae7940108cccd5cd19b875003480088c848888c004014c01cd5d09aab9e500523333573466e1d40112000232122223003005375c6ae84d55cf280311931900899ab9c01201100f00e00d00c135573aa00226ea80048c8c8cccd5cd19b8735573aa004900011980298031aba15002375a6ae84d5d1280111931900699ab9c00e00d00b135573ca00226ea80048848cc00400c0088c8cccd5cd19b8735573aa002900011bae357426aae7940088c98c8028cd5ce00580500409baa001232323232323333573466e1d4005200c21222222200323333573466e1d4009200a21222222200423333573466e1d400d2008233221222222233001009008375c6ae854014dd69aba135744a00a46666ae68cdc3a8022400c4664424444444660040120106eb8d5d0a8039bae357426ae89401c8cccd5cd19b875005480108cc8848888888cc018024020c030d5d0a8049bae357426ae8940248cccd5cd19b875006480088c848888888c01c020c034d5d09aab9e500b23333573466e1d401d2000232122222223005008300e357426aae7940308c98c804ccd5ce00a00980880800780700680600589aab9d5004135573ca00626aae7940084d55cf280089baa0012323232323333573466e1d400520022333222122333001005004003375a6ae854010dd69aba15003375a6ae84d5d1280191999ab9a3370ea0049000119091180100198041aba135573ca00c464c6401866ae700340300280244d55cea80189aba25001135573ca00226ea80048c8c8cccd5cd19b875001480088c8488c00400cdd71aba135573ca00646666ae68cdc3a8012400046424460040066eb8d5d09aab9e500423263200933573801401200e00c26aae7540044dd500089119191999ab9a3370ea00290021091100091999ab9a3370ea00490011190911180180218031aba135573ca00846666ae68cdc3a801a400042444004464c6401466ae7002c02802001c0184d55cea80089baa0012323333573466e1d40052002200a23333573466e1d40092000200a23263200633573800e00c00800626aae74dd5000a4c24002921035054310032001355006222533500110022213500222330073330080020060010033200135500522225335001100222135002225335333573466e1c005200000a0091333008007006003133300800733500b12333001008003002006003122002122001112200212212233001004003112323001001223300330020020011"
5+
}

0 commit comments

Comments
 (0)