microproofs
d350bc1935
Change another test
2024-11-02 14:45:58 -04:00
microproofs
362eb75329
Continue updating tests
2024-11-01 19:34:58 -04:00
microproofs
e87d7a1101
Fixing unit tests
2024-11-01 19:34:57 -04:00
microproofs
d39d70a5d8
More clippy fix
2024-11-01 19:34:56 -04:00
microproofs
1227a8a7db
Clippy fix
2024-11-01 19:34:55 -04:00
microproofs
6b04a78e78
Removing unneeded Air terms and reduce by about 800 lines
2024-11-01 19:34:54 -04:00
microproofs
1bc15f78ea
Finished up remaining touches to the implementation. Now I need to finish unit tests and add a few more
2024-11-01 19:34:54 -04:00
microproofs
a4aaf4d2d7
Last issue from acceptance tests
2024-11-01 19:34:53 -04:00
microproofs
27bf40260e
Fix pairs not being unwrapped when wrapped as fields
2024-11-01 19:34:53 -04:00
microproofs
25e4b42cd0
Fix more tests and issues
2024-11-01 19:34:53 -04:00
microproofs
6e94d502a7
Fix more tests and issues
2024-11-01 19:34:53 -04:00
microproofs
7655a6ecbe
Fix test issues
2024-11-01 19:34:52 -04:00
microproofs
b4d142ca9d
Fix assigns sometimes having free uniques
2024-11-01 19:34:52 -04:00
microproofs
fa203ba9a2
Done with list pattern translation. Now to fix up tests
2024-11-01 19:34:52 -04:00
microproofs
8591bedc1e
Finish up list pattern translation to air
2024-11-01 19:34:52 -04:00
microproofs
1a15440d24
Checkpoint for today
2024-11-01 19:34:52 -04:00
microproofs
9dbe66bc0c
Producing uplc now. Just need to finish ListSwitch
2024-11-01 19:34:51 -04:00
microproofs
342676f530
Continue work on integrating the decision tree into code gen
2024-11-01 19:34:51 -04:00
microproofs
61184fbb86
Use Stick breaking set to track previously encountered values for each DecisionTree switch case
2024-11-01 19:34:51 -04:00
microproofs
5eac774443
Commit latest changes so far
2024-11-01 19:34:50 -04:00
microproofs
753b41dc99
Done with hoisting. Now to use it in gen_uplc. I hate RcDoc btw :'/
2024-11-01 19:34:50 -04:00
microproofs
9601c1034b
Leave todo message for tomorrow
2024-11-01 19:34:49 -04:00
microproofs
7966cc0165
Finish up decision tree and rework it a bit to closely follow how the paper handles wild card patterns
2024-11-01 19:34:48 -04:00
microproofs
3b3fcb666f
Finish with adding constrs
2024-11-01 19:34:48 -04:00
microproofs
ecf4592be1
Pass in interner and data types map into decision tree builder
2024-11-01 19:34:47 -04:00
microproofs
64f7886b23
Finished up creating the decision tree for lists. Only constr left.
2024-11-01 19:34:47 -04:00
microproofs
b340de2cfd
Incremental commit for dealing with list tails
2024-11-01 19:34:47 -04:00
microproofs
ca161d8a68
Continue work on handling lists with tails pattern matching
2024-11-01 19:34:46 -04:00
microproofs
def268d966
Now working for all kinds of patterns except for constr
2024-11-01 19:34:46 -04:00
microproofs
9369cbc1a3
Remove some warnings
2024-11-01 19:34:46 -04:00
microproofs
43e859f1ba
Rework Decision Trees to use path to find the subject to test
2024-11-01 19:34:46 -04:00
microproofs
20385a7ecd
Handle tuples and pairs properly now
2024-11-01 19:34:45 -04:00
microproofs
97ee1a8ba6
Start working on using a decision tree for when expr. Also fmt fix. Other Stuff
2024-11-01 19:34:45 -04:00
KtorZ
2489e0fdd0
Fix aiken docs constant generation
...
Fixes #1048 .
2024-10-29 14:15:31 +01:00
KtorZ
2b7ca0e4a1
Avoid unsafe unwrap of line_numbers, gracefully handle non-existing matches
...
Fixes #1044 .
2024-10-25 11:37:50 +02:00
KtorZ
93d0191489
Fix latest clippy warnings.
2024-10-25 11:27:28 +02:00
KtorZ
e97fe332b1
Rename --filter_traces to --trace_filter
...
It has somehow always annoyed me that we have --trace_level (with 'trace' first) and --filter_traces (with traces, plural and last). Given that these two options are almost always used together, the inconsistency is frustrating.
2024-10-25 11:08:05 +02:00
KtorZ
8e90a933c6
Add better METAVAR info to some command-line flags.
2024-10-25 11:04:46 +02:00
KtorZ
7c4e044423
Rename --blueprint-input to --in
...
The context is indeed sufficient as pointed by @nemo83; no need to make the cli needlessly verbose.
2024-10-25 11:04:46 +02:00
Riley-Kilgore
8d8f91b76e
Add blueprint file input as option for blueprint apply
2024-10-24 14:01:48 -04:00
microproofs
a7741ec286
chore: Release
2024-10-19 13:45:54 -04:00
KtorZ
b04bb40532
Merge branch 'integer-to-bytearray-cost-fix'
2024-10-19 11:03:37 +02:00
KtorZ
365b3bf5bf
Remove dead-code and clarify note.
2024-10-19 11:00:46 +02:00
KtorZ
4b95db4f88
Fix data-type reification from Void
2024-10-19 10:50:44 +02:00
KtorZ
523b270a8f
Adjust telemetry output log.
2024-10-19 10:40:30 +02:00
microproofs
53685dd1d5
Update cost model to properly calculate integer_to_bytearray
...
Also fix conformance tests to match plutus
2024-10-18 13:07:51 -04:00
microproofs
9dd3ead3df
IntegerToByteString takes in the second param itself
2024-10-17 20:01:01 -04:00
microproofs
5fd349f571
Remove an unused opcode
2024-10-08 20:32:56 -04:00
microproofs
5d4b3e69b9
Revert "Start working on using a decision tree for when expr. Also fmt fix"
...
This reverts commit e8f74985d5
.
2024-10-08 13:33:05 -04:00
microproofs
e8f74985d5
Start working on using a decision tree for when expr. Also fmt fix
2024-10-08 13:30:29 -04:00
KtorZ
79d0e45099
Don't mark openssl dependencies as optional on musl.
2024-10-02 11:32:17 +02:00
KtorZ
f4dbe1624a
Use target_os = linux instead.
2024-10-02 10:59:50 +02:00
KtorZ
19fe1d37e7
Make bundling of ssl conditionned by target environment instead of feature flag.
2024-10-02 10:51:21 +02:00
microproofs
356d845a9a
chore: Release
2024-10-01 16:14:25 -04:00
microproofs
c8731c98c7
Remove prints
2024-10-01 16:09:44 -04:00
microproofs
5fe6e3f77b
Finish simplification changes
2024-10-01 15:57:54 -04:00
microproofs
c6c5cddead
Fix ordering of params on standard functions
2024-10-01 13:32:27 -04:00
microproofs
2bbc699a25
Refactor some code to make a define_const AirTree function
2024-10-01 13:32:27 -04:00
KtorZ
513ca27717
Generate empty redeemer for `else` handler, to keep full compliance with the blueprint spec
2024-10-01 19:03:34 +02:00
KtorZ
e8d97028ad
Prevent constant evaluating to generic/unbound functions
...
Constants are like tiny programs, so they are bound by the same rules
as validators and other programs. In fact, functions are slightly more
flexible in that they allow generic constant expressions like
`List<a>`.
Yet, there is no way to contain such generic structure that contain
inhabitants in a way that satisfies the type-checker. In the example
of `List<a>`, the only inhabitant of that type that we can construct
is the empty list. Anything else would require holding onto some
generic value.
In addition, we can't force literal values into generic annotation, as
something like:
```
const foo: List<a> = [1, 2, 3]
```
wouldn't type-check either since the right-side would unify to
`List<Int>`. And again, the only right-hand side that can type-check
is the empty list without any inhabitant.
The added restriction on generic function is necessary because while
we allow constants to return lambda, we cannot (easily) generate UPLC
that is generic in its argument. By the time we generate UPLC, the
underlying types have to be known.
2024-10-01 18:37:40 +02:00
KtorZ
51b6b77db8
Build LSP projects with verbose tracing level
...
Without that, the language server might trigger awkward warnings about
unused imports due to trace stripping. So it's better to compile/check
projects in the language server in the most expanded form.
2024-10-01 16:12:41 +02:00
KtorZ
0060804d1a
Fix redundant warning when destructuring validator params
...
This is not a "proper" fix as it simply get rid of the warning
altogether (whether you use or not the destructured values).
The reason for removing the warning entirely is because (1) it's
simpler, but more so (2) there's no impact on the final code produced
_anyway_. Redundant let bindings are already removed by the compiler;
and while it's an implicit behaviour that requires a proper warning
when it's coming from a user-defined assignment; here the redundant
assignment is introduced by the compiler to begin with as another
implicit behavior!
So we have an implicit behaviour triggering a warning on another
implicit behaviour. Truth is, there's no impact in having those
parameters destructured and unused. So since users are already not
aware that this results in an implicit let assignment being inserted
in place for them; there's no need for the warning at all.
2024-10-01 13:17:00 +02:00
KtorZ
5737556efc
Fix compiler crash around dangling expect/let in traces
...
Fixes #1029 .
2024-10-01 12:24:31 +02:00
Kasey
d5f8d3ab78
Cost model fixes with tests ( #1030 )
...
* Finish V1 corrections and fixes to initialize cost model
* Finish V2 corrections to be inline with mainnet today
2024-09-29 22:55:18 -04:00
Riley-Kilgore
92f5bf529f
Generate address on else and spend validators; uses title
2024-09-24 11:55:10 -04:00
Riley-Kilgore
7c6f3278ba
Fixed single character patterns using double quotes
2024-09-24 11:54:05 -04:00
KtorZ
ac9c71e32a
Try to bundle openssl with the Aiken binary to avoid core dumps on Linux
2024-09-22 18:12:26 +02:00
microproofs
3d77b5c378
chore: Release
2024-09-20 14:05:15 -04:00
microproofs
e8cf43d7ec
Format fix
2024-09-20 13:52:09 -04:00
microproofs
eb37ed0da5
Clippy fix
2024-09-20 13:47:56 -04:00
microproofs
4f1de2d3b5
Add test for flat error when encoding bls constant
2024-09-20 13:41:58 -04:00
microproofs
fa2aa0a3e8
When we find bls constants in UPLC convert them to their a hoisted compressed form with an uncompress call
2024-09-20 12:31:36 -04:00
KtorZ
a8b37820e8
Fix incorrect warning about unused variable when softcasting without explicit right-pattern.
...
See note added in code for a rationale.
2024-09-20 15:09:00 +02:00
Matthias Benkort
7155b4e45d
Merge pull request #1023 from solidsnakedev/main
...
Add wrap constructor to V1/V2 StakeCredential
2024-09-20 14:47:08 +02:00
microproofs
3fddab4724
Add test for hard cast and soft cast on same type
2024-09-19 23:48:06 -04:00
microproofs
18e79db4b2
Fix edge case with traces off and usage of softcast and hardcast on the same type
2024-09-19 22:29:19 -04:00
KtorZ
83ac723a50
Fix extraneous space added after multiline alternative patterns
2024-09-19 20:24:59 +02:00
KtorZ
3f149ab346
Provide intermediate feedback during property test runs.
...
Avoid the interface to hang for several seconds without feedback when counterexamples are being simplified. This sends a heads-up to the user to indicate that a research of a counter example is going on.
2024-09-19 20:19:49 +02:00
KtorZ
91843b2c0e
Tweak error output for failed data reification.
2024-09-19 20:18:53 +02:00
microproofs
43182721f5
Update PlutusV1 cost model
2024-09-19 10:36:36 -04:00
microproofs
b50fa91d4c
Finish updating v2 models
2024-09-18 12:06:36 -04:00
microproofs
b26e16e319
Start updating v2 cost models
2024-09-18 12:06:36 -04:00
solidsnakedev
75b5332288
fix: Add wrap constructor to V1/V2 stake_credential when Purpose is Rewarding
2024-09-17 19:45:39 -06:00
KtorZ
47a15cf8b2
Fix formatting of long multiline if/is expressions.
2024-09-15 14:59:47 +02:00
KtorZ
12c0d0bc04
Fix formatter adding extra unnecessary newlines after literal lists clause values or assignments.
2024-09-15 14:40:40 +02:00
KtorZ
d6c728c0f6
Fix link_tree generation when re-inserting the same modules.
2024-09-14 16:30:28 +02:00
microproofs
7047c7720e
chore: Release
2024-09-13 16:52:20 -04:00
KtorZ
a9a7a4f977
Fix few formatter annoyances.
2024-09-13 18:53:26 +02:00
KtorZ
799546b654
Show strings as UTF-8 text string during type reification
...
Instead of defaulting to hex-encoded bytearrays.
2024-09-13 18:34:54 +02:00
KtorZ
9cf908d07f
Fix type reification of Data
2024-09-13 18:34:54 +02:00
KtorZ
4fb13af49f
Fix type reification of PRNG.
2024-09-13 18:34:53 +02:00
Matthias Benkort
a1045352d7
Merge pull request #1018 from solidsnakedev/main
...
fix: Plutus V3 NoDatum
2024-09-13 09:29:55 +02:00
microproofs
16e222e997
Clippy fixes
2024-09-12 19:34:40 -04:00
microproofs
3f2de2665d
Clippy fixes
2024-09-12 19:13:31 -04:00
microproofs
362ca2544f
Fixed remaining issue when all parameters passed in to a recursive function were static.
...
Also fixed issue where modifying the calls in the airtree lead to an out of bounds index.
2024-09-12 17:03:48 -04:00
microproofs
30e66be568
Fix soft casting case
2024-09-12 17:03:48 -04:00
microproofs
49ef3a740c
Cargo tests now pass
2024-09-12 17:03:48 -04:00
microproofs
7c52094b15
Making progress on using interning in gen_uplc
...
Done interning for uniqueness. Now to fix the static optimization
Remove unused function
Fixing issues. Have a few remaining tests
2024-09-12 17:03:36 -04:00
KtorZ
8a3bbfc89a
Simplify optional datum extraction by removing duplication
2024-09-12 17:19:17 +02:00
solidsnakedev
defce9be4e
fix: Plutus V3 NoDatum - Error: missing required inline datum or datum hash in script input
2024-09-11 15:25:20 -06:00
KtorZ
0905146140
chore: Release
2024-09-10 13:25:04 +02:00
KtorZ
7741be64f8
Fix validator's fallback handler generation
...
Fixes #1015 .
2024-09-10 10:48:06 +02:00
Riley-Kilgore
5879dcfd4c
Fix import completions
2024-09-09 12:52:56 -04:00
KtorZ
616dec8f03
Fix formatter getting rid of curly braces around multi-line constants.
2024-09-08 16:23:41 +02:00
KtorZ
0c0369ad61
Fix needed parentheses under trace-if-false disappearing when formatting.
2024-09-08 16:21:45 +02:00
KtorZ
b6d99142f9
Fix formatting of multi-line alternative patterns.
2024-09-08 13:11:53 +02:00
KtorZ
28916c1ef9
Show relative path by default instead of absolute
...
The absolute path is long and doesn't really provide much information.
Plus, it's inconsistent with the behavior on a specified path.
2024-09-07 18:24:50 +02:00
KtorZ
943d90a99e
Fix invalid interpolation in error message.
2024-09-07 18:23:35 +02:00
KtorZ
b7ea6ea391
Fix list-pattern formatting
2024-09-07 14:50:47 +02:00
KtorZ
5ec147e6c7
Mention config in generated README & generate env folder
...
Also, get rid of the extra lib/{package_name} directory which is rarely relevant.
2024-09-06 14:15:44 +02:00
KtorZ
04fb11084c
Fix dark colorscheme for dark.
2024-09-06 13:31:19 +02:00
KtorZ
19e30b10f9
Fix #1013
2024-09-06 12:28:12 +02:00
KtorZ
888b7e34c6
Drop debug line that stayed in source code x_x
2024-09-06 12:15:55 +02:00
rvcas
be31a7ce38
chore: Release
2024-09-03 17:01:41 -04:00
rvcas
20ac89fc33
chore: reset version
2024-09-03 17:01:24 -04:00
microproofs
140cb02be0
Generic test now passes
2024-09-03 16:21:53 -04:00
KtorZ
6a438bc8cd
Fix missing locations from generated handler code.
2024-09-03 16:21:53 -04:00
microproofs
2f33c4a8f4
Push up test failing due to missing messages
2024-09-03 16:21:53 -04:00
microproofs
8933688c68
Rest of the tests to push up
2024-09-03 16:21:53 -04:00
microproofs
c370a4aa6a
Pushing up tests that test both trace and non-trace uplc
2024-09-03 16:21:53 -04:00
microproofs
a6bc0f7157
Fix positioning on unwrap_void
2024-09-03 16:21:53 -04:00
microproofs
2be76d7cda
Use Delay error directly when casting from data without traces
2024-09-03 16:21:53 -04:00
KtorZ
f60df16bc2
Preserve type-aliases during blueprint generation.
2024-09-03 16:39:50 +02:00
KtorZ
007b85b864
Warn for any ignored file during source parsing
...
Not only for files with a .ak extension.
2024-09-03 15:28:09 +02:00
KtorZ
038f6ecbfd
Detect and report duplicate module names during parsing
...
Funny enough, we thought about that but only across packages. Now, the
situation gets a little tricky because of folder structure, it's easy
to define a module "foo" in `env`, `lib` and/or `validators`. From the
compiler's perspective, they all have the same name.
2024-09-03 15:24:01 +02:00
KtorZ
f8be81baa5
Fix README 'aiken new' example.
2024-09-01 19:11:11 +02:00
KtorZ
7bfc01413b
Add missing parser snapshots.
2024-09-01 18:12:46 +02:00
KtorZ
53af366b59
Ensure uniqueness of intermediate variables in expect_type_assign
...
For recursive structures like Tuples, the span itself isn't enough to
ensure uniqueness of elements (in particular tuples) holding elements
of the same type.
2024-09-01 18:10:15 +02:00
KtorZ
6d0fe560e2
Provide UPLC machine error as trace context on test failure
2024-08-31 00:01:54 +02:00
KtorZ
fed464278d
Allow field access on 'else'.
2024-08-31 00:01:46 +02:00
KtorZ
7aefa85de1
Handle importing validator handler into test module.
2024-08-30 22:43:10 +02:00
KtorZ
5dfa3e7cca
Add label annotation where missing in type-checker errors.
2024-08-30 18:41:25 +02:00
KtorZ
75c059bf65
Fix module constant usage warnings.
2024-08-30 18:24:35 +02:00
KtorZ
a06383d333
Use const instead of zero-arg functions in few code-gen tests.
2024-08-30 14:47:22 +02:00
KtorZ
ef89691331
Ensure code-gen's Program version/semantic matches Plutus version
2024-08-30 14:45:02 +02:00
microproofs
4a8bec4caa
Fixing gen uplc tests
2024-08-29 16:30:31 +02:00
microproofs
e772ff1787
Missed some zero parameter check
2024-08-29 16:30:30 +02:00
KtorZ
6c2e3272da
Re-implement and extend docs formatter for constants
2024-08-29 16:25:35 +02:00
KtorZ
71f90ad49f
Fix constant definition parser.
...
Wouldn't allow a proper sequence of results. Now it does.
2024-08-29 16:25:12 +02:00
KtorZ
38e8c6264d
Do not trigger warnings for exported configurations.
2024-08-29 16:25:12 +02:00
KtorZ
9063549f2e
Re-use expr formatter for constants.
2024-08-29 16:25:12 +02:00
microproofs
f35afe8d65
Implement SimpleExpr logic for configuration parsing
...
We can now use boolean, lists & all in configuration.
2024-08-29 16:25:10 +02:00
microproofs
f674f9ee97
hoist functions to super constants too
2024-08-29 16:24:14 +02:00
KtorZ
cd0a9440e8
Allow any expression as constants
...
This is only a start. It compiles, but with a few TODOs left open. In particular, it doesn't currently handle constants depending on other constants or functions; nor does it hoist constants.
2024-08-29 16:24:12 +02:00
KtorZ
79cf0b8d97
Fix test_framework tests trying to implement function on foreign type.
2024-08-29 13:49:09 +02:00
KtorZ
c21466831c
Bump versions to 1.1.0, in anticipation.
2024-08-29 09:12:37 +02:00
KtorZ
e31c6de04e
Adjust module organization to facilitate resurrection of the playground.
...
The playground doesn't / cannot depend on aiken-project because that becomes a gigantic pain. So instead, we try to keep essential stuff inside aiken-lang when possible.
2024-08-29 09:12:37 +02:00
KtorZ
745f14ccb2
Adjust doc to support blockquote alerts.
2024-08-28 15:28:49 +02:00
rvcas
d337e601cb
chore: add a test for by name with params
2024-08-27 18:10:46 -04:00
KtorZ
efeda9a998
Prevent non-default fallback on exhaustive validator
...
Technically, we always need a fallback just because the way the UPLC
is going to work. The last case in the handler pattern matching is
always going to be else ...
We could optimize that away and when the validator is exhaustive, make
the last handler the fallback. Yet, it's really a micro optimization
that saves us one extra if/else. So the sake of getting things
working, we always assume that there's a fallback but, with the extra
condition that when the validator is exhaustive (i.e. there's a
handler covering all purposes), the fallback HAS TO BE the default
fallback (i.e. (_) => fail).
This allows us to gracefully format it out, and also raise an error in
case where there's an extraneous custom fallback.
2024-08-27 20:16:45 +02:00
KtorZ
d615b4f889
Fix incongruous panic when annotation is missing from Datum.
...
It's fine for the argument to not be annotated; in which case we
simply default back to an `Option<Data>`.
2024-08-27 18:55:18 +02:00
KtorZ
4003343444
Fix default annotation for spend's optional datum and mint argument.
...
When there's no type annotation in a validator handler signature, we
provide default annotation to help the type-checker. However, for
spend's datum and mint policy_id, those annotations mustn't be `Data`,
but rather Option<Data> and Bytearray.
Without that, when no annotation are provided, the compiler infer
invalid types and fails with incongruous errors.
2024-08-27 18:42:10 +02:00
KtorZ
0510ca58f7
Implement record access syntax for validator handlers.
...
This is a little trick which detects record access and replace them
with a simple var. The var itself is the validator handler name,
though since it contains dots, it cannot be referred to by users
explicitly. Yet fundamentally, it is semantically equivalent to just
calling the function by its name.
Note that this commit also removes the weird backdoor for allowing
importing validators in modules starting with `tests`. Allowing
validators handler to be used in importable module requires more work
and is arguably useful; so we will wait until someone complain and
reconsider the proper way to do it.
2024-08-27 17:16:15 +02:00
KtorZ
ee8f608c0b
Omit validator return annotation when formatting
...
Unless it is NOT bool as it deviates from the default and while wrong, we want to preserve it to provide a good error.
2024-08-27 14:53:07 +02:00
KtorZ
d74e36d0bc
Introduce 'Never' type as a safe alternative to always None options
...
Unfortunately, as documented in:
https://github.com/IntersectMBO/cardano-ledger/issues/4571
Some Option fields in the script context certificates are going to
remain set to None, at least until the next Hard fork. There's a risk
that people permanently lock their funds if they expect deposits on
registration credentials to ever be `Some`.
So, we introduce a special type that emulate an `Option` that can only
ever be `None`. We call it `Never` and it is the first type of this
kind (i.e. with constructors indexes not starting at 0).
2024-08-27 14:40:39 +02:00
KtorZ
af9a785d65
Provide default annotation to validators (incl. fallback)
...
Without that, we may encounter weird error messages when writing
validators without an explicit `else`. Since we automatically fill it
with a `fail`; without annotation, it unifies to a generic parameter.
The existing check that would look for the body being an error term is
ill-advised as it doesn't work as soon as one adds tracing, or make
the validator a parameterized validator. Plus, it may simply trigger
the wrong behavior as one can now annotate a validator with _whatever_
and get pass the type-checker by plucking a `fail` keyword as body.
2024-08-25 17:12:11 +02:00
KtorZ
0c9ea196be
Format uplc crate
2024-08-25 16:20:45 +02:00
KtorZ
e9edd20c21
Fix gen_uplc tests revolving around validators.
...
Fucking hell.
I got rid of the 'opaque_value_in_datum' test since it is no longer
relevant (we now forbid the presence of opaque types in the ABI).
2024-08-25 16:20:09 +02:00
KtorZ
52a39629b7
Add UPLC test for always_true mint validator.
...
Mainly to have a trivial example with just the validator boilerplate code.
2024-08-25 16:20:08 +02:00
KtorZ
8c2fdf9ad4
Use dot to separate purpose from validator name in blueprint
...
The rationale is two folds:
1. It's more consistent with how we already separate the validator
name from its module.
2. Because `_` may be present in Aiken's validator's name, it is hard
to read and I am afraid it could potentially conflict later on. So
it's better to use a separator that cannot appear in validator
names.
2024-08-25 16:20:08 +02:00
KtorZ
ed55f03aa2
Fix remaining blueprint test.
...
Probably an oversight when we reworked them.
2024-08-25 16:20:08 +02:00
KtorZ
442010d056
Fix generation of fallback validator
...
This must only happen in case all other validator succeed; otherwise
we might generate invalid validators.
2024-08-25 16:20:08 +02:00
rvcas
73522296aa
chore: accept updated snapshot
2024-08-25 16:20:08 +02:00
rvcas
ff1464b462
feat: annotated data for option datum
2024-08-25 16:20:08 +02:00
rvcas
d8723c5497
feat: use __fallback in bluprint for the else
2024-08-25 16:20:07 +02:00
rvcas
4589c51cd3
feat: enforcement that spend first arg is option
2024-08-25 16:20:07 +02:00
rvcas
c57009bf99
chore: fix some tests that now correctly fail due to arity checks
2024-08-25 16:20:07 +02:00
KtorZ
c706d6072d
Fix few blueprint generation tests
...
Some remains invalid, in particular:
- We need to handle the annotated Data case, which we still parse
correctly but do nothing about any longer.
- There's also a strange behavior with opaque type turned public?
2024-08-25 16:20:07 +02:00
KtorZ
f9acbd3bcb
DRY handlers generation from validator
2024-08-25 16:20:07 +02:00
KtorZ
6a6bf6f65f
Handle (though discard) first script purpose argument of publish and propose.
2024-08-25 16:20:07 +02:00
KtorZ
5943d94c6c
Finish re-working machine errors display.
2024-08-25 16:20:06 +02:00
KtorZ
fe205e360f
Update remaining script context e2e tests.
2024-08-25 16:20:06 +02:00
KtorZ
7ec3f2e8df
DRY builtins types creation to ensure proper consistency.
2024-08-25 16:20:06 +02:00
rvcas
5b61a75088
feat: handler withdraw purpose
2024-08-25 16:20:06 +02:00
microproofs
f86d550ca0
Fix type for mint scriptinfo
2024-08-25 16:20:06 +02:00
microproofs
953ee6b5d1
Fix ordering for ScriptInfo type
2024-08-25 16:20:05 +02:00
rvcas
b9456b5946
fix: wrap_validator_condition needs to happen earlier
2024-08-25 16:20:05 +02:00
rvcas
e174532bfd
chore: add more redacted values to machine errors
2024-08-25 16:20:05 +02:00
rvcas
79099675d4
fix: free unique on purpose arg
2024-08-25 16:20:05 +02:00
rvcas
c2c4bddfb3
feat: new check for valid purpose names
2024-08-25 16:20:05 +02:00
KtorZ
5cf0a4d294
Fix validator arity check
...
For now, this panics, but ideally, we should return a "unknown
purpose" error when we cannot map the name to an arity.
2024-08-25 16:20:04 +02:00
KtorZ
823492c27b
Adjust v3 script context end-to-end tests to work with new syntax.
2024-08-25 16:20:04 +02:00
KtorZ
972e9bd763
Define ScriptPurpose & ScriptContext types in prelude, fix codegen new v3 wrapper.
2024-08-25 16:20:04 +02:00
rvcas
90d75d4a13
fix: redeemer could be missing
2024-08-25 16:20:04 +02:00
rvcas
00b8a39236
fix: private type leaks
2024-08-25 16:20:04 +02:00
rvcas
79840248c0
fix: more parse errors in some tests
2024-08-25 16:20:04 +02:00
rvcas
f94e40daf4
fix: more test and issues with scoping/names
2024-08-25 16:20:03 +02:00
rvcas
cf3180996a
fix: map fallback name if present to else
2024-08-25 16:20:03 +02:00
rvcas
00907c2bcc
fix: format snapshot tests
2024-08-25 16:20:03 +02:00
rvcas
7f26db401c
feat: handler implicit some and none
2024-08-25 16:20:03 +02:00
rvcas
6b8be61b6e
test: new snapshots for parsing v3 validators
2024-08-25 16:20:03 +02:00
rvcas
0d8d80e5a7
feat: transform TypedValidator in a function of handlers
2024-08-25 16:20:03 +02:00
rvcas
466a4f0b39
feat: adjust blueprint stuff to be aware of handlers
2024-08-25 16:20:02 +02:00
rvcas
471bbe2175
feat: append validator name to handlers
2024-08-25 16:20:02 +02:00
rvcas
b984f0455a
feat: return a vec instead of Option
2024-08-25 16:20:02 +02:00
rvcas
4287fa3f4a
feat: new formatting for validators v3
2024-08-25 16:20:02 +02:00
rvcas
9e866a5ec1
fix: make sure that fallback gets it's own scope with params
2024-08-25 16:20:02 +02:00
rvcas
1d9034573b
feat: impl infer for new validators
2024-08-25 16:20:02 +02:00
rvcas
fff90f7df5
feat: fix inference comp issues
2024-08-25 16:20:02 +02:00
rvcas
0de5cbc74e
feat: implement new validator parsing
2024-08-25 16:20:01 +02:00