Commit Graph

1175 Commits

Author SHA1 Message Date
rvcas 34c8a58391 feat: complete language tour 2022-11-30 15:35:55 -05:00
rvcas 0823b78bf8 feat: some new features
- tuples `#(Int, Int)`
- `trace` and `trace("text")`
2022-11-28 22:33:53 -05:00
eyelash 6066e3176c move `to_string()` outside of the match 2022-11-28 17:30:45 -05:00
vh-zuka 269cf8c13f fix: update aiken new 2022-11-26 10:30:41 -05:00
rvcas d5087dbcc7 fix: it's more consistent to have snakecase builtins 2022-11-24 18:36:22 -05:00
rvcas 67d160230b feat: new build command flag
- `uplc` to optionally dump raw uplc
2022-11-24 18:17:03 -05:00
Kasey White 1c3511b073 insert def should run after all sequences have run 2022-11-24 17:51:49 -05:00
Kasey White 6babebde28 feat: support self recursion functions and fix making constrs 2022-11-24 15:19:32 -05:00
rvcas 09e77e1918 feat: display named source 2022-11-24 11:38:43 -05:00
rvcas ba8855add9 fix: implicit discard in list patterns 2022-11-24 10:06:54 -05:00
rvcas 27e0286d01 fix: most places should allow trailing comma 2022-11-23 21:09:06 -05:00
rvcas c07b9a1a81 feat: allow assignments to be cast to other types 2022-11-23 21:09:06 -05:00
rvcas 34d7a28351 feat: add check keyword and new assignment syntax 2022-11-23 21:09:06 -05:00
Kasey White 6687b9fe4c add forces to pair usage and fix clippy 2022-11-23 17:57:02 -05:00
Kasey White dc510b1c7a feat: finish list deconstruct 2022-11-23 17:57:02 -05:00
Kasey White e6f6d8a42d small edge case to fix and some ordering to go 2022-11-23 17:57:02 -05:00
rvcas 1de2640a48 feat: list patterns 2022-11-23 17:57:02 -05:00
Kasey White f09a3bd121 feat:list construction, no pairs yet 2022-11-23 17:57:02 -05:00
rvcas 0358952984
Release 0.0.26
aiken@0.0.26
aiken-lang@0.0.26
aiken-lsp@0.0.26
aiken-project@0.0.26

Generated by cargo-workspaces
2022-11-23 00:31:24 -05:00
Kasey White 74712711c4 include when deconstructor discard 2022-11-20 15:42:12 -05:00
Kasey White d4f3eafc22 refactor away from tuples 2022-11-20 15:42:12 -05:00
jacfra 0069c1f68a correct typo 2022-11-19 15:35:07 -05:00
rvcas 89153a4d82 allow single var patterns to double as a label in records 2022-11-17 12:56:03 -05:00
rvcas d94ae82901
fix: none does not need a type variable 2022-11-16 21:41:03 -05:00
alessandrokonrad 6c5ec9bb25 Extended ScriptContext; added Option to builtins 2022-11-16 21:34:46 -05:00
rvcas 72bf27d467
fix: better constructor pattern parsing 2022-11-16 21:30:43 -05:00
rvcas ef9fd15e12
chore: remove loose println! 2022-11-16 14:49:06 -05:00
rvcas 132af027dc feat(aiken-lang): add doc, module, and regular comment support 2022-11-16 14:28:02 -05:00
rvcas f7313ee61a feat: some parsing for comments 2022-11-16 14:28:02 -05:00
rvcas 00e5f99304 feat: pull comment tokens out of the Iter before parsing 2022-11-16 14:28:02 -05:00
Kasey White f10c78d800 feat: when statements with field access now work 2022-11-16 13:11:24 -05:00
Kasey White 8d1e73bbea checkpoint 2022-11-16 13:11:24 -05:00
rvcas 742a5ea19b feat: handle didSave notification 2022-11-15 17:44:50 -05:00
rvcas bff99b0cf2 feat: publish errors as lsp diagnostic messages 2022-11-15 17:44:50 -05:00
rvcas f089eff97d
Release 0.0.25
aiken@0.0.25
aiken-lang@0.0.25
aiken-lsp@0.0.25
aiken-project@0.0.25
uplc@0.0.25

