Commit Graph

386 Commits

Author SHA1 Message Date
Justin Syme
e0e6ee1fa9 Update multi.ak
Updated using `from_minted_value`
2023-06-07 17:37:30 -04:00
Justin Syme
fc9a60494e Update oneshot.ak
Updated with 
        `|> from_minted_value`
2023-06-07 17:37:30 -04:00
rvcas
feb2698e5e chore: commit multi-validator plutus.json 2023-06-07 15:42:42 -04:00
Kasey White
73c9ac3409 feat: create multi validator for gift card.
This version of gift card allows for minting many gift cards  in a tx under the same policy by policy creator. Also allows batch redeem.
2023-06-07 15:42:42 -04:00
microproofs
5faa925aea fix: error when using nested boolean checks in when conditions 2023-06-06 03:04:12 -04:00
microproofs
bfd2a50a6b fix: zero arg functions were grabbing extra dependencies they didn't need to
fix: Had the wrong conversion for constant maps to plutus data. Fixed to check for right conversion
2023-06-04 15:23:36 -04:00
rvcas
335cc0c8bc feat(cli): rework uplc subcommands
closes #553

* rename flat to encode
* rename unflat to decode
* alias both to their old names
* both only print to stdout
  use can pipe to file
* split cbor and hex flags
* hex flag works for either cbor or flat
* encode takes --to flag
  [name, named-debruijn, debruijn]
* decode takes --from flag
  [name, named-debruijn, debruijn]
2023-06-01 23:50:59 -04:00
microproofs
4838ebd39e feat: record modules are no longer unimplemented for no fields
refactor: remove some clones and use a ref instead
test: add acceptance test 81
2023-05-14 18:30:51 -04:00
microproofs
b36cf1c029 chore: refactor default functions in uplc_code_gen.
feat: Add an identity optimization to remove functions that return the argument only.
2023-05-08 16:15:09 -04:00
microproofs
0d0c96deda commit validator changes and tests 2023-04-28 17:05:46 -04:00
microproofs
c3184c544c fix: wrap data reduce had the wrong argument called in recursively, thus skipping over cases that should have been reduced
chore: Add unit tests on for uplc optimizations
2023-04-26 17:22:16 -04:00
microproofs
b050018a37 test fix: blueprint change 2023-04-25 02:06:56 -04:00
rvcas
3891016bc3 chore(gift_card): better input id 2023-04-21 12:07:18 -04:00
rvcas
6ab42735b0 fix: switch back to blockfrost kupmios + demeter setup showing strange behavior 2023-04-21 11:59:31 -04:00
microproofs
672a900243 chore: converted acceptance tests 5-7 2023-04-19 20:03:41 -04:00
microproofs
23a7e7e680 chore: convert acceptance test 5
Also constructors with no fields are now converted to a constant data term.
2023-04-19 16:08:55 -04:00
microproofs
7dd13f8d73 feat: add end to end tests to replace acceptance tests with strict uplc comparison.
Add acceptance tests 1,2, 6 as end to end tests
2023-04-19 16:08:55 -04:00
microproofs
fc1b8738df fix: fixed how the ir was generating for expect Void, expect Bool, let Void
add some acceptance tests for the various scenarios
2023-04-12 22:37:33 -04:00
KtorZ
0846fe2d5f Add new failing test case for 048 (clause guards)
It seems like we don't properly handle clause guards for wildcard
  patterns. Seems like a codegen issue here as the code type-check
  properly.
2023-04-12 08:24:18 +02:00
Kasey White
ff290bc582 add expect false test 2023-04-09 17:43:56 -04:00
Kasey White
02d57cc076 tests pass now after adding in final wrapper as air elements 2023-04-09 17:43:56 -04:00
Kasey White
9e95e24624 now tests are passing 2023-04-09 17:43:56 -04:00
Kasey White
897011e9bc misc changes 2023-04-09 17:43:56 -04:00
Kasey White
f4ba6b8985 fix: unused validator args had an incorrect if check 2023-04-09 17:43:56 -04:00
Kasey White
3f45b524b8 feat: unused validator args are not expect checked 2023-04-09 17:43:56 -04:00
Kasey White
8c8312a412 fix: expect true was always expecting false 2023-04-09 17:43:56 -04:00
KtorZ
23b72e18f3 Add new acceptance test scenario: expect unary constructors.
```
  Error:
    × Main thread panicked.
    ├─▶ at crates/aiken-lang/src/gen_uplc.rs:1852:33
    ╰─▶ called `Option::unwrap()` on a `None` value
  ```
