Commit Graph

808 Commits

Author SHA1 Message Date
rvcas
3f540c7c99 chore: rename assignment kind 2023-02-09 00:47:38 -05:00
rvcas
dbd162e985 feat: handle expect in parser
* map both assert/expect to Token::Expect
* use the new token in the parser
* new unit test to expect
2023-02-09 00:43:29 -05:00
rvcas
5a4a8df727 feat(token): add Token::Expect 2023-02-09 00:25:54 -05:00
rvcas
fd14da0720 chore: fix blueprint tests 2023-02-09 00:09:23 -05:00
Kasey White
f60b7d84c1 clippy fix 2023-02-09 00:09:23 -05:00
Kasey White
076871492b fix: unwrap used in a reachable place. Replaced with alternative option 2023-02-09 00:09:23 -05:00
Kasey White
9ae28aaa88 all nebula tests pass. Had one more fix on listaccessor to finish 2023-02-09 00:09:23 -05:00
Kasey White
986a6009f7 fix: Various fixes for FieldsExpose, ListAccessor, TupleAccessor 2023-02-09 00:09:23 -05:00
KtorZ
95a62f7172 Fix oversights in blueprint / schema generation. 2023-02-08 19:04:50 +01:00
alessandrokonrad
221f1afbfe Changed imports 2023-02-08 16:28:59 +01:00
alessandrokonrad
74b3507777 Added tag/constructor conversion tests 2023-02-08 16:26:58 +01:00
Ales
242eaa8b67 Merge pull request #347 from spacebudz/constr
Fix constructor tag range
2023-02-08 14:52:50 +01:00
alessandrokonrad
ce648b7483 Fixed schnorr and limiting it to 32 bytes messages for now 2023-02-08 08:04:24 -05:00
alessandrokonrad
3012a0b41d Fix constructor tag range 2023-02-08 13:14:26 +01:00
alessandrokonrad
7c9443d87f Changed to prehash function 2023-02-07 22:53:30 +01:00
KtorZ
6e554129e9 Fix blueprint validator tests. 2023-02-07 12:28:34 +01:00
Matthias Benkort
8feaefe073 Merge pull request #335 from aiken-lang/blueprint-parameters
Blueprint parameters
2023-02-07 11:43:01 +01:00
KtorZ
4aa92a6d5e Use positional argument for blueprint 'apply' command 2023-02-07 11:42:42 +01:00
rvcas
08e8347317 chore: rename feature flag to native-secp256k1 2023-02-07 00:25:22 -05:00
rvcas
67a2674d27 feat: allow verify functions to build for wasm 2023-02-07 00:25:22 -05:00
Kasey White
5d0c5d2a5b remove a redundant type replacement in build_ir 2023-02-05 23:56:44 -05:00
rvcas
3ff927d30a feat: reset the generator when generate finishes 2023-02-05 20:35:39 -05:00
rvcas
501d667532 chore: fix tests 2023-02-05 20:35:39 -05:00
Kasey White
f1b24a5f6d fix: the following issues
fix conversion from inner opaque type for when and assignment
This fixes Clause being used in cases where ListClause or TupleClause should be used
Reset defined and zero arg functions between each code gen
Fixes for optimizations when encountering shadowed variables
2023-02-05 20:35:39 -05:00
Kasey White
c32a9d7b6f commit working changes so far 2023-02-05 20:35:39 -05:00
rvcas
31cd19f198 feat: use secp256k1 to implement verify for ecdsa and schnorr 2023-02-04 22:07:56 -05:00
rvcas
cde3e31723 feat: fill in todo for verify ecdsa and schnorr costing 2023-02-04 22:07:56 -05:00
rvcas
09d8d683b6 fix: switch to error from secp256k1 2023-02-04 22:07:56 -05:00
rvcas
fb69a2c8a9 fix: switch to rust bindings for bitcoin-secp256k1 2023-02-04 22:07:56 -05:00
rvcas
c2ff9389c5 feat(runtime): implement verifyEcdsaSecp256k1Signature 2023-02-04 22:07:56 -05:00
rvcas
d224fe5356 feat(runtime): set force count and arg typechecking for the elliptic curve builtins 2023-02-04 22:07:56 -05:00
rvcas
fb37521857 feat: make a transparent machine error for signature::Error 2023-02-04 22:07:56 -05:00
rvcas
175cd777d8 feat: enable elliptic curve verification builtins 2023-02-04 22:07:56 -05:00
rvcas
7bffb994fc feat: add k256 for elliptic curve algos 2023-02-04 22:07:56 -05:00
dependabot[bot]
71b7ec6088 chore(deps): bump tokio from 1.23.1 to 1.24.2
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.23.1 to 1.24.2.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/commits)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-04 20:06:54 -05:00
rvcas
ddad05bf51 chore: leave a comment for later 2023-02-04 15:33:18 -05:00
KtorZ
b04fb5962a Do not compute addresses of parameterized validators
And leave a proper notice.
2023-02-04 11:49:56 +01:00
KtorZ
9b8ff590b8 Implement 'blueprint apply' command.
This is still a bit clunky as the interface is expecting parameters in UPLC form and we don't do any kind of verification. So it is easy to shoot oneself in the foot at the moment (for example, to apply an integer into something that should have received a data). To be improved later.
2023-02-04 11:39:55 +01:00
KtorZ
ea269b14a2 Fix deserialization issue when 'parameters' is missing.
Deserialize to an empty vector.
2023-02-04 11:38:09 +01:00
KtorZ
592d3d7a1c Define 'apply_parameter' method on 'Project' 2023-02-04 10:44:33 +01:00
KtorZ
12f4768008 Write method to apply a UPLC term to an existing 'Validator' 2023-02-04 10:22:23 +01:00
KtorZ
9c71aab3db Factor out reusable parts regarding blueprints from lib/project
So we can re-apply the same logic for applying arguments.
2023-02-04 10:21:45 +01:00
KtorZ
55ecc199d1 Add 'parameters' to blueprints for parameterized validators.
Without that, we have no way to distinguish between fully applied
   validators and those that still require some hard-coded parameters.

   Next steps is to make it easier to apply parameters to those, as well
   as forbid the creation of addresses of validators that aren't fully
   qualified.