Generated by cargo-workspaces
2022-11-14 18:04:19 -05:00
rvcas 3f952cdf0e feat: add new Data type to prelude and allow it to unify with any user defined type 2022-11-14 15:09:56 -05:00
rvcas 123e729137 fix: when formatting we need to use the in memory edited version 2022-11-14 14:20:41 -05:00
vh-zuka 2736df5466 Validate project name on aiken new 2022-11-14 14:15:02 -05:00
Kasey White 2cac7963c3 feat: add complex function composability. Minor scope changes 2022-11-14 14:13:21 -05:00
Kasey White 491c13f3aa chore: name_field_label should return actual constant for bytearray and int 2022-11-14 14:13:21 -05:00
Kasey White aa0f258ea2 add pipelines functionality 2022-11-14 14:13:21 -05:00
Kasey White d11b8858ba clean up some unused parts in created hashmaps 2022-11-12 20:57:44 -05:00
Kasey White b450c41438 finish up binops for code gen 2022-11-12 20:57:44 -05:00
Kasey White a73fc345fe clippy fix 2022-11-11 20:24:21 -05:00
Kasey White d0463b3218 missing into on a term 2022-11-11 20:24:21 -05:00
Kasey White c36fa8cee5 fix issue with scope for data creation and wrap program with ifthenelse 2022-11-11 20:24:21 -05:00
Kasey White a3935c5df7 almost done data constr creation 2022-11-11 20:24:21 -05:00
rvcas 4a95fc5588 chore: fix parser tests 2022-11-10 17:41:39 -05:00
KtorZ 2e5406afa3 Rename 'scripts' as 'validators' across the codebase. 2022-11-10 17:41:39 -05:00
rvcas c9da049712 feat: rework how modules are loaded 2022-11-10 17:41:39 -05:00
KtorZ 7b5763edeb Respond to 'notification' requests from language-client 2022-11-10 17:41:39 -05:00
vh-zuka bdf91d287b Add a few more files 2022-11-10 01:45:32 -05:00
vh-zuka 9d6f9fd013 Use indoc for better raw text 2022-11-10 01:45:32 -05:00
vh-zuka 3faed5c980 Add new project template 2022-11-10 01:45:32 -05:00
rvcas 01e91b9fe5 chore: deal with clippy warnings 2022-11-10 01:27:18 -05:00
rvcas e90a210537 feat: add a basic lsp 2022-11-10 01:27:18 -05:00
rvcas c4f2a1ffec fix: weird test error after rebase 2022-11-08 22:21:07 -05:00
rvcas 7e0767ef74 feat: output build assets 2022-11-08 22:21:07 -05:00
rvcas 4db0c93061 chore: clean up warnings 2022-11-08 22:21:07 -05:00
rvcas 3787cce275 chore: fix some stuff after rebase 2022-11-08 22:21:07 -05:00
Kasey White 6c6aefd1c4 get basic when conditions to work 2022-11-08 22:21:07 -05:00
Kasey White 6950b66b55 checkpoint commit 2022-11-08 22:21:07 -05:00
Kasey White 28697586f2 remove some warnings and start on when 2022-11-08 22:21:07 -05:00
Kasey White 805bf19081 Got nested field access working efficiently. Will clean up code soon. 2022-11-08 22:21:07 -05:00
Kasey White e3fa9ac105 checkpoint commit 2022-11-08 22:21:07 -05:00
Kasey White 9864a3fe31 figured out the recursion based uplc terms to get item from a list 2022-11-08 22:21:07 -05:00
Kasey White ad4a5e927d starting on field access in aiken 2022-11-08 22:21:07 -05:00
Kasey White 3cafb2bcbe checkpoint commit 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 6162128427 add string comparison and int comparison 2022-11-08 22:21:07 -05:00
Kasey White 8a99b8c071 Remove println 2022-11-08 22:21:07 -05:00
Kasey White 6d720f6265 implement scope level in a consistent way. 2022-11-08 22:21:07 -05:00
Kasey White f6a72cc7f9 did hacky way for scope level, but now i know how it works and how to fix 2022-11-08 22:21:07 -05:00
Kasey White f7276df355 checkpoint commit 2022-11-08 22:21:07 -05:00
rvcas 483aa0784e chore: clean up some errors after rebase and rename project to aiken_project 2022-11-08 22:21:07 -05:00
Kasey White a993bea2a2 try code gen for assignment 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
rvcas 51302f1730 feat: error if validators have wrong arity 2022-11-08 22:21:07 -05:00
rvcas 4130e0f2c3 feat: validate if scripts return Bool 2022-11-08 22:21:07 -05:00
rvcas d830060683
fix: tests 2022-11-05 18:27:02 -04:00
rvcas 3a653b6624
chore: all dead code till we sort out doc comments 2022-11-05 18:20:23 -04:00
rvcas 7092673c45
feat: if expression formatting 2022-11-05 17:53:11 -04:00
rvcas 809d5ea5c5
fix: record formatting 2022-11-05 17:28:32 -04:00
rvcas 9d14acbe0a
fix: when formatting and add some methods to Project::Error 2022-11-05 16:23:46 -04:00
rvcas 14724f924c
fix: weird extra space above definitions 2022-11-05 15:42:53 -04:00
rvcas 4cad053e15
fix: capture variables are a bit different 2022-11-05 15:35:18 -04:00
rvcas cba7a6f46e
feat: bring over the formatter from gleam 2022-11-05 15:35:11 -04:00
rvcas 3df275043a
Release 0.0.24
aiken@0.0.24
aiken-lang@0.0.24
aiken-project@0.0.24
uplc@0.0.24

Generated by cargo-workspaces
2022-11-04 13:56:15 -04: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
rvcas c4db8c951f
Release 0.0.23
aiken@0.0.23
aiken-lang@0.0.23
aiken-project@0.0.23
uplc@0.0.23

Generated by cargo-workspaces
2022-11-03 20:27:03 -04:00
Kasey White 887f5eeee9 sorts inputs for sc 2022-11-03 05:04:21 -04:00
rvcas 1b6e5d262f
Release 0.0.22
aiken@0.0.22
aiken-lang@0.0.22
aiken-project@0.0.22
uplc@0.0.22

Generated by cargo-workspaces
2022-10-31 13:32:54 -04:00
rvcas 09462bbb42
chore: rename project to aiken-project 2022-10-31 13:25:19 -04:00
Lucas 11c0e4e193
Merge pull request #85 from txpipe/expose-pallas-plutus-data 2022-10-29 16:30:23 -04:00
Turner 9bbcdfd0b3 Revert versions, fix changelog 2022-10-28 11:50:19 -07:00
KtorZ 4316d5c382
Factor out common project-logic between build and check. 2022-10-28 17:20:41 +02:00
KtorZ 8d45b2a2f5
Enforce ordering of commands/sub-commands according to source
By default, clap orders command alphabetically, which can be quite
    confusing when listing commands with `--help`:

    ```
    SUBCOMMANDS:
        eval      Evaluate an Untyped Plutus Core program
        flat      Encode textual Untyped Plutus Core to flat bytes
        fmt       Format an Untyped Plutus Core program
        help      Print this message or the help of the given subcommand(s)
        unflat    Decode flat bytes to textual Untyped Plutus Cor
    ```

    It is possible to instrument clap to order commands in the same way
    they are declared in the source, giving us back the freedom to order
    and group them in a manner that makes sense, e.g.:

    ```
    SUBCOMMANDS:
        fmt       Format an Untyped Plutus Core program
        eval      Evaluate an Untyped Plutus Core program
        flat      Encode textual Untyped Plutus Core to flat bytes
        unflat    Decode flat bytes to textual Untyped Plutus Cor
        help      Print this message or the help of the given subcommand(s)
    ```
