KtorZ
375499930a
Add UPLC support for 'ProtoList' & 'ProtoPair' constants
...
Supersedes #35 .
The syntax for these elements isn't "set in stone"; in the sense that it is unspecified in [input-output-hk/plutus](https://github.com/input-output-hk/plutus ). There's no visible plan from IOG to extend the Haskell parser to support this syntax, though there are samples of imagined syntax in the code. Thus, we can lead the way and simply choose a suitable syntax and let the Haskell implementation align to it later.
This syntax is thus inspired from input-output-hk/plutus' samples, with only a small change: we use `<` and `>` for encapsulating type declaration instead of `(`, `)`. There are already enough parentheses in the UPLC syntax, adding more reduces visibility.
Doing this, I've also added a lot more test cases for the UPLC parser. There could be more, but this is a good start.
Here are some example programs (taken from test cases) utilizing this syntax:
```
(program 0.0.0 (con list<bytestring> [#00 , #01 ]))
```
```
(program 0.0.0
(con pair
<integer, integer>
[14, 42]
)
)
```
```
(program 0.0.0
(con pair<string, list<integer>> ["foo", [14, 42]])
)
```
_(Note that this was mainly done as an exercise to get more familiar with Rust and parts of Aiken.)_
2022-12-03 10:16:16 -05:00
eyelash
6066e3176c
move `to_string()` outside of the match
2022-11-28 17:30:45 -05:00
rvcas
d5087dbcc7
fix: it's more consistent to have snakecase builtins
2022-11-24 18:36:22 -05:00
rvcas
01e91b9fe5
chore: deal with clippy warnings
2022-11-10 01:27:18 -05:00
Kasey White
6c6aefd1c4
get basic when conditions to work
2022-11-08 22:21:07 -05:00
rvcas
d8f3ada13e
chore: add default for Interner
2022-11-08 22:21:07 -05:00
Kasey White
ffa78e4c30
work out some initial direction for code gen
2022-11-08 22:21:07 -05:00
alessandrokonrad
af7ca87ffc
Fixed more clippy issues
2022-11-04 18:21:22 +01:00
alessandrokonrad
9a2c6753cd
Fixed clippy issues
2022-11-04 18:13:46 +01:00
alessandrokonrad
d1141f306a
Sorted all relevant structures in ScriptContext
2022-11-04 17:58:23 +01:00
Kasey White
887f5eeee9
sorts inputs for sc
2022-11-03 05:04:21 -04:00
Turner
aabcacbe87
Expose Pallas stuff, bump version, update changelog
2022-10-27 20:40:37 -07:00
rvcas
819256df99
feat: wrap up adding uplc builtins for now
2022-10-25 18:52:27 -04:00
Kasey White
c89690aa77
Create unknown constructor error for decode
2022-10-23 17:54:21 -04:00
Kasey White
360a5b6017
preceding bytes output changes if you error before position 5
2022-10-23 17:54:21 -04:00
Kasey White
15cfb22c8f
more detailed parse errors when decoding with flat
2022-10-23 17:54:21 -04:00
alessandrokonrad
4ef654b660
fixed clippy issue
2022-10-22 18:01:36 -04:00
alessandrokonrad
c6de827721
added apply_params_to_script function
2022-10-22 18:01:36 -04:00
alessandrokonrad
e6f3c40429
changed i64 -> i128
2022-10-19 17:04:43 -04:00
alessandrokonrad
a83c731eb1
fixed err description
2022-10-17 08:35:45 -04:00
alessandrokonrad
ad542a68e8
removed unnecessary return statement
2022-10-17 08:35:45 -04:00
alessandrokonrad
0856f6ccf2
added checked operators to some DefaultFunction
2022-10-17 08:35:45 -04:00
alessandrokonrad
cfc1f92646
leave as i128
2022-10-17 08:35:45 -04:00
alessandrokonrad
a14dae5863
changed slot_length to u32
2022-10-17 08:35:45 -04:00
alessandrokonrad
28b9fed8e5
added i128 integer support
2022-10-17 08:35:45 -04:00
alessandrokonrad
f3b9d33f32
added deserialisation error to machine
2022-09-27 09:13:00 -04:00
alessandrokonrad
3256bfbc32
Wrapped errors in redeemer error
2022-09-26 16:33:52 -04:00
alessandrokonrad
5ec991d83a
fixed error handling in eval raw
2022-09-26 03:24:31 -04:00
rvcas
08596588a7
feat: output total budget spent from cli
2022-09-24 20:23:51 -04:00
rvcas
4166e27fd7
chore: v1 comments
2022-09-24 19:52:40 -04:00
rvcas
8620332b75
feat: move input from json to helper method
2022-09-24 19:40:07 -04:00
Kasey White
3cb24a1d00
update test mem and cpu assertions for eval tx tests
2022-09-24 18:19:18 -04:00
alessandrokonrad
aa111f0a65
fixed slot
2022-09-25 00:01:01 +02:00
alessandrokonrad
35d09c642b
fixed time conversion
2022-09-24 23:59:58 +02:00
alessandrokonrad
fb0af3cfcf
fixed bugs
2022-09-24 17:47:07 -04:00
alessandrokonrad
3eb4fb7523
fixed bugs
2022-09-24 23:09:55 +02:00
Kasey White
ca2d8f0a1f
ada policy is now empty and mintValue includes 0 ada
2022-09-24 15:47:51 -04:00
alessandrokonrad
99a27f6a3d
new tests
2022-09-24 00:43:46 +02:00
Kasey White
3bb5826b91
change how mint gets converted to plutus data
2022-09-23 18:34:24 -04:00
Kasey White
c45643bb01
empty bytestring should return 0 not 1
2022-09-23 04:09:28 -04:00
Kasey White
9b6d4e20c7
check exunits for eval tests
2022-09-22 03:13:30 -04:00
rvcas
2572ed6bbd
fix: remove BadTerm
2022-09-19 16:40:08 -04:00
alessandrokonrad
169fa05572
added ex units from haskell plc
2022-09-19 22:32:56 +02:00
alessandrokonrad
3e10fcbfbb
changed example 4 to check 'False'
2022-09-19 22:15:31 +02:00
rvcas
caa88dab12
fix: valid condition for a script
2022-09-19 16:00:25 -04:00
Kasey White
6ccd0aa2fb
adding better debug for wrong term tag in uplc
2022-09-19 14:59:55 -04:00
alessandrokonrad
21d71e94b3
added more tests
2022-09-19 18:19:56 +02:00
alessandrokonrad
f12540d8e2
fixed missing script test
2022-09-19 17:17:15 +02:00
rvcas
0ba8787b97
chore: clippy
2022-09-19 11:11:52 -04:00
rvcas
f10e3836ad
feat: new error for bad term
2022-09-19 11:04:21 -04:00