Commit Graph

203 Commits

Author SHA1 Message Date
Kasey White afd040fda5 feat: Finish up assert feature
Better error reporing on NonFunctionalApplication Error
Refactor redundant code
Add handling of whens with one clause.
2023-01-29 05:21:55 -05:00
Kasey White fc88028034 some refactoring and adding assert on lists 2023-01-27 05:02:19 -05:00
rvcas c89802eaed chore: bump pallas version 2023-01-06 13:39:18 -05:00
alessandrokonrad 3aba9baba5 Fixed reward account creation in ScriptContext 2023-01-05 10:31:32 -05:00
Kasey White b0ea187151 better data deserialization errors and test hint
now runs even being in a sequence
2022-12-30 14:01:11 -05:00
Kasey White a08c615da4 checkpoint 2022-12-27 19:35:08 -05:00
Kasey White b7d506a8db nested lists now work 2022-12-27 19:35:08 -05:00
Kasey White 6126ee4cb4 checkpoint 2022-12-27 19:35:08 -05:00
alessandrokonrad b97570bc00 Fixed clippy issue 2022-12-27 17:08:05 -05:00
alessandrokonrad c6b5380c27 Fixed ex unit budget limit per redeemer 2022-12-27 17:08:05 -05:00
rvcas b3266fb837 chore: clippy warnings 2022-12-20 16:32:31 -05:00
KtorZ 529b3e87ff Rename builtin as 'verify_ed25519_signature'
It's best to keep builtin as-close-as possible to their standard name
  because they're hard to document. We can then leverage the prelude and
  the standard lib for convenient names.
2022-12-19 00:41:27 -05:00
Kasey White e6c59dca2c cleanup if then else a bit 2022-12-19 00:41:27 -05:00
jmhrpr 775e90d782 chore: remove unnecessary Option wrapper on type 2022-12-15 18:22:31 -05:00
jmhrpr 325a7b7b45 fix: correct V1 to_plutus_data() for txout with no datum hash 2022-12-15 18:22:31 -05:00
rvcas 141a9aef30
feat: impl Sub for ExBudget 2022-12-08 19:24:20 -05:00
rvcas f250d3df84
feat: eval should take initial budget 2022-12-08 19:24:20 -05:00
Kasey White 2f7131e9b8 feat: add tuples and streamline conversion of types to and from data 2022-12-07 08:40:23 -05:00
Kasey White 29a30aa61f feat: finished when constr is for IR and code gen 2022-12-05 14:18:44 -05:00
rvcas 86ea41adc3 feat: start when expressions 2022-12-05 14:18:44 -05:00
Kasey White 8b24a66b7e add field access and list patterns are finished
Co-authored-by: rvcas <x@rvcas.dev>
2022-12-05 14:18:44 -05:00
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