2023-04-09 17:43:56 -04:00
rvcas
1444c9328d fix some typos 2023-04-07 16:51:18 -04:00
rvcas
d0d482b3cb chore(gift_card): run fmt 2023-04-07 16:35:58 -04:00
rvcas
4e380012fb chore(gift_card): use kupmios backed by demeter for lucid 2023-04-06 21:35:08 -04:00
KtorZ
814157dd7b Fix formatter inconsistency with record spread patterns. 2023-03-30 13:02:20 +02:00
KtorZ
17431daaa4 Correctly nest multiline pipeline expressions. 2023-03-30 12:48:15 +02:00
rvcas
703429af98 chore: commit plutus.json 2023-03-27 20:00:32 -04:00
Kasey White
b2dcb112c9 fix last 2 acceptance tests 2023-03-27 20:00:32 -04:00
Kasey White
32d34d5fd3 create struct Air Env
refactor out some to_strings
2023-03-27 20:00:32 -04:00
rvcas
0060d29265 chore: update gift card example to use new validator syntax 2023-03-27 13:39:34 -04:00
Kasey White
bb820ebdd8 fix: trace and scope issues
fix scope issues involving fieldsexpose and other destructureing pattern
fix trace to extract string from term.
2023-03-21 12:38:13 -04:00
Kasey White
6e5b24a937 refactor the rest of the term builders to use more concise code 2023-03-21 00:50:13 -04:00
Kasey White
50db958d06 update codegen to use more streamlined uplc building methods 2023-03-21 00:50:13 -04:00
KtorZ
6422027c6c Fix README template for newly generated projects, and hello, world 2023-03-18 22:23:55 +01:00
KtorZ
a4c7337df2 Add new acceptance scenario 079 (double validators) 2023-03-17 18:40:49 -04:00
rvcas
c3870e340e feat(codegen): support multi-validators
* rename force_wrap to force
* add a bunch of builder methods to Term<Name>
* refactor one tiny location to show off builder methods
* split generate into `generate` and `generate_test`
* create wrap_as_multi_validator function

Co-authored-by: Kasey White <kwhitemsg@gmail.com>
2023-03-17 18:40:44 -04:00
KtorZ
660d2199d4 Make blueprint generation deterministic
Sort validators before iterating on them.
2023-03-17 14:57:39 +01:00
KtorZ
c113582404 Support multi-clause patterns as syntactic sugar
And disable multi-patterns clauses. I was originally just controlling
  whether we did disable that from the parser but then I figured we
  could actually support multi-patterns clauses quite easily by simply
  desugaring a multi-pattern into multiple clauses.

  This is only a syntactic sugar, which means that the cost of writing
  that on-chain is as expensive as writing the fully expanded form; yet
  it seems like a useful shorthand; especially for short clause
  expressions.

  This commit however disables multi-pattern when clauses, which we do
  not support in the code-generation. Instead, one pattern on tuples for
  that.
2023-03-16 19:45:41 -04:00
KtorZ
13890874c0 Fix 'run' script, also do 'check' on modules that have validators. 2023-03-16 23:04:24 +01:00
Lucas
fab6d56bf2 Merge branch 'main' into newline-assignment 2023-03-16 15:30:55 -04:00
KtorZ
45575cae96 Fix 'run' script and re-generate blueprint for scenario 077. 2023-03-16 15:29:44 -04:00
KtorZ
20f5baffa7 Enforce newline after assignment / clause.
This leads to more consistent formatting across entire Aiken programs.
  Before that commit, only long expressions would be formatted on a
  newline, causing non-consistent formatting and additional reading
  barrier when looking at source code.

  Programs also now take more vertical space, which is better for more
  friendly diffing in version control systems (especially git).
2023-03-16 19:46:46 +01:00
rvcas
bf9297efcf chore(gift_card): cardano scan url should be preprod as well 2023-03-16 09:45:11 -04:00
rvcas
f7308f22fd fix: gift_card deno.lock 2023-03-15 16:41:25 -04:00