2022-10-28 17:20:41 +02:00
KtorZ 9c608ad9f1
Refactor cli's crate; split code into a hierarchy of modules.
This follows a simple convention:

    - `main.rs` contains as little as possible and delegates both
      data-types definitions and command executions to sub-modules.

    - modules are named after their respective commands. For
      sub-commands,

    - Each command module can be in one of two forms:

      - Either it is a leaf command, and it then contains an `Args`
	struct that defines the command arguments; and a function
	`exec` when outlines the execution logic.

      - Or, it is a group command with multiple sub-commands. In which
	case the module defines a `Cmd` struct encapsulating all
	sub-commands; and also an `exec` function which simply
	dispatches the logic to sub-functions.

    ---

    This commit also removes the `dev` command which is currently
    unused. The rationale being: if it's not there, it's not there.
2022-10-28 17:20:39 +02:00
KtorZ 6d0d938fb9
Extra project utilities in their own crate.
This was currently in the 'cli' crates, but this code is pretty standalone and need not to be mixed with the rest of the cli logic.
  Ideally, we want the cli crate to be only a thin wrapper over functionality available from the rest of the lib crates.
2022-10-28 13:48:40 +02: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
rvcas d5d2ba9cd7 feat: start creating aiken/builtin module 2022-10-25 18:52:27 -04:00
rvcas a41d05f7b6 feat: change project structure 2022-10-24 00:09:00 -04:00
rvcas 825783ca61 feat: typecheck If expressions 2022-10-24 00:09:00 -04:00
rvcas 5244e58c9f feat: typechecking is working 2022-10-24 00:09:00 -04:00
rvcas cabc653167 feat: start expr inference 2022-10-24 00:09:00 -04:00
rvcas 81c87ab4da feat: register import, types, and values in environment 2022-10-24 00:09:00 -04:00
rvcas d0287d418b feat: add prelude 2022-10-24 00:09:00 -04:00
rvcas 4df3de0a03 feat: some boilerplate for typechecking 2022-10-24 00:09:00 -04:00
rvcas ed2ef4fa9b feat: sort modules and detect cycles 2022-10-24 00:09:00 -04:00
rvcas 15c774b7d0
Release 0.0.21
aiken@0.0.21
flat-rs@0.0.21
uplc@0.0.21

Generated by cargo-workspaces
2022-10-23 17:58:21 -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 56984dea36 more spacing for parse error 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
rvcas ce875a3c47
Release 0.0.20
aiken@0.0.20
aiken-lang@0.0.20
flat-rs@0.0.20
uplc@0.0.20

Generated by cargo-workspaces
2022-10-17 17:22:50 -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 4e8fd53e70 fixed comments 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
rvcas 6e7ea45e11 fix: flip the cbor_hex if condition 2022-10-13 10:56:04 -04:00
rvcas da89e9902c feat: starting to get pretty error messages 2022-10-11 14:34:27 -04:00
rvcas 59d7b54473 feat: start integrating miette 2022-10-11 14:34:27 -04:00
rvcas 57dc50e3aa chore: temp allow dead code 2022-10-09 15:39:28 -04:00
rvcas 03d4a6f1e1 chore: rename 2022-10-09 15:39:28 -04:00
rvcas ff26db2245 feat: start project building 2022-10-09 15:39:28 -04:00
rvcas 2896b92203
Release 0.0.19
aiken@0.0.19
aiken-lang@0.0.19

Generated by cargo-workspaces
2022-10-04 17:10:21 -04:00
rvcas 6de41e64be feat: add simple check command 2022-10-04 17:09:43 -04:00
rvcas 6ef8ba5c35 feat: if expressions 2022-10-04 16:32:32 -04:00
rvcas dba82d544d feat: record update syntax 2022-10-04 16:32:32 -04:00
rvcas 3ad915cafd fix: list spread allowing no comma before spread 2022-10-04 16:32:32 -04:00
rvcas fb1ff759e1 feat: function calls and captures 2022-10-04 16:32:32 -04:00
rvcas 1b61f4b25b feat: field access 2022-10-04 16:32:32 -04:00
rvcas 34492f600c test: empty function definition 2022-10-04 16:32:32 -04:00
rvcas 512431d27f feat: anonymous functions 2022-10-04 16:32:32 -04:00
rvcas 695ac409b7 feat: assert and boolean negation 2022-10-04 16:32:32 -04:00
rvcas c7c11d1bd5 feat: finish when clauses 2022-10-04 16:32:32 -04:00
Kasey White 722dc4b477 work on adding when clause 2022-10-04 16:32:32 -04:00
Kasey White 118a5ac54e add some block parsing and a test (incomplete) 2022-10-04 16:32:32 -04:00
rvcas 4acb849f09 fix: include return type in one function def 2022-10-04 16:32:32 -04:00
rvcas 55f906482a feat: strip for release builds 2022-10-04 16:32:32 -04:00
rvcas c5450d37d5 chore: move lang tests to a submodule 2022-10-04 16:32:32 -04:00
rvcas 43b147a9e0 feat: lists and flatten sequences 2022-10-04 16:32:32 -04:00
rvcas 3208dab718 feat: finish parsing let bindings 2022-10-04 16:32:32 -04:00
Kasey White 3c5039134f attempt to parse let 2022-10-04 16:32:32 -04:00
Kasey White 60359ec9b0 add pipeline and logical ops to expr parsing
Co-authored-by: rvcas <x@rvcas.dev>
2022-10-04 16:32:32 -04:00
rvcas fff38e30d2 test: add more stuff to get successfully parsing 2022-10-04 16:32:32 -04:00
rvcas 8e3b32fe2c
Release 0.0.18
aiken@0.0.18
uplc@0.0.18

Generated by cargo-workspaces
2022-09-27 09:15:41 -04:00
rvcas 037297880c
Release 0.0.17
aiken@0.0.17
uplc@0.0.17

Generated by cargo-workspaces
2022-09-27 09:15:26 -04:00
rvcas 8f9481079c
Release 0.0.16
aiken@0.0.16
uplc@0.0.16

