Commit Graph

291 Commits

Author SHA1 Message Date
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
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 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 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 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 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
rvcas cf27c0c755
feat: apply redeemers and datum to script 2022-09-14 18:51:08 -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 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
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
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 ac3ab5b47a chore: start decoding docs and fix wording for encode docs 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
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 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 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