2023-02-04 09:31:43 +01:00
Kasey White
4c8221e439 fix: add is data check to recursive_assert_tipo 2023-02-04 02:47:55 -05:00
Kasey White
86ca466807 feat: some code gen improvements
* fix assert on pattern Var
* fix tuple index unwrapping closes #334
* allow wrapping when casting with let
* allow wrapping when casting via function call
2023-02-04 02:33:10 -05:00
rvcas
c126f6acda feat: invert how casting is controlled
I decided to invert how I'm doing it. I'm passing
in a new argument to unify in environment called
allow_cast: bool and essentially at various
unification sites I can control whether or not I
want to allow casting to even occur. So we can
assume it's false by default always and then we
turn it on in a few places vs. just opening the
flood gates and locking it down at various sites
as they come up# Please enter the commit message
for your changes. Lines starting
2023-02-04 02:33:10 -05:00
rvcas
2b554d105a fix: when Data cast bypass 2023-02-04 02:33:10 -05:00
rvcas
a9ed04ef22 feat: newer rules around casting Data
* you cannot cast FROM Data with a `let`
* you cannot cast FROM Data by passing
  Data to none Data when calling a function
* you MUST use `assert` to cast from data
* you can cast INTO Data with a `let`
* you can cast INTO Data by passing none Data
  to Data when calling a function
* You cannot assert cast Data without an
  annotation
2023-02-04 02:33:10 -05:00
Niels Mündler
700e9cab5b Add missing carets when dumping builtin list 2023-02-02 17:32:03 -05:00
rvcas
ae42dc964a fix: allow var and discard with data on right hand side 2023-02-02 01:16:53 -05:00