Generated by cargo-workspaces
2022-09-27 09:14:11 -04:00
alessandrokonrad f3b9d33f32 added deserialisation error to machine 2022-09-27 09:13:00 -04:00
rvcas 94bfc2846c
Release 0.0.17
aiken-lang@0.0.17

Generated by cargo-workspaces
2022-09-26 17:13:44 -04:00
rvcas 4c1b04e022
chore: add Cargo.toml fields 2022-09-26 17:13:30 -04:00
rvcas 65f39432fa
Release 0.0.16
aiken@0.0.16
aiken-lang@0.0.16

Generated by cargo-workspaces
2022-09-26 17:11:01 -04:00
Lucas 28553e3d03
Merge pull request #33 from txpipe/lang
Lang
2022-09-26 17:10:30 -04:00
rvcas 119a6f1e77
feat: use pretty assert 2022-09-26 17:04:54 -04:00
rvcas ae2866f784
Release 0.0.15
aiken@0.0.15
uplc@0.0.15

Generated by cargo-workspaces
2022-09-26 16:34:26 -04:00
alessandrokonrad 3256bfbc32 Wrapped errors in redeemer error 2022-09-26 16:33:52 -04:00
rvcas 81dd826ab8
Merge branch 'main' into lang 2022-09-26 11:15:02 -04:00
rvcas 4f26957806
feat: some expr with precendence parsing 2022-09-26 11:14:42 -04:00
rvcas e817b39e4c
Release 0.0.14
aiken@0.0.14
uplc@0.0.14

Generated by cargo-workspaces
2022-09-26 09:59:28 -04:00
alessandrokonrad 5ec991d83a fixed error handling in eval raw 2022-09-26 03:24:31 -04:00
rvcas c08f6a8454
Merge branch 'main' into lang 2022-09-25 17:44:20 -04:00
rvcas 25790287b7
Release 0.0.13
aiken@0.0.13
uplc@0.0.13

