Skip to content

Commit 43f6de2

Browse files
committed
updating cheatsheet
1 parent 9daeb5e commit 43f6de2

File tree

1 file changed

+35
-17
lines changed

1 file changed

+35
-17
lines changed

doc/CHEATSHEET.md

+35-17
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
initDist :: InitialDistribution
3535
initDist = InitialDistribution
3636
[ paysPK (wallet 3) (ada 6)
37-
, paysScript fooTypedValidator FooTypedDatum (ada 6)
37+
, paysScript fooTypedValidator FooTypedDatum (ada 6)
3838
, paysPK (wallet 2) (ada 2) `withDatum` fooDatum
3939
, paysPK (wallet 1) (ada 2) `withReferenceScript` fooValidator
4040
]
@@ -118,9 +118,7 @@ foo = do
118118
validateTxSkel $
119119
txSkelTemplate
120120
{ txSkelIns = ...,
121-
txSkelOuts = ...,
122-
txSkelMints = ...,
123-
txSkelSigners = ...
121+
...
124122
}
125123
...
126124
```
@@ -133,12 +131,22 @@ foo = do
133131
validateTxSkel' $
134132
txSkelTemplate
135133
{ txSkelIns = ...,
136-
txSkelOuts = ...,
137-
txSkelMints = ...,
138-
txSkelSigners = ...
134+
...
139135
}
140136
...
141137
```
138+
* ... ignore any returned value
139+
```haskell
140+
foo :: MonadBlockChain m => m ()
141+
foo = do
142+
...
143+
validateTxSkel_ $
144+
txSkelTemplate
145+
{ txSkelIns = ...,
146+
...
147+
}
148+
...
149+
```
142150

143151
### Use wallets
144152

@@ -171,19 +179,29 @@ txSkelTemplate
171179

172180
### Spend some UTxOs
173181

174-
* No redeemer: `txSkelEmptyRedeemer`
175-
* With a given redeemer: `txSkelSomeRedeemer`
176-
* A redeemer and a reference script: `txSkelSomeRedeemerAndReferenceScript`
177-
* No redeemer but a reference script: `txSkelEmptyRedeemerAndReferenceScript`
182+
* No redeemer: `emptyTxSkelRedeemer`
183+
* With a given redeemer: `someTxSkelRedeemer myRedeemer`
184+
* Attach a reference input (with a reference script): `redeemer \`withReferenceInput\` txOutRef`
178185

179186
```haskell
180187
txSkelTemplate
181188
{ ...
182-
txSkelIns = Map.fromList [(txOutRef1, myRedeemer1), (txOutRef2, myRedeemer2]
189+
txSkelIns = Map.fromList [(txOutRef1, myRedeemer1), (txOutRef2, myRedeemer2 `withReferenceInput` txOutRef)]
190+
...
191+
}
192+
```
193+
194+
* Allow automatic attachment of reference scripts:
195+
```
196+
txSkelTemplate
197+
{ ...
198+
txSkelIns = Map.fromList [(txOutRef1, myRedeemer1), (txOutRef2, myRedeemer2)],
199+
txSkelOpts = def { txOptAutoReferenceScript = True },
183200
...
184201
}
185202
```
186203

204+
187205
### Return `TxOutRef`s from transaction outputs from...
188206

189207
* ... the Cardano transaction
@@ -194,7 +212,7 @@ txSkelTemplate
194212
let (txOutRef1, _) : (txOutRef2, _) : _ = utxosFromCardanoTx cTx
195213
return (txOutRef1, txOutRef2)
196214
```
197-
* ... the returns `TxOutRef`s
215+
* ... the returned `TxOutRef`s
198216
```haskell
199217
endpointFoo :: MonadBlockChain m => m (Api.TxOutRef, Api.TxOutRef)
200218
endpointFoo = do
@@ -225,10 +243,10 @@ foo txOutRef = do
225243
* Mint tokens: positive amount
226244
* Burn tokens: negative amount
227245

228-
* No redeemer: `(Script.Versioned fooPolicy Script.PlutusV3, txSkelEmptyRedeemer, "fooName", 3)`
229-
* With redeemer: `(Script.Versioned barPolicy Script.PlutusV3, txSkelSomeRedeemer typedRedeemer, "barName", -3)`
230-
* With a redeemer and reference script: `(Script.Versioned barPolicy Script.PlutusV3, txSkelSomeRedeemerAndReferenceScript txOutRef typedRedeemer, "barName", 12)`
231-
* With no redeemer but a reference scrip: `(Script.Versioned barPolicy Script.PlutusV3, txSkelEmptyRedeemerAndReferenceScript txOutRef, "fooName", -6)`
246+
* No redeemer: `(Script.Versioned fooPolicy Script.PlutusV3, emptyTxSkelRedeemer, "fooName", 3)`
247+
* With redeemer: `(Script.Versioned barPolicy Script.PlutusV3, someTxSkelRedeemer typedRedeemer, "barName", -3)`
248+
* With a redeemer and explicit reference script: `(Script.Versioned barPolicy Script.PlutusV3, someTxSkelRedeemer typedRedeemer \`withReferenceInput\`, "barName", 12)`
249+
* With a redeemer and implicit reference script: `(Script.Versioned barPolicy Script.PlutusV3, someTxSkelRedeemer typedRedeemer, "fooName", -6)`, and turn on option `txOptAutoReferenceScript`
232250

233251
```haskell
234252
txSkelTemplate

0 commit comments

Comments
 (0)