Generated by cargo-workspaces
2022-09-24 20:35:36 -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
alessandrokonrad 30ed8d9150 fixed initial_budget 2022-09-19 14:53:44 +02:00
alessandrokonrad ea735428dd fixed typos 2022-09-19 13:48:05 +02:00
alessandrokonrad 4a6496db3f Replaced unreachable statements with Error 2022-09-19 13:38:56 +02:00
alessandrokonrad 1148863a43 Allow to set initial budget 2022-09-19 12:02:41 +02:00
alessandrokonrad 83bac598de removed deprecated comment 2022-09-19 10:58:45 +02:00
alessandrokonrad d5f398bc5f Fixed output decoding for ResolvedInput 2022-09-19 10:50:25 +02:00
rvcas 6c34c9be19
feat: even more errors work 2022-09-19 01:05:33 -04:00
rvcas 9bab3187b1
feat: more errors 2022-09-19 00:39:52 -04:00
Harper 6e901de2f0
feat: implement script-related ledger checks for Tx Simulate (#57)
* feat: functions for extraneous/missing redeemers checks

* chore: typos

* feat: implement function to check for missing/extraneous scripts

* feat: check for missing/extraneous redeemers and scripts in eval_tx

* chore: add tests for missing/extraneous redeemers

* chore: remove duplicate file
2022-09-18 23:31:30 -04:00
rvcas 9e280f9cb5
feat: rename transaction eval and add error enum 2022-09-18 15:35:10 -04:00
rvcas 68fc0f643e
feat: add some v1 methods so that cost_mdls can be optional 2022-09-18 15:16:41 -04:00
Kasey White dac25b6f41 fix cpu mem mix up on steps 2022-09-18 04:15:30 -04:00
alessandrokonrad 6619a0e431 moved cost_mdls language determination into eval_redeemer 2022-09-18 09:37:14 +02:00
Kasey White 472cea6c41 parameratize cost model 2022-09-17 21:12:48 -04:00
alessandrokonrad d426f4922f added eval_tx_raw 2022-09-16 17:13:42 +02:00
Kasey White 02a8a34fe8 expose tx simulation with simulate cli command 2022-09-16 04:35:20 -04:00
Kasey White 3f27bd9f13 move utils to uplc and break up 2022-09-16 04:00:29 -04:00
rvcas ddf3cdb6ec
chore: use alpha 3 instead of main 2022-09-15 11:29:08 -04:00
rvcas 26deb6df10
fix: it compiles again 2022-09-15 11:27:33 -04:00
rvcas 348ed3b719
fix: changes from pallas bump
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2022-09-14 22:00:52 -04:00
rvcas 336af376e1
chore: bump pallas version 2022-09-14 18:52:42 -04:00
alessandrokonrad 806d98e5fc
added error messages to execution purpose 2022-09-14 18:52:05 -04:00
alessandrokonrad fc92c40c3c
fixed typo 2022-09-14 18:52:05 -04:00
alessandrokonrad 2bd46f90bb
error statemens after program 2022-09-14 18:52:05 -04:00
alessandrokonrad 829d959fa3
more error statements 2022-09-14 18:52:05 -04:00
alessandrokonrad a408491e41
added error messages 2022-09-14 18:52:05 -04:00
alessandrokonrad be8daa00dd
added plutusV1 test 2022-09-14 18:52:04 -04:00
alessandrokonrad 6e4ff1e282
added plutusV1 2022-09-14 18:52:04 -04:00
alessandrokonrad d9b34973c7
fixed constructor tags 2022-09-14 18:52:04 -04:00
alessandrokonrad 61bf55e151
added example 2022-09-14 18:52:04 -04:00
alessandrokonrad eb1466d269
fixed budget calc 2022-09-14 18:52:04 -04:00
alessandrokonrad fa6520e585
added full evaluation; still fails because hashes mismatch regarding pallas 2022-09-14 18:52:04 -04:00
alessandrokonrad 76d326b9ac
completed execution part 2022-09-14 18:52:04 -04:00
alessandrokonrad b1b9d3a5d4
preliminary work on execution 2022-09-14 18:52:04 -04:00
alessandrokonrad 080985b7c6
more bug fixes 2022-09-14 18:52:04 -04:00
alessandrokonrad 33c2a25fa3
bit more refactoring 2022-09-14 18:52:03 -04:00
alessandrokonrad ec63bd2365
fixed bugs in conversion to plutus data; little refactoring 2022-09-14 18:52:03 -04:00
alessandrokonrad f0d17897ab
fixed bug in tx_in_info 2022-09-14 18:52:03 -04:00
alessandrokonrad ecd363e67d
fixed bugs; preliminary work on eval 2022-09-14 18:52:03 -04:00
alessandrokonrad 4060a25324
fixed bugs 2022-09-14 18:52:03 -04:00
alessandrokonrad 24397d4b58
fixed time range 2022-09-14 18:52:03 -04:00
alessandrokonrad 57816d4c09
added get script purpose 2022-09-14 18:52:03 -04:00
alessandrokonrad 8b894f7351
added functions to get script context 2022-09-14 18:52:03 -04:00
alessandrokonrad c0c7bd58b3
added all necessary trait impl for PlutusV2 scriptContext 2022-09-14 18:52:02 -04:00
alessandrokonrad 4e51826981
added more implementations for ToPlutusData 2022-09-14 18:52:02 -04:00
alessandrokonrad 60d7c52c26
added some structs; added ToPlutusData 2022-09-14 18:52:01 -04:00
rvcas bc983d694a
feat: some cbor hex flags for flat and unflat 2022-09-14 18:51:38 -04:00
rvcas da73995124
fix: resolved inputs should be a flag 2022-09-14 18:51:38 -04:00
Harper d8cdeaf925
ouput (#51) 2022-09-14 18:51:38 -04:00
rvcas 564cd41626
chore: clean up tx in info 2022-09-14 18:51:37 -04:00
Kasey White d5f8b749ae
add txininfo plutus data to main 2022-09-14 18:51:36 -04:00
rvcas cf27c0c755
feat: apply redeemers and datum to script 2022-09-14 18:51:08 -04:00
rvcas c9072deb09
feat: print some info 2022-09-14 18:50:11 -04:00
rvcas 055ca5c66b
feat: add a new subcommand for tx simulation 2022-09-14 18:50:05 -04:00
rvcas 4615132b05
Release 0.0.12
aiken@0.0.12
uplc@0.0.12

Generated by cargo-workspaces
2022-09-08 18:22:46 -04:00
Lucas 6d6f671f4f
eval with inputs (#56) 2022-09-08 18:20:52 -04:00
Niels Mündler 739f38beac
UPLC data parsing support by CBOR notation (#37)
* Implement constant data parsing support

New notation: (con data #0000)
Where #0000 is the CBOR hex representation of a PlutusDatum

* Add pretty printing support for data

* Format
2022-09-08 16:10:12 -04:00
rvcas d54aaff5de
feat: fill in expr unit parser a bit 2022-09-07 17:53:07 -04:00
rvcas 59a9bac9b5
feat: finish expr_seq_parser 2022-09-07 17:52:49 -04:00
rvcas 3bc507c9e8
feat: beginnings of expr parsing 2022-09-07 17:52:49 -04:00
rvcas d87bb17a27
feat: type aliases and some fn parsing 2022-09-07 17:52:49 -04:00
rvcas fbc9b27efe
feat: parse custom types 2022-09-07 17:52:49 -04:00
rvcas 1d1a6fc404
feat: parse imports 2022-09-07 17:52:49 -04:00
rvcas 1d6809661c
feat: lexer 2022-09-07 17:52:49 -04:00
rvcas 208f2e80ea
feat: more ast elements and some sample syntax 2022-09-07 17:52:48 -04:00
rvcas 35143f1544
feat: add the ast module 2022-09-07 17:52:48 -04:00
rvcas fd17605e4d
feat: add deps 2022-09-07 17:52:46 -04:00
rvcas e74eace15c
chore: init lang crate 2022-09-07 17:52:18 -04:00
rvcas db5695a1c4
Release 0.0.11
aiken@0.0.11
uplc@0.0.11

Generated by cargo-workspaces
2022-09-07 17:49:27 -04:00
rvcas 4d742b5b47
chore: fix formatting 2022-09-06 15:45:08 -04:00
Niels Mündler 9b491b3777 Print machine logs (debug trace)
This may be made optional with a --verbose flag, but usually the user wants to see all invocations of the Trace command
2022-09-06 15:44:23 -04:00
Kasey White c88e5df8b1 finish up builtin implementations for Vasil 2022-08-30 18:15:50 -04:00
Kasey White 2d1f147d40 remove extra dependencies and return result for data encode/decode 2022-08-29 14:07:13 -04:00
Kasey White 65b133251a change pretty vars and handle larger range of cbor tags 2022-08-29 14:07:13 -04:00
Kasey White 833914c80c done with data builtins 2022-08-29 14:07:13 -04:00
Kasey White 368cd4ad55 one more data builtin to go 2022-08-29 14:07:13 -04:00
Kasey White 00cc9f93d5 start making data with builtins 2022-08-29 14:07:13 -04:00
Kasey White 1a09a34873 mknil builtins 2022-08-29 14:07:13 -04:00
Kasey White c34344ce21 add a few additional data builtins 2022-08-29 14:07:13 -04:00
Kasey White c9c8e6e554 add unmap and other builtins to deconstruct data 2022-08-29 14:07:13 -04:00
Kasey White 73e367ad53 add a data builtin and do ex_mem for pairs, list, data 2022-08-29 14:07:13 -04:00
rvcas 45e22c1ea8
Release 0.0.10
aiken@0.0.10
flat-rs@0.0.10
uplc@0.0.10

Generated by cargo-workspaces
2022-08-27 16:45:04 -04:00
zypeh 03847259f7 Removing whitespace 2022-08-27 10:59:48 -04:00
zypeh b474abdb9b Rewrite test in proptest, remove quickcheck dep 2022-08-27 10:59:48 -04:00
Kasey White 8eb2d24704 fix clippy check 2022-08-25 19:36:03 -04:00
zypeh aeae9aa51e zigzag zagzig 2022-08-25 19:36:03 -04:00
zypeh b81986c44c Adding more tests 2022-08-25 19:36:03 -04:00
zypeh ef81427b62 Fixed bug if byte array exceed 255 bytes 2022-08-25 19:36:03 -04:00
zypeh 10461779af Moved the test and use compiler specific function 2022-08-25 19:36:03 -04:00
zypeh 7cff93e718 Code linting 2022-08-25 19:36:03 -04:00
zypeh 40fd4ae447 Adding test cover the write_blk encode function 2022-08-25 19:36:03 -04:00
zypeh 9ded4d79d5 Move test to tests directory 2022-08-25 19:36:03 -04:00
zypeh f997a6250c Eliminate the recursive call 2022-08-25 19:36:03 -04:00
Kasey White 09ae98065c remaining buitlins for list and integer
Co-authored-by: rvcas <x@rvcas.dev>
2022-08-24 00:06:17 -04:00
Kasey White 3f6ad6be60 verify signature changed name and cost 2022-08-24 00:06:17 -04:00
Kasey White c03d3e3604
fix budget restriction back to protocol params (#39) 2022-08-21 16:52:31 -04:00
rvcas 2b27261711
Release 0.0.9
aiken@0.0.9
uplc@0.0.9

Generated by cargo-workspaces
2022-08-17 22:48:06 -04:00
rvcas 8ed87c5f17 chore: fix clippy issues 2022-08-17 22:40:32 -04:00
Kasey White 2bb482d9ec Using rc we now get code that runs much faster and
can run jpg contract with no inputs
2022-08-17 22:40:32 -04:00
Kasey White fb81955f51 start changing machine to use rc instead of box (does compile) 2022-08-17 22:40:32 -04:00
Kasey White c050a5647f remove some unnecessary clones with more optimizations to come 2022-08-17 22:40:32 -04:00
rvcas c3f0814c9b
Release 0.0.8
aiken@0.0.8
uplc@0.0.8

Generated by cargo-workspaces
2022-08-12 19:45:20 -04:00
Kasey White f3ace55355 Implement more builtins for bytestring and integer
Co-authored-by: rvcas <x@rvcas.dev>
2022-08-10 12:23:34 -04:00
Kasey White 11ee99c199 Add several builtins for strings and bytestring
Co-authored-by: rvcas <x@rvcas.dev>
2022-08-07 22:21:58 -04:00
rvcas 4d04942a5e
Release 0.0.7
aiken@0.0.7
flat-rs@0.0.7
uplc@0.0.7

Generated by cargo-workspaces
2022-08-05 13:15:26 -04:00
rvcas b83394be74 feat: decode proto list and proto pair
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2022-08-05 00:38:41 -04:00
rvcas e8f783e7bb feat: decode plutus data 2022-08-05 00:38:41 -04:00
rvcas fa3c88a31e feat: add from_cbor and from_hex 2022-08-05 00:38:41 -04:00
rvcas e6be899b2a feat: fill in encode constant todos 2022-08-05 00:38:41 -04:00
rvcas 61b70e7e3d feat: encode plutus data 2022-08-05 00:38:41 -04:00
Kasey White d14920265e flat encoding for list and pairs
Co-authored-by: rvcas <x@rvcas.dev>
2022-08-05 00:38:41 -04:00
rvcas 198dae7f5d feat: impl display for Program and Term where T: Binder 2022-08-05 00:38:41 -04:00
rvcas e70881c27c feat: add some missing enum members to constant 2022-08-05 00:38:41 -04:00
rvcas 8e8f1270b5 feat: to_cbor and to_hex for Program 2022-08-03 17:17:15 -04:00
rvcas 339e638705 feat: impl eval for Program<DeBruijn> 2022-08-02 19:04:25 -04:00
rvcas 207f9e5ab0
Release 0.0.6
aiken@0.0.6
flat-rs@0.0.6
uplc@0.0.6

Generated by cargo-workspaces
2022-08-02 14:04:30 -04:00
Kasey White a3a175d74b switch to stack model for plutus eval
Co-authored-by: rvcas <x@rvcas.dev>
2022-07-28 02:48:08 -04:00
Kasey White 4acbd704e0 fix compilation issue 2022-07-27 11:27:27 -04:00
Kasey White 234ab7c7cb Try out recursion for environment and frames
Co-authored-by: rvcas <x@rvcas.dev>
2022-07-27 11:27:27 -04:00
Kasey White be38d1eebe fix fmt error 2022-07-24 19:58:20 -04:00
Kasey White 2552a9c203 Finish docs for decoder 2022-07-24 19:58:20 -04:00
Kasey White ac3ab5b47a chore: start decoding docs and fix wording for encode docs 2022-07-24 19:58:20 -04:00
Kasey White 3aaec0936d chore: create docs for encoding 2022-07-24 19:58:20 -04:00
Kasey White b3cb9c4510 use expect instead of unwrap 2022-07-24 19:51:57 -04:00
rvcas 2a85567154 chore: clippy 2022-07-24 19:51:57 -04:00
rvcas 9e62181caa feat: new Error not a constant 2022-07-24 19:51:57 -04:00
rvcas 77a7b11467 feat: finish to_ex_mem for constant
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2022-07-24 19:51:57 -04:00
rvcas f332dfeb38 feat: 3 new error cases and more generic pretty printing 2022-07-24 19:51:57 -04:00
Kasey White 598c5364fe implement force for builtins
Co-authored-by: rvcas <x@rvcas.dev>
2022-07-24 19:51:57 -04:00
rvcas 22f90bf07f feat: impl ifThenElse kinda
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2022-07-24 19:51:57 -04:00
rvcas 83b9294ac1 chore: print runtime 2022-07-24 19:51:57 -04:00
rvcas b7e6f7b27f feat: add default builtin costs
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2022-07-24 19:51:57 -04:00
Kasey White 9f977f7e58 add costing capability for builtins
Co-authored-by: rvcas <x@rvcas.dev>
2022-07-24 19:51:57 -04:00
Kasey White 84df3be139 start filling in builtin cost model
Co-authored-by: rvcas <x@rvcas.dev>
2022-07-24 19:51:57 -04:00
Kasey White a5140513de fix: debruijn index - 1
Co-authored-by: rvcas <x@rvcas.dev>
2022-07-24 19:51:57 -04:00
rvcas d55409d8c5 feat: basic builtin execution
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2022-07-24 19:51:57 -04:00
Kasey White 9ea57aa461 Add some runtime types 2022-07-24 19:51:57 -04:00
Kasey White 045dc8fed8 add builtin cost model
Co-authored-by: rvcas <x@rvcas.dev>
2022-07-24 19:51:57 -04:00
rvcas e8aa013aa4 chore: set to zero in spend loop 2022-07-24 19:51:57 -04:00
Kasey White 93f7849fc0 Finish machine evaluation for all terms except builtin
Co-authored-by: rvcas <x@rvcas.dev>
2022-07-24 19:51:57 -04:00
Kasey White 0e2214a908 Implement apply evaluate
Co-authored-by: rvcas <x@rvcas.dev>
2022-07-24 19:51:57 -04:00
rvcas 650a789194 chore: step and maybe spend
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2022-07-24 19:51:57 -04:00
Kasey White 0bf93e59b5 add evaluation for terms
Co-authored-by: rvcas <x@rvcas.dev>
2022-07-24 19:51:57 -04:00
rvcas 795d9ee028 feat: clean up the machine a bit 2022-07-24 19:51:57 -04:00
Kasey White de476c801b Add costing to steps 2022-07-24 19:51:57 -04:00
Kasey White 7b8018447f create initial enums and function of the UPLC cek interpreter 2022-07-24 19:51:57 -04:00
MitchTurner 0ea42ab7e7
Remove commented code related to closed story (#23)
Co-authored-by: Turner <mitch@tpfs.io>
2022-07-10 12:32:36 -07:00
MitchTurner ada7b00b49
Expand builder (#20)
* Add bool method

* Add proptest

* Add some more consts and stuff

* Refactor Lambda stuff out

* REfactor

* Convert bytestring test to prop test

* Add string constant

* Add char stuff, despite it not being ready

* Add unit

* Add var

* Add delay

* Add apply

* Add force

* Add error

* Add builtin

* Add example, remove feature

* Rename some stuff

Co-authored-by: Turner <mitch@tpfs.io>
2022-07-01 20:50:58 -07:00
Turner 7f70ae0f74 Remove experimentation in features 2022-06-29 14:02:57 -04:00
Turner a238dc58a6 Move program builder to uplc crate 2022-06-29 14:02:57 -04:00
Turner f8aae49fce Appease Clippy-sama 2022-06-29 14:02:57 -04:00
Turner 6748395d9e Remove TODOs 2022-06-29 14:02:57 -04:00
Turner 35bdd542f1 Add test for nested lambdas 2022-06-29 14:02:57 -04:00
Turner 888e64d485 Refactor Lambda too 2022-06-29 14:02:57 -04:00
Turner c7dfd01a5e Refactor 2022-06-29 14:02:57 -04:00
Turner 41a7b73877 Add test for lambda and some edge cases for constant 2022-06-29 14:02:57 -04:00
Turner e667fc3613 Add passing tests for builder 2022-06-29 14:02:57 -04:00
rvcas 4db39c8790
Release 0.0.5
aiken@0.0.5
uplc@0.0.5

Generated by cargo-workspaces
2022-06-27 11:46:21 -04:00
Kasey White 302da5e20d Fix clippy warning 2022-06-26 21:38:27 -04:00
Kasey White 4eafdd2d39 fix issue with same names causing 0 index debruijn for var 2022-06-26 21:38:27 -04:00
Turner 027daf30ea Add TODO for failing test with link to bug 2022-06-26 19:03:17 -04:00
Turner 19fd6a0e8c Add comment explaining why that test is only one-way 2022-06-26 19:03:17 -04:00
Turner 1b00e4d416 Sanitize fibonacci program to make round-trip tests happy, isolate unsanitary code 2022-06-26 19:03:17 -04:00
Turner 787f345275 Add new uplc case to test, it is failing 2022-06-26 19:03:17 -04:00
Turner 5ba7349f4a Refactor tests, move them into integ folder 2022-06-26 19:03:17 -04:00
rvcas 38e78cafeb
chore: readmes in uplc and cli 2022-06-18 23:15:05 -04:00
rvcas 0dd5cf2cb6
Release 0.0.4
aiken@0.0.4

Generated by cargo-workspaces
2022-06-18 23:06:15 -04:00
rvcas 7129ad6202
feat: remove authors from cli help 2022-06-18 23:06:05 -04:00
rvcas 5bd848b0b8
Release 0.0.3
aiken@0.0.3
uplc@0.0.3

Generated by cargo-workspaces
2022-06-18 22:55:04 -04:00
rvcas 6aae184848 feat: new fmt command and pretty printing works 2022-06-18 22:54:26 -04:00
rvcas 6a39d4349a feat: everything lines up 2022-06-18 22:54:26 -04:00
Kasey White d18ac475d1 modification to pretty printing for constants and nesting 2022-06-18 22:54:26 -04:00
rvcas 672c7037f6 fix: add new assert 2022-06-18 22:54:26 -04:00
rvcas 7e86a71772 feat: more pretty printing logic 2022-06-18 22:54:26 -04:00
rvcas 5a6ba40557 feat: start pretty printing 2022-06-18 22:54:26 -04:00
rvcas cbea795f68
feat: only need to compare unique and index 2022-06-17 15:39:31 -04:00
rvcas b8c5c268d4
feat: add conversion to tests 2022-06-16 16:54:34 -04:00
rvcas 59a8f6477b
feat: convet a named debruijn to a name 2022-06-15 20:12:12 -04:00
rvcas 7693da4bbf
Release 0.0.2
aiken@0.0.2

Generated by cargo-workspaces
2022-06-14 19:16:18 -04:00
rvcas f8284ebaa0
chore: reset aiken version 2022-06-14 19:15:59 -04:00
rvcas 8d12332fa8
chore: version for uplc dep 2022-06-14 19:14:13 -04:00
rvcas 575585205b
Release 0.0.2
aiken@0.0.2
flat-rs@0.0.2
uplc@0.0.2

Generated by cargo-workspaces
2022-06-14 19:12:46 -04:00
rvcas f7fba12a5f
chore: flat is taken in crates.io 2022-06-14 19:11:00 -04:00
rvcas f511dce353
chore 2022-06-14 18:55:59 -04:00
rvcas c210803adf
chore: add package description 2022-06-14 18:51:25 -04:00
rvcas 969cc80abf
chore: prepare to publish 2022-06-14 18:46:18 -04:00
rvcas dc4246244d
chore: document somethings 2022-06-14 17:27:27 -04:00
rvcas 984c253f31
feat: rename to aiken and add e2e tests for uplc 2022-06-11 23:22:24 -04:00
Kasey White 1ef116fcda fix: parse negative numbers and empty bytestrings 2022-06-10 17:23:36 -04:00
rvcas 2afded2d27
fix: builtin parsing 2022-06-10 11:48:46 -04:00
rvcas b05f0846a8
fix: moving to a parser that can handle left recursion 2022-06-10 01:55:28 -04:00
rvcas 86089b4bee
fix: different attempt 2022-06-09 00:44:52 -04:00
rvcas 474df4a3ae
fix: different attempt 2022-06-08 23:22:34 -04:00
rvcas 74df7f8a7c
fix: potential fix for left recursion 2022-06-08 22:21:22 -04:00
rvcas 1c8f3a736b
feat: new uplc parser 2022-06-08 21:51:04 -04:00
Kasey White 33fcb77681 fix: put byte_array final pos incrementer in wrong scope 2022-06-08 15:42:58 -04:00
Kasey White be477917f2 fix: fixed edge cases to get flat encode and decode working with stress test case 2022-06-08 03:33:09 -04:00
rvcas 21d713ece3
feat: change term parsing order 2022-06-07 22:02:20 -04:00
rvcas b47030b86d
feat: better clap commands 2022-06-06 23:55:01 -04:00
Kasey White 895f279be0 fix: parser fixes for spacing 2022-06-06 23:28:36 -04:00
rvcas 60a920a0ac
fix: more subtle things 2022-06-06 22:51:09 -04:00
rvcas 4c45c95620
fix: var parsing 2022-06-06 22:40:15 -04:00
rvcas d4251206e7
feat: fake named debruijn 2022-06-05 22:47:04 -04:00
rvcas 349364d867
chore: builtins implement Copy 2022-06-04 14:06:46 -04:00
rvcas 1ecd47a361
feat: clean up errors 2022-06-04 14:01:45 -04:00
rvcas 377c5c206c
feat: better errors for debruijn converter 2022-06-04 12:16:56 -04:00
rvcas 2f51b23e7e
feat: debruijn conversions and binder
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2022-06-04 11:15:34 -04:00
rvcas 2ad630de90
feat: use a stack for scope 2022-06-04 00:29:30 -04:00
rvcas 946937f945
feat: more debruijn stuff 2022-06-03 22:00:16 -04:00
rvcas f8edb5d519
feat: start debruijn conversion
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2022-06-03 00:36:39 -04:00
rvcas 83d6b5243e
feat: get program ready for debruijn 2022-06-02 21:39:09 -04:00
rvcas c7037ff8d9
feat: get string interning working
Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2022-06-01 01:11:30 -04:00
Kasey White 581b8fc85d feat: flat tweaks and string interning
Co-authored-by: rvcas <x@rvcas.dev>
2022-05-31 22:57:55 -04:00
rvcas 31e7d63d9a
chore: use ref to get slice 2022-05-30 18:26:49 -04:00
rvcas 3f1ddef635
chore: slight clean up 2022-05-30 18:05:50 -04:00
Kasey White 83a784c745 add simple test for decoding 2022-05-30 17:12:32 -04:00
Kasey White d4b659c04e feat: finish up most of decoding (integer, decodeListWith, Term, Program, Version, Constant, Builtin) 2022-05-30 16:49:43 -04:00
rvcas bf3b984405
fix: add back the decoder lifetime 2022-05-30 10:49:23 -04:00
Kasey White 4fb508e3b2 Add decoding for bytestring, string, char, bool, and filler 2022-05-30 02:32:39 -04:00
rvcas 9d8afee3d2
chore: impl todo for filler decode 2022-05-29 21:53:13 -04:00
rvcas 0a476d0592
feat: prepare decoding traits and make new Flat trait 2022-05-28 20:12:03 -04:00
Kasey White 41487733f7 feat: builtin encoding
Co-authored-by: rvcas <x@rvcas.dev>
2022-05-28 00:23:34 -04:00
Kasey White c01469ea51 feat: spec complaint program encoding
Co-authored-by: rvcas <x@rvcas.dev>
2022-05-27 22:37:08 -04:00
Kasey White 2e130ac5f0 add integer based on plutus core manual information 2022-05-24 04:55:10 -04:00
rvcas b345afd12f
feat: we're flat encoding plutus core 2022-05-23 12:45:13 -04:00
Kasey White 344620136f use encode_list_with with safe_encode_bits func 2022-05-23 12:20:04 -04:00
Kasey White c38da6426f implement encode_constant and add term tags for encoding 2022-05-23 02:22:37 -04:00
Kasey White 52f9f5ab41 feat: start on encoding constants with Flat Encoder 2022-05-22 20:29:59 -04:00
Kasey White fdfaf91bcf feat: create encoding for char, string, byte array 2022-05-22 18:16:42 -04:00
rvcas 52523516fe
feat: u8 2022-05-22 12:56:28 -04:00
rvcas 33fee5b3e0
chore: switch to a mono repo 2022-05-22 12:40:52 -04:00